Fixes issue 1063: the urgent condition core.controller.deaf ('the controller stopped listening') was raised whenever a pull request's check ran longer than the look's bound on a build machine (live 2026-10-21 00:45 and 00:56, evidence '1 pending ([1 on CHECKS_OTHER])', while the controller merged and planned and its process ran unbroken). gatherLoop summed every consumer of broker.MeshConsumers(), which includes the build seat's check workers that only builders take from.
internal/broker/streams.go: ControllerConsumers() (MeshConsumers() = ControllerConsumers() + CheckWorkers(), same content and order for its other callers).
cmd/mesh-controller/watchdogs.go: gatherLoop reads loopConsumers() through a pure readLoop.
Tests 1063/AC1-AC3 in cmd/mesh-controller/loop_own_consumers_test.go (AC1, AC3 fail on main's behaviour).
Also fixes issue 1543 (second commit): the first try failed on a data race in the merge tests' helper asksWithPaths (two goroutines appending at once); its append is now under a lock.
Checked: try build-1792538689725836924 PASSED at 54d8d139 (6m32s; unit level 1466 tests 2.46 s). A stuck check stays raised by ask-lost (watchAsks).
Fixes issue 1063: the urgent condition core.controller.deaf ('the controller stopped listening') was raised whenever a pull request's check ran longer than the look's bound on a build machine (live 2026-10-21 00:45 and 00:56, evidence '1 pending ([1 on CHECKS_OTHER])', while the controller merged and planned and its process ran unbroken). gatherLoop summed every consumer of broker.MeshConsumers(), which includes the build seat's check workers that only builders take from.
- internal/broker/streams.go: ControllerConsumers() (MeshConsumers() = ControllerConsumers() + CheckWorkers(), same content and order for its other callers).
- cmd/mesh-controller/watchdogs.go: gatherLoop reads loopConsumers() through a pure readLoop.
- Tests 1063/AC1-AC3 in cmd/mesh-controller/loop_own_consumers_test.go (AC1, AC3 fail on main's behaviour).
Also fixes issue 1543 (second commit): the first try failed on a data race in the merge tests' helper asksWithPaths (two goroutines appending at once); its append is now under a lock.
Checked: try build-1792538689725836924 PASSED at 54d8d139 (6m32s; unit level 1466 tests 2.46 s). A stuck check stays raised by ask-lost (watchAsks).
Reviewed-by: review-1063@shanks at 54d8d139ad5b8fb053753d20a4471de2a7220e28
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy, build-agent is judged on its first machine
Machines
mesh-controller on every machine running it: sent
route-proxy on every machine running it: sent
build-agent on every machine running it: sent
Transitions
2026-10-20 23:32 (new) → proposed (announced): novox/mesh-controller#412's head announced
2026-10-20 23:45 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-20 23:45 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-20 23:46 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-20 23:46 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
2026-10-20 23:50 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-controller@54d8d139ad5b` — **delivered** since 2026-10-20T23:50:26Z
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller, route-proxy
- tier 1: build-agent
- ace: receives route-proxy, build-agent
- g14: receives build-agent
- novox: receives mesh-controller, route-proxy, build-agent
- shanks: receives build-agent
- route-proxy provides route: its consumers are sent again after it
- route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy, build-agent is judged on its first machine
**Machines**
- mesh-controller on every machine running it: sent
- route-proxy on every machine running it: sent
- build-agent on every machine running it: sent
**Transitions**
- 2026-10-20 23:32 (new) → proposed (announced): novox/mesh-controller#412's head announced
- 2026-10-20 23:45 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-20 23:45 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-20 23:46 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-20 23:46 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
- 2026-10-20 23:50 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
route-proxy provides route: its consumers are sent again after it
route-proxy keeps data (ADR 0233): what it holds is backed up before it moves
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before route-proxy, build-agent is judged on its first machine
read by no module's build: cmd/mesh-controller/loop_own_consumers_test.go, cmd/mesh-controller/new_module_on_merge_test.go
Run by the build seat on shanks as build-1792539177912521198 (builds --log build-1792539177912521198).
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.
Fixes issue 1063: the urgent condition core.controller.deaf ('the controller stopped listening') was raised whenever a pull request's check ran longer than the look's bound on a build machine (live 2026-10-21 00:45 and 00:56, evidence '1 pending ([1 on CHECKS_OTHER])', while the controller merged and planned and its process ran unbroken). gatherLoop summed every consumer of broker.MeshConsumers(), which includes the build seat's check workers that only builders take from.
Also fixes issue 1543 (second commit): the first try failed on a data race in the merge tests' helper asksWithPaths (two goroutines appending at once); its append is now under a lock.
Checked: try build-1792538689725836924 PASSED at
54d8d139(6m32s; unit level 1466 tests 2.46 s). A stuck check stays raised by ask-lost (watchAsks).Reviewed-by: review-1063@shanks at
54d8d139adDelivery
novox/mesh-controller@54d8d139ad5b— delivered since 2026-10-20T23:50:26ZDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
54d8d139Judged: head
54d8d139ad5bmerged into trunkf4584e6fa285; read beside it: mesh-catalog6c6d5f681c30, mesh-controller-mainf4584e6fa285, mesh-hostce1b97ad973d, mesh-toolse0fadc43d9ddmesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1792539177912521198(builds --log build-1792539177912521198).