State a tool check that waits for the operator as waiting (issue 386, ADR 0283)
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed

A module whose only fault was a secret the operator had not given yet was
stated unhealthy, failed its first-node gate and was put back. The engine
now reads the tool's answer through mesh-sdk go/health and states such a
resource waiting, with what it waits for, on one look; a malformed wait
stays unhealthy.
This commit is contained in:
jochen
2026-10-10 21:11:02 +02:00
parent 9d8aa9d6f0
commit 3abb07f1e2
13 changed files with 246 additions and 63 deletions
+9
View File
@@ -4,6 +4,8 @@ import (
"strconv"
"strings"
"time"
"git.novox.be/novox/mesh-sdk/go/health"
)
// The wire formats shared with the control plane, which defines them separately because this
@@ -335,6 +337,10 @@ const (
StateHeld = "held"
// StateUnknown is a resource whose state could not be read.
StateUnknown = "unknown"
// StateWaiting is a resource whose tool check says it waits for the operator — a named own secret or
// setting of the module not given yet — and nothing else is wrong (novox/hq ADR 0283). Not a fault: the
// controller checks the wait, and an older controller reads it as not healthy and raises nothing.
StateWaiting = "waiting"
)
// The reasons an unhealthy resource is said with, when it is liveness that judged it.
@@ -376,6 +382,9 @@ type ResourceHealth struct {
// Search is how far the setuid search got, on an account's verdict that waits for it (novox/hq issue
// 361): Reason says the same in words. Absent otherwise.
Search *SetuidSearch `json:"search,omitempty"`
// Waits is what a resource stated waiting waits for (novox/hq ADR 0283): each one own secret or one
// setting of the module by name, the part, and what the operator gives, in words. Absent otherwise.
Waits []health.Wait `json:"waits,omitempty"`
}
// SetuidSearch is how far a running search for setuid programs got, as of its last checkpoint. Counts, times