Issue 296: the refused step logged and saved on every tick
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered

This commit is contained in:
jochen
2026-10-07 20:47:09 +02:00
parent fbc6405f1e
commit 6caa471ed0
@@ -32,6 +32,11 @@ time, a new revision, and a `plan-moved` event on the bus (ADR 0239) about a pla
a busy mesh, with outcomes arriving for other repositories' builds as well as the 30-second timer, that
meant a save every few seconds.
The same loop has a second form of this. A plan can have a step refused, for example because builds on
a machine are waiting for their own gate. When that happens, the loop logged the refusal and saved the
plan with the same "tried again" note on every tick. The controller's log showed one line, word for word
the same, every 30 seconds for each such plan.
The write was not needed. Nothing reads `updated` as a heartbeat, and the save is not what keeps a plan
alive. The tier stamp, the revision check and the build records do not depend on a save that changes
nothing.
@@ -47,3 +52,5 @@ nothing.
functions, so the line and the condition cannot disagree about a plan.
- The loop compares the plan before and after each step and saves only when they differ. The fields the
store stamps itself are left out of that comparison.
- A refused step is logged and saved only when its note is new. The refusal's wording called the gated
walk a "release plan", a name the glossary retires; it now says "walk".