Say a walk that waits too long, and a delivery's own stalls (hq ADR 0239)
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 fail: its merge-check.sh failed: FAIL
mesh/delivery delivered
mesh/delivery-group group feat/mesh-delivery-waits-said delivered: every member is delivered

A walk mesh-delivery never lets go waited for ever with nothing open: S16
says it at 30 minutes, urgent at 4 hours, naming plans go. Phase B: probe
D14 reads the delivery owner's stalled and raises delivery.<id>.stalled,
and H2 takes the table's transition through its close.
This commit is contained in:
jochen
2026-10-07 00:16:32 +02:00
parent 487aa040de
commit 75213b9091
11 changed files with 515 additions and 12 deletions
+26
View File
@@ -131,6 +131,17 @@ var suppressions = map[string]suppression{
inside: func(f *signalFacts) { f.facts.taken = f.now.Add(-47 * time.Hour) },
past: func(f *signalFacts) { f.facts.taken = f.now.Add(-49 * time.Hour) },
},
// A walk waiting for its delivery's word for 30 minutes (novox/hq ADR 0239).
"S16": {
inside: func(f *signalFacts) {
f.waits = []waitFacts{{id: "plan-2", repository: "novox/app", commit: "c0ffee11", awaits: "mesh-delivery",
since: f.now.Add(-29 * time.Minute)}}
},
past: func(f *signalFacts) {
f.waits = []waitFacts{{id: "plan-2", repository: "novox/app", commit: "c0ffee11", awaits: "mesh-delivery",
since: f.now.Add(-31 * time.Minute)}}
},
},
// Twice by hand within a fortnight is a healer wanted; once, or the first of two a day too old, is not.
"S15": {
inside: func(f *signalFacts) {
@@ -524,3 +535,18 @@ func TestALeaseLostOrMissingIsSaid(t *testing.T) {
t.Fatalf("serving without the lease was not said: %+v", got)
}
}
// **A walk waiting four hours for its delivery's word is urgent** (S16, novox/hq ADR 0239), and says how on.
func TestAWalkWaitingFourHoursIsUrgentAndNamesTheWayOn(t *testing.T) {
now := time.Date(2026, 10, 6, 12, 0, 0, 0, time.UTC)
f := calm(now)
f.waits = []waitFacts{{id: "plan-2", repository: "novox/app", commit: "c0ffee11", awaits: "mesh-delivery",
since: now.Add(-4*time.Hour - time.Minute)}}
got := watchWaits(f)
if len(got) != 1 || got[0].Severity != conditions.Urgent || got[0].Key() != "plan.plan-2.waiting" {
t.Fatalf("four hours of waiting raised %+v", got)
}
if !strings.Contains(got[0].Summary, "plans go plan-2") || !strings.Contains(got[0].Summary, "mesh-delivery") {
t.Fatalf("it does not say how on: %q", got[0].Summary)
}
}