Give relogin-needed its plain words: it needs the operator and offers no button, since only their new login can end it (hq ADR 0253, ADR 0254)
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group fix/318-a-wait-for-a-person-is-not-a-failure delivered: every member is delivered

This commit is contained in:
jochen
2026-10-08 14:25:20 +02:00
parent e3b5c224e8
commit 51d7bbfdc8
3 changed files with 49 additions and 1 deletions
+15
View File
@@ -183,6 +183,13 @@ var plainWordings = map[string]func(conditions.Observation) words{
Explanation: fmt.Sprintf("%s is not healthy. It clears as soon as it runs again.", conditions.Capital(thing)),
Resolved: conditions.Capital(thing) + " works again"}
}),
kindReloginNeeded: worded(func(o conditions.Observation) words {
module := ""
if o.Scope == conditions.ScopeModule {
module = idPart(o, 0)
}
return reloginWords(orModule(module), machineOr(o, "a machine"))
}),
kindProviderFailing: worded(func(o conditions.Observation) words {
thing, consumer := conditions.ThingWords(o), idPart(o, 2)
if consumer == "" {
@@ -759,3 +766,11 @@ func unitReasonWords(reason string) string {
}
return "failed"
}
// orModule is a module's name, or "a module" when none is known.
func orModule(m string) string {
if m == "" {
return "a module"
}
return m
}