Registers issue 353 (status: located; fixed by mesh-controller #186). Do not merge without review.
Symptom (2026-10-09, local times on the control node): the router was unassigned at 17:32 for a merge gate; a walk's push at 17:52:54 composed the bus's user list without the controller's grant to ask (the grant follows an assigned holder of operator-channel); the asker started at 17:54:05 and the bus refused mesh.seat.operator-channel.accept.ask.mesh-controller seven times until 17:56:05 (bus.controller.refused raised); the push that put the router back sent the list with the grant at 17:55:56, the bus reloaded it in place at 17:56:05, and the same connection asked successfully at 17:56:10. No reconnect was needed.
Cause: the asker trusted the record of the router before the bus held the grant, which reaches the bus only when its machine is pushed.
Fix (mesh-controller #186): the asker judges, as a push does, whether the bus's machine was last sent the user list composed now; while not, nothing is published and the conditions that need the operator are raised as undelivered, naming the push that carries the grant.
replay-none: the controller's own test drives the asker with the bus's word held and withheld; a container runtime adds nothing.
Checks run locally: records.py, index.py, cycle.py, words.py (with the catalogue's list) all pass.
Registers issue 353 (status: located; fixed by mesh-controller #186). Do not merge without review.
**Symptom (2026-10-09, local times on the control node):** the router was unassigned at 17:32 for a merge gate; a walk's push at 17:52:54 composed the bus's user list without the controller's grant to ask (the grant follows an *assigned* holder of `operator-channel`); the asker started at 17:54:05 and the bus refused `mesh.seat.operator-channel.accept.ask.mesh-controller` seven times until 17:56:05 (`bus.controller.refused` raised); the push that put the router back sent the list with the grant at 17:55:56, the bus reloaded it in place at 17:56:05, and the same connection asked successfully at 17:56:10. No reconnect was needed.
**Cause:** the asker trusted the record of the router before the bus held the grant, which reaches the bus only when its machine is pushed.
**Fix (mesh-controller #186):** the asker judges, as a push does, whether the bus's machine was last sent the user list composed now; while not, nothing is published and the conditions that need the operator are raised as undelivered, naming the push that carries the grant.
`replay-none`: the controller's own test drives the asker with the bus's word held and withheld; a container runtime adds nothing.
Checks run locally: records.py, index.py, cycle.py, words.py (with the catalogue's list) all pass.
Deliverynovox/hq@adbd57a1f935 — delivered since 2026-10-09T17:58:09Z
Delivery plan — builds nothing: the change touches no module of the mesh's graph
Transitions
2026-10-09 17:35 (new) → proposed (announced): novox/hq#253's head announced
2026-10-09 17:36 proposed → checked (checked): the verdict names this commit
2026-10-09 17:36 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-09 17:58 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-09 17:58 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@adbd57a1f935` — **delivered** since 2026-10-09T17:58:09Z
**Delivery plan** — builds nothing: the change touches no module of the mesh's graph
**Transitions**
- 2026-10-09 17:35 (new) → proposed (announced): novox/hq#253's head announced
- 2026-10-09 17:36 proposed → checked (checked): the verdict names this commit
- 2026-10-09 17:36 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-09 17:58 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-09 17:58 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.
Registers issue 353 (status: located; fixed by mesh-controller #186). Do not merge without review.
Symptom (2026-10-09, local times on the control node): the router was unassigned at 17:32 for a merge gate; a walk's push at 17:52:54 composed the bus's user list without the controller's grant to ask (the grant follows an assigned holder of
operator-channel); the asker started at 17:54:05 and the bus refusedmesh.seat.operator-channel.accept.ask.mesh-controllerseven times until 17:56:05 (bus.controller.refusedraised); the push that put the router back sent the list with the grant at 17:55:56, the bus reloaded it in place at 17:56:05, and the same connection asked successfully at 17:56:10. No reconnect was needed.Cause: the asker trusted the record of the router before the bus held the grant, which reaches the bus only when its machine is pushed.
Fix (mesh-controller #186): the asker judges, as a push does, whether the bus's machine was last sent the user list composed now; while not, nothing is published and the conditions that need the operator are raised as undelivered, naming the push that carries the grant.
replay-none: the controller's own test drives the asker with the bus's word held and withheld; a container runtime adds nothing.Checks run locally: records.py, index.py, cycle.py, words.py (with the catalogue's list) all pass.
Delivery
novox/hq@adbd57a1f935— delivered since 2026-10-09T17:58:09ZDelivery 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.