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
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:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user