Follow-up to #142 (hq ADR 0254, issue 318), from its review.
(a) Nothing is stranded by an early fault. A module found broken stays broken for the rest of the judging (PlanGate.Broken, BrokenWhy), and the send's verdict waits until every other module has its own verdict, or the bound. At the verdict, every module that did not pass on its own is in Failing and is put back; none is left on the machine without a verdict. The cost: a broken module is put back when the rest are judged (at most the bound), not at once.
(b) Tier path.failFirstSend records the pass of the plan's own module when it passed on its own ("passed on its own and is kept"); the tier's other modules were already kept by keepPassing. TestACoreBehindWhileTheNodeToolsSettleFailsNoOtherModule now expects that pass in place of "not found wanting".
(c) Spacing. A module's pass is counted only gateEvery after its last counted one (PlanGate.HealthyAt).
(d) Only this send's wait is excused. The wait reading holds only when every waiting account resource's since is at or after the gate's since (two seconds of skew, as the witness allows). An older wait is judged as before.
(e)passCarried, gatePassed and passedWith give each build only its own wait (whyFor).
(f) Wording. The fallback for the kind names a dotted module whole. The words say "your account" only when the waiting account is the machine's operator account, and otherwise neither name nor claim it. When unhealthy turns into relogin-needed, or back, the cleared condition's line says what it became (Keeper.ClearSaying).
(g) A provider waiting for a login lists its held consumers and is urgent, as an unhealthy provider is. sayWaiters finds either kind.
Tests: cmd/mesh-controller/gate_followup_test.go (a, b, c, e, g) and person_wait_test.go (d, f). merge-check.sh passes locally.
Note for hq #204: ADR 0254's sentences on what still strands, and on a pending relogin excusing later builds, describe #142. Once this merges they need a dated progressive insight.
Follow-up to #142 (hq ADR 0254, issue 318), from its review.
- **(a) Nothing is stranded by an early fault.** A module found broken stays broken for the rest of the judging (`PlanGate.Broken`, `BrokenWhy`), and the send's verdict waits until every other module has its own verdict, or the bound. At the verdict, every module that did not pass on its own is in `Failing` and is put back; none is left on the machine without a verdict. The cost: a broken module is put back when the rest are judged (at most the bound), not at once.
- **(b) Tier path.** `failFirstSend` records the pass of the plan's own module when it passed on its own ("passed on its own and is kept"); the tier's other modules were already kept by `keepPassing`. `TestACoreBehindWhileTheNodeToolsSettleFailsNoOtherModule` now expects that pass in place of "not found wanting".
- **(c) Spacing.** A module's pass is counted only `gateEvery` after its last counted one (`PlanGate.HealthyAt`).
- **(d) Only this send's wait is excused.** The wait reading holds only when every waiting account resource's `since` is at or after the gate's `since` (two seconds of skew, as the witness allows). An older wait is judged as before.
- **(e)** `passCarried`, `gatePassed` and `passedWith` give each build only its own wait (`whyFor`).
- **(f) Wording.** The fallback for the kind names a dotted module whole. The words say "your account" only when the waiting account is the machine's operator account, and otherwise neither name nor claim it. When `unhealthy` turns into `relogin-needed`, or back, the cleared condition's line says what it became (`Keeper.ClearSaying`).
- **(g)** A provider waiting for a login lists its held consumers and is urgent, as an unhealthy provider is. `sayWaiters` finds either kind.
Tests: `cmd/mesh-controller/gate_followup_test.go` (a, b, c, e, g) and `person_wait_test.go` (d, f). `merge-check.sh` passes locally.
Note for hq #204: ADR 0254's sentences on what still strands, and on a pending relogin excusing later builds, describe #142. Once this merges they need a dated progressive insight.
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
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
Machines
mesh-controller on novox: judging — 0 healthy judging(s) so far
Transitions
2026-10-08 13:28 (new) → proposed (announced): novox/mesh-controller#146's head announced
2026-10-08 13:32 proposed → checked (checked): the verdict names this commit
2026-10-08 13:32 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-08 13:45 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-08 13:45 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
2026-10-08 13:46 delivering → superseded (superseded): a newer delivery to the same trunk took over its walk
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-controller@a63939160ef3` — **superseded** since 2026-10-08T13:46:21Z
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- 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
**Machines**
- mesh-controller on novox: judging — 0 healthy judging(s) so far
**Transitions**
- 2026-10-08 13:28 (new) → proposed (announced): novox/mesh-controller#146's head announced
- 2026-10-08 13:32 proposed → checked (checked): the verdict names this commit
- 2026-10-08 13:32 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-08 13:45 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-08 13:45 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
- 2026-10-08 13:46 delivering → superseded (superseded): a newer delivery to the same trunk took over its walk
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
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
Run by the build seat on ace as build-1791463935004233618 (builds --log build-1791463935004233618).
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 50 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-08T12:46:24Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-08T12:46:24Z
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.029s
ok github.com/novox/mesh-controller/cmd/mesh-controller 148.038s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.045s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.044s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.035s
ok github.com/novox/mesh-controller/examples/route-proxy 1.140s
ok github.com/novox/mesh-controller/internal/artifacts 1.059s
ok github.com/novox/mesh-controller/internal/broker 2.453s
ok github.com/novox/mesh-controller/internal/builder 1.698s
ok github.com/novox/mesh-controller/internal/catalogue 3.952s
ok github.com/novox/mesh-controller/internal/conditions 2.142s
ok github.com/novox/mesh-controller/internal/envfile 1.038s
ok github.com/novox/mesh-controller/internal/facts 1.043s
ok github.com/novox/mesh-controller/internal/identity 4.009s
ok github.com/novox/mesh-controller/internal/inventory 66.517s
ok github.com/novox/mesh-controller/internal/lease 17.669s
ok github.com/novox/mesh-controller/internal/licences 3.665s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.042s
ok github.com/novox/mesh-controller/internal/link 43.629s
ok github.com/novox/mesh-controller/internal/lint 1.864s
ok github.com/novox/mesh-controller/internal/outward 1.067s
ok github.com/novox/mesh-controller/internal/overlay 1.062s
ok github.com/novox/mesh-controller/internal/secrets 1.436s
ok github.com/novox/mesh-controller/internal/store 3.229s
ok github.com/novox/mesh-controller/internal/testbus 1.213s
ok github.com/novox/mesh-controller/internal/token 1.019s
**Merge check** at `f3c2ef98`
- `mesh/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 passed
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- 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
Run by the build seat on ace as `build-1791463935004233618` (`builds --log build-1791463935004233618`).
```
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 50 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-08T12:46:24Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-08T12:46:24Z
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.029s
ok github.com/novox/mesh-controller/cmd/mesh-controller 148.038s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.045s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.044s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.035s
ok github.com/novox/mesh-controller/examples/route-proxy 1.140s
ok github.com/novox/mesh-controller/internal/artifacts 1.059s
ok github.com/novox/mesh-controller/internal/broker 2.453s
ok github.com/novox/mesh-controller/internal/builder 1.698s
ok github.com/novox/mesh-controller/internal/catalogue 3.952s
ok github.com/novox/mesh-controller/internal/conditions 2.142s
ok github.com/novox/mesh-controller/internal/envfile 1.038s
ok github.com/novox/mesh-controller/internal/facts 1.043s
ok github.com/novox/mesh-controller/internal/identity 4.009s
ok github.com/novox/mesh-controller/internal/inventory 66.517s
ok github.com/novox/mesh-controller/internal/lease 17.669s
ok github.com/novox/mesh-controller/internal/licences 3.665s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.042s
ok github.com/novox/mesh-controller/internal/link 43.629s
ok github.com/novox/mesh-controller/internal/lint 1.864s
ok github.com/novox/mesh-controller/internal/outward 1.067s
ok github.com/novox/mesh-controller/internal/overlay 1.062s
ok github.com/novox/mesh-controller/internal/secrets 1.436s
ok github.com/novox/mesh-controller/internal/store 3.229s
ok github.com/novox/mesh-controller/internal/testbus 1.213s
ok github.com/novox/mesh-controller/internal/token 1.019s
```
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
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
Run by the build seat on ace as build-1791464759653236674 (builds --log build-1791464759653236674).
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 50 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-08T13:04:50Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-08T13:04:50Z
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.033s
ok github.com/novox/mesh-controller/cmd/mesh-controller 146.976s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.019s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.033s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.025s
ok github.com/novox/mesh-controller/examples/route-proxy 1.124s
ok github.com/novox/mesh-controller/internal/artifacts 1.044s
ok github.com/novox/mesh-controller/internal/broker 2.442s
ok github.com/novox/mesh-controller/internal/builder 1.693s
ok github.com/novox/mesh-controller/internal/catalogue 3.940s
ok github.com/novox/mesh-controller/internal/conditions 2.113s
ok github.com/novox/mesh-controller/internal/envfile 1.025s
ok github.com/novox/mesh-controller/internal/facts 1.035s
ok github.com/novox/mesh-controller/internal/identity 4.041s
ok github.com/novox/mesh-controller/internal/inventory 67.319s
ok github.com/novox/mesh-controller/internal/lease 17.667s
ok github.com/novox/mesh-controller/internal/licences 3.695s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.027s
ok github.com/novox/mesh-controller/internal/link 43.404s
ok github.com/novox/mesh-controller/internal/lint 1.855s
ok github.com/novox/mesh-controller/internal/outward 1.073s
ok github.com/novox/mesh-controller/internal/overlay 1.063s
ok github.com/novox/mesh-controller/internal/secrets 1.428s
ok github.com/novox/mesh-controller/internal/store 3.247s
ok github.com/novox/mesh-controller/internal/testbus 1.219s
ok github.com/novox/mesh-controller/internal/token 1.018s
**Merge check** at `428bacc1`
- `mesh/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 passed
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- 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
Run by the build seat on ace as `build-1791464759653236674` (`builds --log build-1791464759653236674`).
```
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 50 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-08T13:04:50Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-08T13:04:50Z
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.033s
ok github.com/novox/mesh-controller/cmd/mesh-controller 146.976s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.019s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.033s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.025s
ok github.com/novox/mesh-controller/examples/route-proxy 1.124s
ok github.com/novox/mesh-controller/internal/artifacts 1.044s
ok github.com/novox/mesh-controller/internal/broker 2.442s
ok github.com/novox/mesh-controller/internal/builder 1.693s
ok github.com/novox/mesh-controller/internal/catalogue 3.940s
ok github.com/novox/mesh-controller/internal/conditions 2.113s
ok github.com/novox/mesh-controller/internal/envfile 1.025s
ok github.com/novox/mesh-controller/internal/facts 1.035s
ok github.com/novox/mesh-controller/internal/identity 4.041s
ok github.com/novox/mesh-controller/internal/inventory 67.319s
ok github.com/novox/mesh-controller/internal/lease 17.667s
ok github.com/novox/mesh-controller/internal/licences 3.695s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.027s
ok github.com/novox/mesh-controller/internal/link 43.404s
ok github.com/novox/mesh-controller/internal/lint 1.855s
ok github.com/novox/mesh-controller/internal/outward 1.073s
ok github.com/novox/mesh-controller/internal/overlay 1.063s
ok github.com/novox/mesh-controller/internal/secrets 1.428s
ok github.com/novox/mesh-controller/internal/store 3.247s
ok github.com/novox/mesh-controller/internal/testbus 1.219s
ok github.com/novox/mesh-controller/internal/token 1.018s
```
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
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
Run by the build seat on shanks as build-1791464941443308564 (builds --log build-1791464941443308564).
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 50 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-08T13:04:50Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-08T13:04:50Z
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.040s
ok github.com/novox/mesh-controller/cmd/mesh-controller 167.306s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.029s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.037s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.029s
ok github.com/novox/mesh-controller/examples/route-proxy 1.206s
ok github.com/novox/mesh-controller/internal/artifacts 1.074s
ok github.com/novox/mesh-controller/internal/broker 2.695s
ok github.com/novox/mesh-controller/internal/builder 1.837s
ok github.com/novox/mesh-controller/internal/catalogue 4.721s
ok github.com/novox/mesh-controller/internal/conditions 2.261s
ok github.com/novox/mesh-controller/internal/envfile 1.056s
ok github.com/novox/mesh-controller/internal/facts 1.064s
ok github.com/novox/mesh-controller/internal/identity 4.728s
ok github.com/novox/mesh-controller/internal/inventory 79.198s
ok github.com/novox/mesh-controller/internal/lease 17.713s
ok github.com/novox/mesh-controller/internal/licences 4.307s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.061s
ok github.com/novox/mesh-controller/internal/link 46.051s
ok github.com/novox/mesh-controller/internal/lint 2.093s
ok github.com/novox/mesh-controller/internal/outward 1.091s
ok github.com/novox/mesh-controller/internal/overlay 1.079s
ok github.com/novox/mesh-controller/internal/secrets 1.553s
ok github.com/novox/mesh-controller/internal/store 3.465s
ok github.com/novox/mesh-controller/internal/testbus 1.253s
ok github.com/novox/mesh-controller/internal/token 1.014s
**Merge check** at `6a0dbe5a`
- `mesh/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 passed
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- 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
Run by the build seat on shanks as `build-1791464941443308564` (`builds --log build-1791464941443308564`).
```
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 50 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-08T13:04:50Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-08T13:04:50Z
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.040s
ok github.com/novox/mesh-controller/cmd/mesh-controller 167.306s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.029s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.037s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.029s
ok github.com/novox/mesh-controller/examples/route-proxy 1.206s
ok github.com/novox/mesh-controller/internal/artifacts 1.074s
ok github.com/novox/mesh-controller/internal/broker 2.695s
ok github.com/novox/mesh-controller/internal/builder 1.837s
ok github.com/novox/mesh-controller/internal/catalogue 4.721s
ok github.com/novox/mesh-controller/internal/conditions 2.261s
ok github.com/novox/mesh-controller/internal/envfile 1.056s
ok github.com/novox/mesh-controller/internal/facts 1.064s
ok github.com/novox/mesh-controller/internal/identity 4.728s
ok github.com/novox/mesh-controller/internal/inventory 79.198s
ok github.com/novox/mesh-controller/internal/lease 17.713s
ok github.com/novox/mesh-controller/internal/licences 4.307s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.061s
ok github.com/novox/mesh-controller/internal/link 46.051s
ok github.com/novox/mesh-controller/internal/lint 2.093s
ok github.com/novox/mesh-controller/internal/outward 1.091s
ok github.com/novox/mesh-controller/internal/overlay 1.079s
ok github.com/novox/mesh-controller/internal/secrets 1.553s
ok github.com/novox/mesh-controller/internal/store 3.465s
ok github.com/novox/mesh-controller/internal/testbus 1.253s
ok github.com/novox/mesh-controller/internal/token 1.014s
```
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
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
Run by the build seat on ace as build-1791466094951767631 (builds --log build-1791466094951767631).
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 50 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-08T13:23:02Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-08T13:23:02Z
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.032s
ok github.com/novox/mesh-controller/cmd/mesh-controller 147.042s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.034s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.043s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.033s
ok github.com/novox/mesh-controller/examples/route-proxy 1.139s
ok github.com/novox/mesh-controller/internal/artifacts 1.061s
ok github.com/novox/mesh-controller/internal/broker 2.462s
ok github.com/novox/mesh-controller/internal/builder 1.711s
ok github.com/novox/mesh-controller/internal/catalogue 3.961s
ok github.com/novox/mesh-controller/internal/conditions 2.164s
ok github.com/novox/mesh-controller/internal/envfile 1.040s
ok github.com/novox/mesh-controller/internal/facts 1.046s
ok github.com/novox/mesh-controller/internal/identity 4.079s
ok github.com/novox/mesh-controller/internal/inventory 66.933s
ok github.com/novox/mesh-controller/internal/lease 17.680s
ok github.com/novox/mesh-controller/internal/licences 3.729s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.034s
ok github.com/novox/mesh-controller/internal/link 43.752s
ok github.com/novox/mesh-controller/internal/lint 1.866s
ok github.com/novox/mesh-controller/internal/outward 1.063s
ok github.com/novox/mesh-controller/internal/overlay 1.048s
ok github.com/novox/mesh-controller/internal/secrets 1.446s
ok github.com/novox/mesh-controller/internal/store 3.298s
ok github.com/novox/mesh-controller/internal/testbus 1.208s
ok github.com/novox/mesh-controller/internal/token 1.016s
**Merge check** at `a6393916`
- `mesh/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 passed
**Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
- tier 0: mesh-controller
- tier 1: build-agent
- tier 2: route-proxy
- ace: receives build-agent, route-proxy
- g14: receives build-agent
- novox: receives mesh-controller, build-agent, route-proxy
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- 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
Run by the build seat on ace as `build-1791466094951767631` (`builds --log build-1791466094951767631`).
```
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 50 tool(s); WARNING: controller stay(s) up and say(s) not how it is ready — judged by liveness alone, refused from 2026-11-18 (ADR 0240 rule 8)
long-running resources without health: 1
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-08T13:23:02Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-08T13:23:02Z
machines:
- a machine (f35): composes
- holds mesh-dns-resolver (idt): composes
- holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
- a machine (yvbpsm): composes
a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-controller/cmd/mesh-builder 1.032s
ok github.com/novox/mesh-controller/cmd/mesh-controller 147.042s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.034s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.043s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.033s
ok github.com/novox/mesh-controller/examples/route-proxy 1.139s
ok github.com/novox/mesh-controller/internal/artifacts 1.061s
ok github.com/novox/mesh-controller/internal/broker 2.462s
ok github.com/novox/mesh-controller/internal/builder 1.711s
ok github.com/novox/mesh-controller/internal/catalogue 3.961s
ok github.com/novox/mesh-controller/internal/conditions 2.164s
ok github.com/novox/mesh-controller/internal/envfile 1.040s
ok github.com/novox/mesh-controller/internal/facts 1.046s
ok github.com/novox/mesh-controller/internal/identity 4.079s
ok github.com/novox/mesh-controller/internal/inventory 66.933s
ok github.com/novox/mesh-controller/internal/lease 17.680s
ok github.com/novox/mesh-controller/internal/licences 3.729s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.034s
ok github.com/novox/mesh-controller/internal/link 43.752s
ok github.com/novox/mesh-controller/internal/lint 1.866s
ok github.com/novox/mesh-controller/internal/outward 1.063s
ok github.com/novox/mesh-controller/internal/overlay 1.048s
ok github.com/novox/mesh-controller/internal/secrets 1.446s
ok github.com/novox/mesh-controller/internal/store 3.298s
ok github.com/novox/mesh-controller/internal/testbus 1.208s
ok github.com/novox/mesh-controller/internal/token 1.016s
```
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.
Follow-up to #142 (hq ADR 0254, issue 318), from its review.
PlanGate.Broken,BrokenWhy), and the send's verdict waits until every other module has its own verdict, or the bound. At the verdict, every module that did not pass on its own is inFailingand is put back; none is left on the machine without a verdict. The cost: a broken module is put back when the rest are judged (at most the bound), not at once.failFirstSendrecords the pass of the plan's own module when it passed on its own ("passed on its own and is kept"); the tier's other modules were already kept bykeepPassing.TestACoreBehindWhileTheNodeToolsSettleFailsNoOtherModulenow expects that pass in place of "not found wanting".gateEveryafter its last counted one (PlanGate.HealthyAt).sinceis at or after the gate'ssince(two seconds of skew, as the witness allows). An older wait is judged as before.passCarried,gatePassedandpassedWithgive each build only its own wait (whyFor).unhealthyturns intorelogin-needed, or back, the cleared condition's line says what it became (Keeper.ClearSaying).sayWaitersfinds either kind.Tests:
cmd/mesh-controller/gate_followup_test.go(a, b, c, e, g) andperson_wait_test.go(d, f).merge-check.shpasses locally.Note for hq #204: ADR 0254's sentences on what still strands, and on a pending relogin excusing later builds, describe #142. Once this merges they need a dated progressive insight.
Delivery
novox/mesh-controller@a63939160ef3— superseded since 2026-10-08T13:46:21ZDelivery 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
f3c2ef98mesh/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 ace as
build-1791463935004233618(builds --log build-1791463935004233618).428bacc1b0tobd25807ca7bd25807ca7to6a0dbe5a04Merge check at
428bacc1mesh/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 ace as
build-1791464759653236674(builds --log build-1791464759653236674).Merge check at
6a0dbe5amesh/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-1791464941443308564(builds --log build-1791464941443308564).6a0dbe5a04toa63939160eMerge check at
a6393916mesh/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 ace as
build-1791466094951767631(builds --log build-1791466094951767631).