From 2e6a989031d5b971a0573d2c81cfc0c18bf317a4 Mon Sep 17 00:00:00 2001 From: jochen Date: Sun, 18 Oct 2026 12:59:29 +0200 Subject: [PATCH] Playbook 07: a watcher also wakes the lead when nothing changed for two minutes (issue 1121) --- 00-META/process/07-feature-branches.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/00-META/process/07-feature-branches.md b/00-META/process/07-feature-branches.md index e12c17bc..d4dc35f5 100644 --- a/00-META/process/07-feature-branches.md +++ b/00-META/process/07-feature-branches.md @@ -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