Issue 353: the controller asked before the bus held its grant #253

Merged
mesh-admin merged 2 commits from issues/353-the-controller-asked-before-the-bus-held-its-grant into main 2026-10-09 17:57:38 +00:00
Contributor

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.
mesh-admin added 1 commit 2026-10-09 16:10:15 +00:00
Issue 353: the controller asked before the bus held its grant
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 superseded: a newer head of the same pull request
2bceb5fbaa
Author
Contributor

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.

<!-- 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`.
jschoubben added 1 commit 2026-10-09 17:35:11 +00:00
Issue 353: the condition cleared at 18:11:44, about 15 minutes after the last refusal, not an hour after
mesh/repo-check pass: its merge-check.sh passed
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/delivery delivered
adbd57a1f9
mesh-admin merged commit fbaa8e16e6 into main 2026-10-09 17:57:38 +00:00
mesh-admin deleted branch issues/353-the-controller-asked-before-the-bus-held-its-grant 2026-10-09 17:57:39 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#253