What the mesh's checks said of a pull request had no verb: mesh/merge-gate and mesh/repo-check verdicts were read by scraping this controller's journal. mesh-delivery answers it as mesh-delivery.checks (repository + number, or repository + commit). Its holder side is novox/mesh-catalog's PR on the same branch name, feat/delivery-checks-verb, which makes the two one delivery group; this one goes first.
Why Optional. Adding a verb to a mesh seat whose holder lives in another repository deadlocks today: this controller would refuse the mesh-delivery that does not serve checks (does not serve checks, which that seat's protocol promises), the controller before it refuses the one that does (says it serves checks, which that seat's protocol does not promise), and in between every catalogue check would fail on a module nobody touched. Both were reproduced with module check before this change. A Verb can now be marked Optional (never stored or said): served or not, the holder holds. Once mesh-delivery serves checks everywhere, the mark is removed and it is a condition of holding like the rest.
Checked locally: merge-check.sh (gofmt, vet, the whole suite under -race against a throwaway store) passes; module check of every catalogue manifest passes with this binary both before and after the catalogue PR.
hq: design 33 §7 says a seat's tools are "additive within a version" while §3 makes every verb a condition of holding; the Optional mark is how the two meet, and wants a line in design 33 (not written here).
What the mesh's checks said of a pull request had no verb: `mesh/merge-gate` and `mesh/repo-check` verdicts were read by scraping this controller's journal. mesh-delivery answers it as `mesh-delivery.checks` (repository + number, or repository + commit). Its holder side is novox/mesh-catalog's PR on the same branch name, `feat/delivery-checks-verb`, which makes the two one delivery group; this one goes first.
**Why `Optional`.** Adding a verb to a mesh seat whose holder lives in another repository deadlocks today: this controller would refuse the mesh-delivery that does not serve `checks` (`does not serve checks, which that seat's protocol promises`), the controller before it refuses the one that does (`says it serves checks, which that seat's protocol does not promise`), and in between every catalogue check would fail on a module nobody touched. Both were reproduced with `module check` before this change. A `Verb` can now be marked `Optional` (never stored or said): served or not, the holder holds. Once mesh-delivery serves `checks` everywhere, the mark is removed and it is a condition of holding like the rest.
Checked locally: `merge-check.sh` (gofmt, vet, the whole suite under -race against a throwaway store) passes; `module check` of every catalogue manifest passes with this binary both before and after the catalogue PR.
hq: design 33 §7 says a seat's tools are "additive within a version" while §3 makes every verb a condition of holding; the `Optional` mark is how the two meet, and wants a line in design 33 (not written here).
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…
What the mesh's checks said of a pull request had no verb: the verdict was read from this
controller's journal. mesh-delivery answers it as checks. A verb added to a mesh seat whose holder
lives in another repository deadlocked: this controller would refuse the holder that does not serve
it, the one before it the holder that does, and every catalogue check between the two would fail on
mesh-delivery. So a verb can be marked optional — served or not, the holder holds — until every
holder serves it.
mesh-controller on novox: passed — healthy 3 times over 3m40s
mesh-controller on the rest running it: sent
build-agent on ace: passed — healthy 3 times over 3m25s
build-agent on the rest running it: sent
route-proxy on ace: passed — healthy 3 times over 3m33s
route-proxy on the rest running it: sent
Transitions
2026-10-07 17:40 (new) → proposed (announced): novox/mesh-controller#117's head announced
2026-10-07 17:52 proposed → checked (checked): the verdict names this commit
2026-10-07 17:52 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-07 17:59 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-07 17:59 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-07 18:13 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@1fdff00794e9` — **delivered** since 2026-10-07T18:13:57Z
**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
**Group** `feat/delivery-checks-verb`, in order: novox/mesh-controller@1fdff00794e9 → novox/mesh-catalog@13894744a701
- novox/mesh-controller@1fdff00794e9 before novox/mesh-catalog@13894744a701: declared
**Machines**
- mesh-controller on novox: passed — healthy 3 times over 3m40s
- mesh-controller on the rest running it: sent
- build-agent on ace: passed — healthy 3 times over 3m25s
- build-agent on the rest running it: sent
- route-proxy on ace: passed — healthy 3 times over 3m33s
- route-proxy on the rest running it: sent
**Transitions**
- 2026-10-07 17:40 (new) → proposed (announced): novox/mesh-controller#117's head announced
- 2026-10-07 17:52 proposed → checked (checked): the verdict names this commit
- 2026-10-07 17:52 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-07 17:59 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-07 17:59 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-07 18:13 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 shanks as build-1791394839899485954 (builds --log build-1791394839899485954).
--- 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-07T17:23:39Z 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-07T17:23:39Z
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-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.034s
ok github.com/novox/mesh-controller/cmd/mesh-controller 451.780s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.042s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.055s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.014s
ok github.com/novox/mesh-controller/examples/route-proxy 1.234s
ok github.com/novox/mesh-controller/internal/artifacts 1.076s
ok github.com/novox/mesh-controller/internal/broker 2.571s
ok github.com/novox/mesh-controller/internal/builder 1.503s
ok github.com/novox/mesh-controller/internal/catalogue 4.316s
ok github.com/novox/mesh-controller/internal/conditions 2.025s
ok github.com/novox/mesh-controller/internal/envfile 1.053s
ok github.com/novox/mesh-controller/internal/facts 1.069s
ok github.com/novox/mesh-controller/internal/identity 42.770s
ok github.com/novox/mesh-controller/internal/inventory 280.930s
ok github.com/novox/mesh-controller/internal/lease 17.694s
ok github.com/novox/mesh-controller/internal/licences 45.531s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.056s
ok github.com/novox/mesh-controller/internal/link 85.009s
ok github.com/novox/mesh-controller/internal/lint 1.965s
ok github.com/novox/mesh-controller/internal/outward 1.092s
ok github.com/novox/mesh-controller/internal/overlay 1.069s
ok github.com/novox/mesh-controller/internal/secrets 1.503s
ok github.com/novox/mesh-controller/internal/store 12.340s
ok github.com/novox/mesh-controller/internal/testbus 1.241s
ok github.com/novox/mesh-controller/internal/token 1.013s
**Merge check** at `1fdff007`
- `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
**Change 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-1791394839899485954` (`builds --log build-1791394839899485954`).
```
--- 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-07T17:23:39Z 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-07T17:23:39Z
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-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.034s
ok github.com/novox/mesh-controller/cmd/mesh-controller 451.780s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.042s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.055s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.014s
ok github.com/novox/mesh-controller/examples/route-proxy 1.234s
ok github.com/novox/mesh-controller/internal/artifacts 1.076s
ok github.com/novox/mesh-controller/internal/broker 2.571s
ok github.com/novox/mesh-controller/internal/builder 1.503s
ok github.com/novox/mesh-controller/internal/catalogue 4.316s
ok github.com/novox/mesh-controller/internal/conditions 2.025s
ok github.com/novox/mesh-controller/internal/envfile 1.053s
ok github.com/novox/mesh-controller/internal/facts 1.069s
ok github.com/novox/mesh-controller/internal/identity 42.770s
ok github.com/novox/mesh-controller/internal/inventory 280.930s
ok github.com/novox/mesh-controller/internal/lease 17.694s
ok github.com/novox/mesh-controller/internal/licences 45.531s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.056s
ok github.com/novox/mesh-controller/internal/link 85.009s
ok github.com/novox/mesh-controller/internal/lint 1.965s
ok github.com/novox/mesh-controller/internal/outward 1.092s
ok github.com/novox/mesh-controller/internal/overlay 1.069s
ok github.com/novox/mesh-controller/internal/secrets 1.503s
ok github.com/novox/mesh-controller/internal/store 12.340s
ok github.com/novox/mesh-controller/internal/testbus 1.241s
ok github.com/novox/mesh-controller/internal/token 1.013s
```
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.
What the mesh's checks said of a pull request had no verb:
mesh/merge-gateandmesh/repo-checkverdicts were read by scraping this controller's journal. mesh-delivery answers it asmesh-delivery.checks(repository + number, or repository + commit). Its holder side is novox/mesh-catalog's PR on the same branch name,feat/delivery-checks-verb, which makes the two one delivery group; this one goes first.Why
Optional. Adding a verb to a mesh seat whose holder lives in another repository deadlocks today: this controller would refuse the mesh-delivery that does not servechecks(does not serve checks, which that seat's protocol promises), the controller before it refuses the one that does (says it serves checks, which that seat's protocol does not promise), and in between every catalogue check would fail on a module nobody touched. Both were reproduced withmodule checkbefore this change. AVerbcan now be markedOptional(never stored or said): served or not, the holder holds. Once mesh-delivery servescheckseverywhere, the mark is removed and it is a condition of holding like the rest.Checked locally:
merge-check.sh(gofmt, vet, the whole suite under -race against a throwaway store) passes;module checkof every catalogue manifest passes with this binary both before and after the catalogue PR.hq: design 33 §7 says a seat's tools are "additive within a version" while §3 makes every verb a condition of holding; the
Optionalmark is how the two meet, and wants a line in design 33 (not written here).Delivery
novox/mesh-controller@1fdff00794e9— delivered since 2026-10-07T18:13:57ZDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Group
feat/delivery-checks-verb, in order: novox/mesh-controller@1fdff00794 → novox/mesh-catalog@13894744a7Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
1fdff007mesh/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 passedChange plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791394839899485954(builds --log build-1791394839899485954).