On 2026-10-08 dunst's new build passed its gate on the laptop (healthy 3 times over 2m5s). Twenty-eight minutes later the same walk marked it failed at its gate, with those same words as the reason, and put it back.
Cause: the controller judged the first machine's report again on every step of the walk, also after the gate had passed.
The send to the rest waited on another walk.
That walk then sent the laptop a declaration the laptop did not report on.
At the 30-minute bound for a first machine's report, the walk failed.
failFirstSend then put back a module whose gate had passed.
Fix: merged in mesh-controller#165 (8170fc5).
A passed gate sends the rest.
A carried module takes over its lead's pass before its step is read.
A guard, not reached with those two changes, keeps a later path from putting back a passed build.
Replay: R335 in mesh-lab#72, which points at 8170fc5 and is proved to fail on the merge's first parent and pass on the merge.
Status:resolved, with fixed-by: mesh-controller#165, mesh-lab#72 (playbook 03, step 3).
No design changes: ADR 0236 already says a pass is a verdict. The code did not follow it.
Still open, not part of this issue: why the laptop's node-engine did not report on a send between 16:49 and 18:01 UTC.
On 2026-10-08 dunst's new build passed its gate on the laptop (healthy 3 times over 2m5s). Twenty-eight minutes later the same walk marked it failed at its gate, with those same words as the reason, and put it back.
- **Cause:** the controller judged the first machine's report again on every step of the walk, also after the gate had passed.
- The send to the rest waited on another walk.
- That walk then sent the laptop a declaration the laptop did not report on.
- At the 30-minute bound for a first machine's report, the walk failed.
- `failFirstSend` then put back a module whose gate had passed.
- **Fix:** merged in mesh-controller#165 (8170fc5).
- A passed gate sends the rest.
- A carried module takes over its lead's pass before its step is read.
- A guard, not reached with those two changes, keeps a later path from putting back a passed build.
- **Replay:** R335 in mesh-lab#72, which points at 8170fc5 and is proved to fail on the merge's first parent and pass on the merge.
- **Status:** `resolved`, with `fixed-by: mesh-controller#165, mesh-lab#72` (playbook 03, step 3).
- No design changes: ADR 0236 already says a pass is a verdict. The code did not follow it.
- **Still open, not part of this issue:** why the laptop's node-engine did not report on a send between 16:49 and 18:01 UTC.
`merge-check.sh` (records, index, cycle, words) passes locally.
Deliverynovox/hq@bbbaf943e805 — delivered since 2026-10-08T19:51:54Z
Delivery plan — builds nothing: the change touches no module of the mesh's graph
Transitions
2026-10-08 19:49 (new) → proposed (announced): novox/hq#227's head announced
2026-10-08 19:49 proposed → checked (checked): the verdict names this commit
2026-10-08 19:49 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-08 19:51 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-08 19:51 published → delivered (done): nothing for a walk to move
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/hq@bbbaf943e805` — **delivered** since 2026-10-08T19:51:54Z
**Delivery plan** — builds nothing: the change touches no module of the mesh's graph
**Transitions**
- 2026-10-08 19:49 (new) → proposed (announced): novox/hq#227's head announced
- 2026-10-08 19:49 proposed → checked (checked): the verdict names this commit
- 2026-10-08 19:49 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-08 19:51 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-08 19:51 published → delivered (done): nothing for a walk to move
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
On 2026-10-08 dunst's new build passed its gate on the laptop (healthy 3 times over 2m5s). Twenty-eight minutes later the same walk marked it failed at its gate, with those same words as the reason, and put it back.
failFirstSendthen put back a module whose gate had passed.resolved, withfixed-by: mesh-controller#165, mesh-lab#72(playbook 03, step 3).merge-check.sh(records, index, cycle, words) passes locally.Delivery
novox/hq@bbbaf943e805— delivered since 2026-10-08T19:51:54ZDelivery plan — builds nothing: the change touches no module of the mesh's graph
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.