novox/hq issue 302: mesh-lab's merge-check.sh runs in the TypeScript toolchain, which holds no Go compiler, so its replays register was never compiled, vetted or tested before a lab merge (mesh-lab #58's report: "NOT CHECKED HERE: replays/ (Go)"). A broken register would have merged green.
What changes (internal/builder): a merge-check.sh may declare further parts among its first twenty lines, # mesh-check-also: <toolchain> <script>. mesh/repo-check runs the script first, then each part from the repository's root in that toolchain's own container (same environment, no container-runtime socket). The layer passes only when every part does; a failing part fails it by name; a declared script the repository lacks, or one outside it, fails; a part in a toolchain the mesh does not hold is an error, never a pass. A script declaring no part runs exactly as before.
mesh-lab declares its Go part in novox/mesh-lab's companion PR (replays/merge-check.sh: gofmt, go vet, TestEveryReplayIsWhole). Until this build reaches the build seat, that header line is a comment and lab PRs are checked as before.
Checked:TestARepositoryInTwoLanguagesIsCheckedInBoth. Replay R302 in mesh-lab's register (a gate replay of that test) is proved: absent before the fix, passes on it. sh merge-check.sh passes locally (race detector, throwaway PostgreSQL 17).
novox/hq issue 302: mesh-lab's `merge-check.sh` runs in the TypeScript toolchain, which holds no Go compiler, so its replays register was never compiled, vetted or tested before a lab merge (mesh-lab #58's report: "NOT CHECKED HERE: replays/ (Go)"). A broken register would have merged green.
**What changes (internal/builder):** a `merge-check.sh` may declare further parts among its first twenty lines, `# mesh-check-also: <toolchain> <script>`. `mesh/repo-check` runs the script first, then each part from the repository's root in that toolchain's own container (same environment, no container-runtime socket). The layer passes only when every part does; a failing part fails it by name; a declared script the repository lacks, or one outside it, fails; a part in a toolchain the mesh does not hold is an error, never a pass. A script declaring no part runs exactly as before.
mesh-lab declares its Go part in novox/mesh-lab's companion PR (`replays/merge-check.sh`: gofmt, go vet, `TestEveryReplayIsWhole`). Until this build reaches the build seat, that header line is a comment and lab PRs are checked as before.
**Checked:** `TestARepositoryInTwoLanguagesIsCheckedInBoth`. Replay R302 in mesh-lab's register (a `gate` replay of that test) is proved: absent before the fix, passes on it. `sh merge-check.sh` passes locally (race detector, throwaway PostgreSQL 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…
mesh/delivery covered after its stop: a later walk that contains it was delivered: plan-1791658180097457523 (novox/mesh-controller at a2a671ad into main,…
mesh-lab's merge-check.sh runs in the TypeScript toolchain, which holds no Go
compiler, so its replays register was never compiled before a merge and a
broken one would have merged green. A script now declares a further part with
'# mesh-check-also: <toolchain> <script>'; the build seat runs it in that
toolchain's own container, and mesh/repo-check passes only when every part does.
Deliverynovox/mesh-controller@98ef7bac6e6a — stopped since 2026-10-08T23:33:03Z
Covered: covered after its stop: a later walk that contains it was delivered: plan-1791658180097457523 (novox/mesh-controller at a2a671ad into main, done, contains its merge cdbbd9ec)
Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
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
Transitions
2026-10-07 22:14 (new) → proposed (announced): novox/mesh-controller#125's head announced
2026-10-07 22:24 proposed → checked (checked): the verdict names this commit
2026-10-07 22:24 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-07 22:36 ready → held (hold): something holds it for a person: its group's composed check did not pass for the heads that merged, or it merged and no walk was opened for it
2026-10-08 23:33 held → stopped (stop): covered: its merge cdbbd9ec4b is contained in cec797e996 which is delivered (walk plan-1791499975016484055); closed on the operator's word 2026-10-09; the held state came from no walk being opened for it — see hq issue to follow
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-controller@98ef7bac6e6a` — **stopped** since 2026-10-08T23:33:03Z
**Covered**: covered after its stop: a later walk that contains it was delivered: plan-1791658180097457523 (novox/mesh-controller at a2a671ad into main, done, contains its merge cdbbd9ec)
**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
**Transitions**
- 2026-10-07 22:14 (new) → proposed (announced): novox/mesh-controller#125's head announced
- 2026-10-07 22:24 proposed → checked (checked): the verdict names this commit
- 2026-10-07 22:24 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-07 22:36 ready → held (hold): something holds it for a person: its group's composed check did not pass for the heads that merged, or it merged and no walk was opened for it
- 2026-10-08 23:33 held → stopped (stop): covered: its merge cdbbd9ec4bd0 is contained in cec797e996b2 which is delivered (walk plan-1791499975016484055); closed on the operator's word 2026-10-09; the held state came from no walk being opened for it — see hq issue to follow
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-1791411269229090361 (builds --log build-1791411269229090361).
--- 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:06:03Z 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:06:03Z
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.035s
ok github.com/novox/mesh-controller/cmd/mesh-controller 465.944s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.012s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.016s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.091s
ok github.com/novox/mesh-controller/examples/route-proxy 1.190s
ok github.com/novox/mesh-controller/internal/artifacts 1.028s
ok github.com/novox/mesh-controller/internal/broker 2.493s
ok github.com/novox/mesh-controller/internal/builder 1.418s
ok github.com/novox/mesh-controller/internal/catalogue 4.319s
ok github.com/novox/mesh-controller/internal/conditions 2.059s
ok github.com/novox/mesh-controller/internal/envfile 1.089s
ok github.com/novox/mesh-controller/internal/facts 1.093s
ok github.com/novox/mesh-controller/internal/identity 42.146s
ok github.com/novox/mesh-controller/internal/inventory 277.147s
ok github.com/novox/mesh-controller/internal/lease 17.776s
ok github.com/novox/mesh-controller/internal/licences 40.293s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.120s
ok github.com/novox/mesh-controller/internal/link 78.807s
ok github.com/novox/mesh-controller/internal/lint 1.906s
ok github.com/novox/mesh-controller/internal/outward 1.122s
ok github.com/novox/mesh-controller/internal/overlay 1.133s
ok github.com/novox/mesh-controller/internal/secrets 1.490s
ok github.com/novox/mesh-controller/internal/store 10.007s
ok github.com/novox/mesh-controller/internal/testbus 1.272s
ok github.com/novox/mesh-controller/internal/token 1.018s
**Merge check** at `98ef7bac`
- `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-1791411269229090361` (`builds --log build-1791411269229090361`).
```
--- 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:06:03Z 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:06:03Z
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.035s
ok github.com/novox/mesh-controller/cmd/mesh-controller 465.944s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.012s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.016s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.091s
ok github.com/novox/mesh-controller/examples/route-proxy 1.190s
ok github.com/novox/mesh-controller/internal/artifacts 1.028s
ok github.com/novox/mesh-controller/internal/broker 2.493s
ok github.com/novox/mesh-controller/internal/builder 1.418s
ok github.com/novox/mesh-controller/internal/catalogue 4.319s
ok github.com/novox/mesh-controller/internal/conditions 2.059s
ok github.com/novox/mesh-controller/internal/envfile 1.089s
ok github.com/novox/mesh-controller/internal/facts 1.093s
ok github.com/novox/mesh-controller/internal/identity 42.146s
ok github.com/novox/mesh-controller/internal/inventory 277.147s
ok github.com/novox/mesh-controller/internal/lease 17.776s
ok github.com/novox/mesh-controller/internal/licences 40.293s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.120s
ok github.com/novox/mesh-controller/internal/link 78.807s
ok github.com/novox/mesh-controller/internal/lint 1.906s
ok github.com/novox/mesh-controller/internal/outward 1.122s
ok github.com/novox/mesh-controller/internal/overlay 1.133s
ok github.com/novox/mesh-controller/internal/secrets 1.490s
ok github.com/novox/mesh-controller/internal/store 10.007s
ok github.com/novox/mesh-controller/internal/testbus 1.272s
ok github.com/novox/mesh-controller/internal/token 1.018s
```
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.
novox/hq issue 302: mesh-lab's
merge-check.shruns in the TypeScript toolchain, which holds no Go compiler, so its replays register was never compiled, vetted or tested before a lab merge (mesh-lab #58's report: "NOT CHECKED HERE: replays/ (Go)"). A broken register would have merged green.What changes (internal/builder): a
merge-check.shmay declare further parts among its first twenty lines,# mesh-check-also: <toolchain> <script>.mesh/repo-checkruns the script first, then each part from the repository's root in that toolchain's own container (same environment, no container-runtime socket). The layer passes only when every part does; a failing part fails it by name; a declared script the repository lacks, or one outside it, fails; a part in a toolchain the mesh does not hold is an error, never a pass. A script declaring no part runs exactly as before.mesh-lab declares its Go part in novox/mesh-lab's companion PR (
replays/merge-check.sh: gofmt, go vet,TestEveryReplayIsWhole). Until this build reaches the build seat, that header line is a comment and lab PRs are checked as before.Checked:
TestARepositoryInTwoLanguagesIsCheckedInBoth. Replay R302 in mesh-lab's register (agatereplay of that test) is proved: absent before the fix, passes on it.sh merge-check.shpasses locally (race detector, throwaway PostgreSQL 17).Delivery
novox/mesh-controller@98ef7bac6e6a— stopped since 2026-10-08T23:33:03ZCovered: covered after its stop: a later walk that contains it was delivered: plan-1791658180097457523 (novox/mesh-controller at
a2a671adinto main, done, contains its mergecdbbd9ec)Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Transitions
cdbbd9ec4bis contained incec797e996which is delivered (walk plan-1791499975016484055); closed on the operator's word 2026-10-09; the held state came from no walk being opened for it — see hq issue to followThe commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
98ef7bacmesh/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-1791411269229090361(builds --log build-1791411269229090361).