Part of the milestone "The checker runs beside today's check" (design 47), one delivery group on feat/the-checker with mesh-sdk, mesh-catalog and mesh-delivery.
While a delivery builds, no new check or try takes a build place, but for one that waited 30 minutes; a build node never holds work it has not started; a group's verdict names every member's trunk, the SDK member's too; the delivery integration test no longer races its own view. The plans-building bucket is a readable state of the controller, granted read-only to a module that declares it (issue 1687, ADR 0483 clause 2); mesh-sdk pinned at the group's SDK head.
Reviewed-by: reviewer-checker@shanks at b9ec1919b8
Part of the milestone "The checker runs beside today's check" (design 47), one delivery group on feat/the-checker with mesh-sdk, mesh-catalog and mesh-delivery.
While a delivery builds, no new check or try takes a build place, but for one that waited 30 minutes; a build node never holds work it has not started; a group's verdict names every member's trunk, the SDK member's too; the delivery integration test no longer races its own view. The plans-building bucket is a readable state of the controller, granted read-only to a module that declares it (issue 1687, ADR 0483 clause 2); mesh-sdk pinned at the group's SDK head.
Reviewed-by: reviewer-checker@shanks at b9ec1919b8657ba3e5f1acc45c828bcc3bb7e07b
ADR 0483: the controller keeps a key per plan in its build phase; holders read it and
take no new check while one is there, but for the oldest check past 30 minutes, one
at a time by a let-through key. The queue says why checks wait.
A message that reaches a builder's subscription outside a fetch was held unheartbeated for
the whole run of another ask, behind which a delivery waited (issue 1747). The queues the
running ask did not come from are let go of and bound again after it.
A check pending redelivery is read before the let-through fetches (none is handed back);
a deleted module is done for the plan's key; the queue an ask came from is let go of when
it ends. Tries say they run under their own id.
The loop now lets go of and binds queues around every ask, so Close takes the lock the loop does;
the busy machine's test says it holds no pull, and the stray test keeps its long check alive
within its two-second ack wait.
mesh/merge-gate head 47e1819101a1 merged into trunk 1f3fdf311167 — fail: group feat/the-checker composed: 1 problem(s) the change brings; the first: mesh-d…
Deliverynovox/mesh-controller@b9ec1919b865 — delivered since 2026-10-21T22:16:29Z
Delivery plan — builds mesh-controller, route-proxy → ace, novox; no bus step
tier 0: mesh-controller, route-proxy
ace: receives route-proxy
novox: receives mesh-controller, route-proxy
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
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 is judged on its first machine
composed together: pass — every machine composes with the change as it did without (4 of 4 compose)
Machines
mesh-build-go on every machine running it: sent
mesh-build-node on every machine running it: sent
mesh-controller on every machine running it: sent
mesh-delivery-gate on every machine running it: sent
mesh-provisioner-client on every machine running it: sent
mesh-sdk on every machine running it: sent
route-proxy on every machine running it: sent
build-agent on every machine running it: sent
mesh-delivery-builder on every machine running it: sent
mesh-delivery-forge-bridge on every machine running it: sent
mesh-delivery-indexer on every machine running it: sent
mesh-tools on every machine running it: sent
audit-logger on every machine running it: sent
baserow on every machine running it: sent
bazarr on every machine running it: sent
bookshelf on every machine running it: sent
confluence on every machine running it: sent
gitea on every machine running it: sent
gitlab on every machine running it: sent
grafana on every machine running it: sent
home-assistant on every machine running it: sent
icecast on every machine running it: sent
influxdb on every machine running it: sent
jackett on every machine running it: sent
jira on every machine running it: sent
kometa on every machine running it: sent
lab on every machine running it: sent
letta on every machine running it: sent
lidarr on every machine running it: sent
mesh-catalog on every machine running it: sent
model-usage on every machine running it: sent
mosquitto on every machine running it: sent
netcheck on every machine running it: sent
nextcloud on every machine running it: sent
nodered on every machine running it: sent
ombi on every machine running it: sent
openai-consumer on every machine running it: sent
radarr on every machine running it: sent
redis on every machine running it: sent
route-adapter on every machine running it: sent
searxng on every machine running it: sent
showcase on every machine running it: sent
sonarr on every machine running it: sent
tautulli on every machine running it: sent
umami on every machine running it: sent
unifi on every machine running it: sent
zsh on every machine running it: sent
Transitions
2026-10-21 20:47 (new) → proposed (announced): novox/mesh-controller#430's head announced
2026-10-21 20:57 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-21 20:57 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-21 21:13 ready → proposed (recheck): issue 1793: its verdict says repo pass but the forge holds no mesh/repo-check status, so it cannot merge; the group's composed check is out of date anyway after #423's recheck (issue 1792)
2026-10-21 21:33 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-21 21:33 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-21 21:48 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-21 21:48 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-21 22:16 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@b9ec1919b865` — **delivered** since 2026-10-21T22:16:29Z
**Delivery plan** — builds mesh-controller, route-proxy → ace, novox; no bus step
- tier 0: mesh-controller, route-proxy
- ace: receives route-proxy
- novox: receives mesh-controller, route-proxy
- 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
- 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 is judged on its first machine
**Group** `feat/the-checker`: novox/mesh-catalog@12ff1cfbc434, novox/mesh-controller@b9ec1919b865, novox/mesh-delivery@b519c8dde2da, novox/mesh-sdk@580da61a9107
- composed together: pass — every machine composes with the change as it did without (4 of 4 compose)
**Machines**
- mesh-build-go on every machine running it: sent
- mesh-build-node on every machine running it: sent
- mesh-controller on every machine running it: sent
- mesh-delivery-gate on every machine running it: sent
- mesh-provisioner-client on every machine running it: sent
- mesh-sdk on every machine running it: sent
- route-proxy on every machine running it: sent
- build-agent on every machine running it: sent
- mesh-delivery-builder on every machine running it: sent
- mesh-delivery-forge-bridge on every machine running it: sent
- mesh-delivery-indexer on every machine running it: sent
- mesh-tools on every machine running it: sent
- audit-logger on every machine running it: sent
- baserow on every machine running it: sent
- bazarr on every machine running it: sent
- bookshelf on every machine running it: sent
- confluence on every machine running it: sent
- gitea on every machine running it: sent
- gitlab on every machine running it: sent
- grafana on every machine running it: sent
- home-assistant on every machine running it: sent
- icecast on every machine running it: sent
- influxdb on every machine running it: sent
- jackett on every machine running it: sent
- jira on every machine running it: sent
- kometa on every machine running it: sent
- lab on every machine running it: sent
- letta on every machine running it: sent
- lidarr on every machine running it: sent
- mesh-catalog on every machine running it: sent
- model-usage on every machine running it: sent
- mosquitto on every machine running it: sent
- netcheck on every machine running it: sent
- nextcloud on every machine running it: sent
- nodered on every machine running it: sent
- ombi on every machine running it: sent
- openai-consumer on every machine running it: sent
- radarr on every machine running it: sent
- redis on every machine running it: sent
- route-adapter on every machine running it: sent
- searxng on every machine running it: sent
- showcase on every machine running it: sent
- sonarr on every machine running it: sent
- tautulli on every machine running it: sent
- umami on every machine running it: sent
- unifi on every machine running it: sent
- zsh on every machine running it: sent
**Transitions**
- 2026-10-21 20:47 (new) → proposed (announced): novox/mesh-controller#430's head announced
- 2026-10-21 20:57 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-21 20:57 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-21 21:13 ready → proposed (recheck): issue 1793: its verdict says repo pass but the forge holds no mesh/repo-check status, so it cannot merge; the group's composed check is out of date anyway after #423's recheck (issue 1792)
- 2026-10-21 21:33 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-21 21:33 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-21 21:48 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-21 21:48 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-21 22:16 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/merge-gate head b9ec1919b865 merged into trunk a3c965b9a0d5 — pass: group feat/the-checker composed: every machine composes with the change as it did …
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.
Part of the milestone "The checker runs beside today's check" (design 47), one delivery group on feat/the-checker with mesh-sdk, mesh-catalog and mesh-delivery.
While a delivery builds, no new check or try takes a build place, but for one that waited 30 minutes; a build node never holds work it has not started; a group's verdict names every member's trunk, the SDK member's too; the delivery integration test no longer races its own view. The plans-building bucket is a readable state of the controller, granted read-only to a module that declares it (issue 1687, ADR 0483 clause 2); mesh-sdk pinned at the group's SDK head.
Reviewed-by: reviewer-checker@shanks at
b9ec1919b8Delivery
novox/mesh-controller@b9ec1919b865— delivered since 2026-10-21T22:16:29ZDelivery plan — builds mesh-controller, route-proxy → ace, novox; no bus step
Group
feat/the-checker: novox/mesh-catalog@12ff1cfbc4, novox/mesh-controller@b9ec1919b8, novox/mesh-delivery@b519c8dde2, novox/mesh-sdk@580da61a91Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.