The mesh-controller.build verb took only repository, path and ref; build --on <module> and build --behind were reachable only through the generic command verb. This gives the verb both, redone fresh on main (replaces the conflicting fix/the-build-tool-rebuilds-what-stands-on-a-base).
on: a module's name. Every module the mesh holds that was built against its artifacts is built again from its own source, bases among them asked first: the rebuild a changed base needs (novox/hq issue 131). It names a base module, not a machine; the CLI flag means the same.
behind: a switch ("true"/"false"). Builds every module whose source has moved past the commit it was built from.
One shape per call. Another argument given beside on or behind is refused as passed over (issue 244). With no shape named, the bare build runs and answers its usage, as rotate does with neither of its shapes. This also keeps the startup check (sampleArguments) from treating the verb as a newer build's.
repository is no longer required in the schema. A stored controller-seat row takes the binary's definition on re-seed. TestAStoredRowsBuildVerbTakesOnAndBehind checks that a row with the old schema gains both arguments and drops the required.
accountedFlags no longer lists on/behind as withheld.
ADR 0245 replaces: not set. The verb is the console's way to run the controller's own build command, not a shell command an agent would run on a machine.
Caveat: like the single build, both shapes run with --wait 0. Bases are asked first, but with more than one build seat holder pulling from the queue, a dependent can start before its base has finished.
Tests: TestTheBuildToolTakesOnAndBehind (argv for each shape, nothing new when neither is given, mixed shapes refused). merge-check.sh passed locally with -race and postgres 17.
The `mesh-controller.build` verb took only `repository`, `path` and `ref`; `build --on <module>` and `build --behind` were reachable only through the generic `command` verb. This gives the verb both, redone fresh on main (replaces the conflicting `fix/the-build-tool-rebuilds-what-stands-on-a-base`).
- `on`: a module's name. Every module the mesh holds that was built against its artifacts is built again from its own source, bases among them asked first: the rebuild a changed base needs (novox/hq issue 131). It names a base module, not a machine; the CLI flag means the same.
- `behind`: a switch (`"true"`/`"false"`). Builds every module whose source has moved past the commit it was built from.
- One shape per call. Another argument given beside `on` or `behind` is refused as passed over (issue 244). With no shape named, the bare `build` runs and answers its usage, as `rotate` does with neither of its shapes. This also keeps the startup check (`sampleArguments`) from treating the verb as a newer build's.
- `repository` is no longer required in the schema. A stored controller-seat row takes the binary's definition on re-seed. `TestAStoredRowsBuildVerbTakesOnAndBehind` checks that a row with the old schema gains both arguments and drops the `required`.
- `accountedFlags` no longer lists `on`/`behind` as withheld.
- ADR 0245 `replaces`: not set. The verb is the console's way to run the controller's own `build` command, not a shell command an agent would run on a machine.
Caveat: like the single build, both shapes run with `--wait 0`. Bases are *asked* first, but with more than one build seat holder pulling from the queue, a dependent can start before its base has finished.
Tests: `TestTheBuildToolTakesOnAndBehind` (argv for each shape, nothing new when neither is given, mixed shapes refused). `merge-check.sh` passed locally with -race and postgres 17.
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…
The verb took only a repository; build --on <module> and build --behind were reachable only through the generic command verb. Each shape is one per call, and a second beside it is refused as passed over.
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: passed — healthy 3 times over 3m46s
mesh-controller on the rest running it: sent
build-agent on ace: passed — healthy 3 times over 3m33s
build-agent on the rest running it: sent
route-proxy on ace: passed — healthy 3 times over 3m26s
route-proxy on the rest running it: sent
Transitions
2026-10-07 23:37 (new) → proposed (announced): novox/mesh-controller#130's head announced
2026-10-07 23:46 proposed → checked (checked): the verdict names this commit
2026-10-07 23:46 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-08 00:37 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 00:37 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 00:52 delivering → delivered (done): its walk is done: 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@6faf701656fe` — **delivered** since 2026-10-08T00:52:42Z
**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: passed — healthy 3 times over 3m46s
- mesh-controller on the rest running it: sent
- build-agent on ace: passed — healthy 3 times over 3m33s
- build-agent on the rest running it: sent
- route-proxy on ace: passed — healthy 3 times over 3m26s
- route-proxy on the rest running it: sent
**Transitions**
- 2026-10-07 23:37 (new) → proposed (announced): novox/mesh-controller#130's head announced
- 2026-10-07 23:46 proposed → checked (checked): the verdict names this commit
- 2026-10-07 23:46 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-08 00:37 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 00:37 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 00:52 delivering → delivered (done): its walk is done: 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`.
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-1791416264153071271 (builds --log build-1791416264153071271).
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 46 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-07T22:47:27Z 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-07T22:47:27Z
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.030s
ok github.com/novox/mesh-controller/cmd/mesh-controller 426.863s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.010s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.013s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.056s
ok github.com/novox/mesh-controller/examples/route-proxy 1.141s
ok github.com/novox/mesh-controller/internal/artifacts 1.024s
ok github.com/novox/mesh-controller/internal/broker 2.389s
ok github.com/novox/mesh-controller/internal/builder 1.331s
ok github.com/novox/mesh-controller/internal/catalogue 3.750s
ok github.com/novox/mesh-controller/internal/conditions 2.006s
ok github.com/novox/mesh-controller/internal/envfile 1.055s
ok github.com/novox/mesh-controller/internal/facts 1.062s
ok github.com/novox/mesh-controller/internal/identity 45.076s
ok github.com/novox/mesh-controller/internal/inventory 256.898s
ok github.com/novox/mesh-controller/internal/lease 18.427s
ok github.com/novox/mesh-controller/internal/licences 43.340s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.056s
ok github.com/novox/mesh-controller/internal/link 81.652s
ok github.com/novox/mesh-controller/internal/lint 1.760s
ok github.com/novox/mesh-controller/internal/outward 1.106s
ok github.com/novox/mesh-controller/internal/overlay 1.065s
ok github.com/novox/mesh-controller/internal/secrets 1.409s
ok github.com/novox/mesh-controller/internal/store 23.751s
ok github.com/novox/mesh-controller/internal/testbus 1.241s
ok github.com/novox/mesh-controller/internal/token 1.014s
**Merge check** at `6faf7016`
- `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-1791416264153071271` (`builds --log build-1791416264153071271`).
```
--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 46 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-07T22:47:27Z 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-07T22:47:27Z
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.030s
ok github.com/novox/mesh-controller/cmd/mesh-controller 426.863s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.010s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.013s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.056s
ok github.com/novox/mesh-controller/examples/route-proxy 1.141s
ok github.com/novox/mesh-controller/internal/artifacts 1.024s
ok github.com/novox/mesh-controller/internal/broker 2.389s
ok github.com/novox/mesh-controller/internal/builder 1.331s
ok github.com/novox/mesh-controller/internal/catalogue 3.750s
ok github.com/novox/mesh-controller/internal/conditions 2.006s
ok github.com/novox/mesh-controller/internal/envfile 1.055s
ok github.com/novox/mesh-controller/internal/facts 1.062s
ok github.com/novox/mesh-controller/internal/identity 45.076s
ok github.com/novox/mesh-controller/internal/inventory 256.898s
ok github.com/novox/mesh-controller/internal/lease 18.427s
ok github.com/novox/mesh-controller/internal/licences 43.340s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.056s
ok github.com/novox/mesh-controller/internal/link 81.652s
ok github.com/novox/mesh-controller/internal/lint 1.760s
ok github.com/novox/mesh-controller/internal/outward 1.106s
ok github.com/novox/mesh-controller/internal/overlay 1.065s
ok github.com/novox/mesh-controller/internal/secrets 1.409s
ok github.com/novox/mesh-controller/internal/store 23.751s
ok github.com/novox/mesh-controller/internal/testbus 1.241s
ok github.com/novox/mesh-controller/internal/token 1.014s
```
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.
The
mesh-controller.buildverb took onlyrepository,pathandref;build --on <module>andbuild --behindwere reachable only through the genericcommandverb. This gives the verb both, redone fresh on main (replaces the conflictingfix/the-build-tool-rebuilds-what-stands-on-a-base).on: a module's name. Every module the mesh holds that was built against its artifacts is built again from its own source, bases among them asked first: the rebuild a changed base needs (novox/hq issue 131). It names a base module, not a machine; the CLI flag means the same.behind: a switch ("true"/"false"). Builds every module whose source has moved past the commit it was built from.onorbehindis refused as passed over (issue 244). With no shape named, the barebuildruns and answers its usage, asrotatedoes with neither of its shapes. This also keeps the startup check (sampleArguments) from treating the verb as a newer build's.repositoryis no longer required in the schema. A stored controller-seat row takes the binary's definition on re-seed.TestAStoredRowsBuildVerbTakesOnAndBehindchecks that a row with the old schema gains both arguments and drops therequired.accountedFlagsno longer listson/behindas withheld.replaces: not set. The verb is the console's way to run the controller's ownbuildcommand, not a shell command an agent would run on a machine.Caveat: like the single build, both shapes run with
--wait 0. Bases are asked first, but with more than one build seat holder pulling from the queue, a dependent can start before its base has finished.Tests:
TestTheBuildToolTakesOnAndBehind(argv for each shape, nothing new when neither is given, mixed shapes refused).merge-check.shpassed locally with -race and postgres 17.Delivery
novox/mesh-controller@6faf701656fe— delivered since 2026-10-08T00:52:42ZDelivery 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
6faf7016mesh/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-1791416264153071271(builds --log build-1791416264153071271).