Playbook 07: a watcher also wakes the lead when nothing changed for two minutes (issue 1121)

This commit is contained in:
2026-10-18 12:59:29 +02:00
parent ec373556d0
commit 2e6a989031
+4 -1
View File
@@ -268,7 +268,10 @@ It loops `mesh_wait` on the event families of what it watches (`mesh-delivery.tr
`mesh-delivery.group` for a delivery, for example) with a timeout under 60 seconds, since the call itself ends near
a minute. After every answer or timeout it reads the state from the verb that owns it (`mesh-delivery.show`,
`mesh-controller.plans`, `knowledge-base.get`), because an event only wakes it (ADR 0367). It finishes, and so wakes
the lead, when the state changes or the wait passes its bound. The lead never sleeps or polls by hand to wait.
the lead, when the state changes, when the wait passes its bound, **or when nothing changed for two minutes**
(the operator, 2026-10-18): a wait that stopped moving is a stall, never a wait. On 2026-10-18 a delivery plan stopped
at 12:46 because the bus refused the new controller's writes, its watcher waited for "done or failed", and the stall
was found ten minutes later only because the operator asked what was happening (issue 1121). The lead never sleeps or polls by hand to wait.
**Every ten minutes (the operator, 2026-10-17), every two minutes while a delivery plan runs, and at once when something lands, stops or
needs the operator,** the lead reports, in one of the two layouts below (the operator, 2026-10-16: an overview