Delivery 2 (#381) gated every chain read on the layout marker and laid the builds out beside the start; a read of the start then met the gate, the controller exited, and systemd restarted it every five seconds from 14:34 on 2026-10-18 ("the builds are not laid out under their modules yet"). The layout now runs once inside attachTheChain (push.go:177 calls it before anything reads); it skips keys laid out before, so it takes seconds; a failure is retried beside the serving, loudly, as before.
Issue: 1121 (its follow-up). The operator installs this build on the control node by hand once, because the looping controller cannot deliver it; this pull request then delivers the mesh's own build of it.
Reviewed-by: lead-47@shanks at 315c622386 (written by the lead at the operator's word to fix it directly; unit suite green)
Delivery 2 (#381) gated every chain read on the layout marker and laid the builds out beside the start; a read of the start then met the gate, the controller exited, and systemd restarted it every five seconds from 14:34 on 2026-10-18 ("the builds are not laid out under their modules yet"). The layout now runs once inside attachTheChain (push.go:177 calls it before anything reads); it skips keys laid out before, so it takes seconds; a failure is retried beside the serving, loudly, as before.
Issue: 1121 (its follow-up). The operator installs this build on the control node by hand once, because the looping controller cannot deliver it; this pull request then delivers the mesh's own build of it.
Reviewed-by: lead-47@shanks at 315c6223867b394c9c712e7b647142416051220a (written by the lead at the operator's word to fix it directly; unit suite green)
Delivery 2 (#381) gated every chain read on the layout marker and laid the
builds out beside the start; a read of the start then met the gate, the
controller exited, and systemd started it again every five seconds from
14:34 on 2026-10-18. The layout now runs once inside attachTheChain, before
anything reads; it skips keys laid out before, so it takes seconds, and a
failure is retried beside the serving as before.
Deliverynovox/mesh-controller@a825a4c90446 — delivered since 2026-10-18T12:59:30Z
Delivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
tier 0: mesh-controller
tier 1: build-agent
ace: receives build-agent
g14: receives build-agent
novox: receives mesh-controller, build-agent
shanks: receives build-agent
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 build-agent is judged on its first machine
Machines
mesh-controller on every machine running it: sent
build-agent on every machine running it: sent
Transitions
2026-10-18 12:39 (new) → proposed (announced): novox/mesh-controller#382's head announced
2026-10-18 12:47 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-18 12:47 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-18 12:50 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-18 12:50 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-18 12:59 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@a825a4c90446` — **delivered** since 2026-10-18T12:59:30Z
**Delivery plan** — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- ace: receives build-agent
- g14: receives build-agent
- novox: receives mesh-controller, build-agent
- shanks: receives build-agent
- 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 build-agent is judged on its first machine
**Machines**
- mesh-controller on every machine running it: sent
- build-agent on every machine running it: sent
**Transitions**
- 2026-10-18 12:39 (new) → proposed (announced): novox/mesh-controller#382's head announced
- 2026-10-18 12:47 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-18 12:47 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-18 12:50 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-18 12:50 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-18 12:59 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 a825a4c90446 merged into trunk d3556f452e8c — pass: builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step; every …
The layout gate is switched on when the stores open (UseChainOpener), before
attachTheChain; a read of the start came first, was refused, and the
controller exited. A read that finds no marker now lays the builds out once,
under a lock, and is refused only when that fails (a process without the
lease).
Merge check at a825a4c9
Judged: head a825a4c90446 merged into trunk d3556f452e8c; read beside it: mesh-catalog 7f77ce663a9e, mesh-controller-main d3556f452e8c, mesh-host 6469e8238443, mesh-tools 7412c5b6c9c5
mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller)
mesh/repo-check: PASS — its merge-check.sh passed
Delivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
tier 0: mesh-controller
tier 1: build-agent
ace: receives build-agent
g14: receives build-agent
novox: receives mesh-controller, build-agent
shanks: receives build-agent
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 build-agent is judged on its first machine
read by no module's build: internal/inventory/chain_builds_layout_test.go, internal/inventory/chain_first_read_lays_out_test.go
Run by the build seat on shanks as build-1792327252291195925 (builds --log build-1792327252291195925).
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.
Delivery 2 (#381) gated every chain read on the layout marker and laid the builds out beside the start; a read of the start then met the gate, the controller exited, and systemd restarted it every five seconds from 14:34 on 2026-10-18 ("the builds are not laid out under their modules yet"). The layout now runs once inside attachTheChain (push.go:177 calls it before anything reads); it skips keys laid out before, so it takes seconds; a failure is retried beside the serving, loudly, as before.
Issue: 1121 (its follow-up). The operator installs this build on the control node by hand once, because the looping controller cannot deliver it; this pull request then delivers the mesh's own build of it.
Reviewed-by: lead-47@shanks at
315c622386(written by the lead at the operator's word to fix it directly; unit suite green)Delivery
novox/mesh-controller@a825a4c90446— delivered since 2026-10-18T12:59:30ZDelivery plan — builds build-agent, mesh-controller → 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
a825a4c9Judged: head
a825a4c90446merged into trunkd3556f452e8c; read beside it: mesh-catalog7f77ce663a9e, mesh-controller-maind3556f452e8c, mesh-host6469e8238443, mesh-tools7412c5b6c9c5mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1792327252291195925(builds --log build-1792327252291195925).