Reopened from #260 under a branch of its own, out of the delivery group of mesh-host#98 and mesh-controller#283 (the group's order contradicted itself: built-by put the catalogue before mesh-host).
Issue 594; decision: novox/hq ADR 0335 §5. build-agent's server declares busy as /usr/local/bin/mesh-builder busy (by its path, as its health check names it; timeout the default 10s), and its README says what that does.
Merge only once mesh-host#98 and mesh-controller#283 are merged and #283's build-agent image runs on all four machines: a controller older than #283 copies an unknown resource key into every declaration, a node-engine older than #98 refuses the whole declaration for it, and an image older than #283 has no busy command. #283 sends busy only to an engine whose health statement says contract 8.
Checked earlier at #260: merge-check.sh with MESH_GATE set to a controller built from #283 passes (module check, words, agent-home, paths, health-undeclared 67 as kept).
after: none
Reopened from #260 under a branch of its own, out of the delivery group of mesh-host#98 and mesh-controller#283 (the group's order contradicted itself: built-by put the catalogue before mesh-host).
Issue 594; decision: novox/hq ADR 0335 §5. build-agent's `server` declares `busy` as `/usr/local/bin/mesh-builder busy` (by its path, as its health check names it; timeout the default 10s), and its README says what that does.
**Merge only once mesh-host#98 and mesh-controller#283 are merged and #283's build-agent image runs on all four machines**: a controller older than #283 copies an unknown resource key into every declaration, a node-engine older than #98 refuses the whole declaration for it, and an image older than #283 has no `busy` command. #283 sends `busy` only to an engine whose health statement says contract 8.
Checked earlier at #260: merge-check.sh with MESH_GATE set to a controller built from #283 passes (module check, words, agent-home, paths, health-undeclared 67 as kept).
mesh/delivery-group group feat/335-a-busy-container-is-replaced-when-idle rejected: its order contradicts itself: novox/mesh-catalog@190608193764, novox/mesh-c…
Every merge into mesh-controller replaced the agents and the queue started
their checks again elsewhere (issue 594). Its server now declares busy as
mesh-builder busy (novox/hq ADR 0335 §5).
mesh/merge-gate head 12a5e7be7321 merged into trunk 23a2e1e20467 — fail: builds build-agent → ace, g14, novox, shanks; no bus step; head 12a5e7be7321 does …
mesh/repo-check head 12a5e7be7321 merged into trunk 23a2e1e20467 — fail: head 12a5e7be7321 does not merge cleanly into trunk 23a2e1e20467: in conflict modu…
Merge check at 12a5e7be
Judged: head 12a5e7be7321 merged into trunk 23a2e1e20467
mesh/merge-gate: FAIL — head 12a5e7be73 does not merge cleanly into trunk 23a2e1e204: in conflict modules/build-agent/README.md (modules: build-agent)
mesh/repo-check: FAIL — head 12a5e7be73 does not merge cleanly into trunk 23a2e1e204: in conflict modules/build-agent/README.md
Delivery plan — builds build-agent → ace, g14, novox, shanks; no bus step
tier 0: build-agent
ace: receives build-agent
g14: receives build-agent
novox: receives build-agent
shanks: receives build-agent
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
read by no module's build: modules/build-agent/README.md
Run by the build seat on shanks as build-1791929312317786030 (builds --log build-1791929312317786030).
head 12a5e7be7321 does not merge cleanly into trunk 23a2e1e20467: in conflict modules/build-agent/README.md
**Merge check** at `12a5e7be`
Judged: head `12a5e7be7321` merged into trunk `23a2e1e20467`
- `mesh/merge-gate`: **FAIL** — head 12a5e7be7321 does not merge cleanly into trunk 23a2e1e20467: in conflict modules/build-agent/README.md (modules: build-agent)
- `mesh/repo-check`: **FAIL** — head 12a5e7be7321 does not merge cleanly into trunk 23a2e1e20467: in conflict modules/build-agent/README.md
**Delivery plan** — builds build-agent → ace, g14, novox, shanks; no bus step
- tier 0: build-agent
- ace: receives build-agent
- g14: receives build-agent
- novox: receives build-agent
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
- read by no module's build: modules/build-agent/README.md
Run by the build seat on shanks as `build-1791929312317786030` (`builds --log build-1791929312317786030`).
```
head 12a5e7be7321 does not merge cleanly into trunk 23a2e1e20467: in conflict modules/build-agent/README.md
```
Deliverynovox/mesh-catalog@c876ad4a8303 — delivered since 2026-10-13T22:41:48Z
Delivery plan — builds build-agent → ace, g14, novox, shanks; no bus step
tier 0: build-agent
ace: receives build-agent
g14: receives build-agent
novox: receives build-agent
shanks: receives build-agent
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
Machines
build-agent on ace: passed — healthy 1 times over 20s, by a leaf module's rule: one reading (novox/hq ADR 0304)
build-agent on the rest running it: sent
Transitions
2026-10-13 22:12 (new) → proposed (announced): novox/mesh-catalog#283's head announced
2026-10-13 22:15 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-13 22:15 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed
2026-10-13 22:34 rejected → proposed (recheck): the controller and node-engine that understand busy (mesh-controller #283, mesh-host #98) now run on every machine; its earlier check was judged by the old ones
2026-10-13 22:37 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-13 22:37 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-13 22:40 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
2026-10-13 22:40 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
2026-10-13 22:41 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-catalog@c876ad4a8303` — **delivered** since 2026-10-13T22:41:48Z
**Delivery plan** — builds build-agent → ace, g14, novox, shanks; no bus step
- tier 0: build-agent
- ace: receives build-agent
- g14: receives build-agent
- novox: receives build-agent
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
**Machines**
- build-agent on ace: passed — healthy 1 times over 20s, by a leaf module's rule: one reading (novox/hq ADR 0304)
- build-agent on the rest running it: sent
**Transitions**
- 2026-10-13 22:12 (new) → proposed (announced): novox/mesh-catalog#283's head announced
- 2026-10-13 22:15 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-13 22:15 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed
- 2026-10-13 22:34 rejected → proposed (recheck): the controller and node-engine that understand `busy` (mesh-controller #283, mesh-host #98) now run on every machine; its earlier check was judged by the old ones
- 2026-10-13 22:37 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-13 22:37 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-13 22:40 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
- 2026-10-13 22:40 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
- 2026-10-13 22:41 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
mesh/merge-gate head c876ad4a8303 merged into trunk 23a2e1e20467 — pass: builds build-agent → ace, g14, novox, shanks; no bus step; every machine composes …
mesh/repo-check head c876ad4a8303 merged into trunk 23a2e1e20467 — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-…
Merge check at c876ad4a
Judged: head c876ad4a8303 merged into trunk 23a2e1e20467; read beside it: mesh-controller 72214ae989b3, mesh-controller-main 72214ae989b3, mesh-host 0e92ef3d1b21, mesh-tools 954e1a53eef9
mesh/merge-gate: FAIL — 4 problem(s) the change brings; the first: a machine (f35): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored (modules: build-agent)
mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
Delivery plan — builds build-agent → ace, g14, novox, shanks; no bus step
tier 0: build-agent
ace: receives build-agent
g14: receives build-agent
novox: receives build-agent
shanks: receives build-agent
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
read by no module's build: modules/build-agent/README.md
Run by the build seat on shanks as build-1791929544111997327 (builds --log build-1791929544111997327).
--- the gate: build-agent
build-agent: ok, keeps workspace (cache), ready: server by exec every 10s
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
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 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-13T21:43:06Z 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: FAIL — 4 problem(s) the change brings; the first: a machine (f35): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored
judged by controller development build against the facts of 2026-10-13T21:43:06Z
fails:
- a machine (f35): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored
- a machine (yvbpsm): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored
- 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): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored
- holds mesh-dns-resolver (idt): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored
modules the change moves:
- build-agent (changed)
machines:
- a machine (f35): does not compose
- holds mesh-dns-resolver (idt): does not compose
- 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): does not compose
- a machine (yvbpsm): does not compose
a merge would rebuild 1 module(s) in 1 tier(s): build-agent
notes:
- modules/build-agent/README.md read by no module's build, and rebuild nothing (issue 280)
mesh-controller: the change fails the merge gate
--- its merge-check.sh (go toolchain)
ok git.novox.be/novox/mesh-catalog/checks/words 0.003s
words: 12 retired words and 70 daemons' lines, none in the 46786 strings of 718 files
ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.012s
agent-home: no archive and no file written into under the agent's home
ok git.novox.be/novox/mesh-catalog/checks/secrets 0.012s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok git.novox.be/novox/mesh-catalog/checks/paths 0.006s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 66, as kept
ok git.novox.be/novox/mesh-catalog/checks/deps 0.220s
testing modules/build-agent
ok build-agent 1.009s
--- its merge-check-typescript.sh (typescript toolchain)
**Merge check** at `c876ad4a`
Judged: head `c876ad4a8303` merged into trunk `23a2e1e20467`; read beside it: mesh-controller `72214ae989b3`, mesh-controller-main `72214ae989b3`, mesh-host `0e92ef3d1b21`, mesh-tools `954e1a53eef9`
- `mesh/merge-gate`: **FAIL** — 4 problem(s) the change brings; the first: a machine (f35): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored (modules: build-agent)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
**Delivery plan** — builds build-agent → ace, g14, novox, shanks; no bus step
- tier 0: build-agent
- ace: receives build-agent
- g14: receives build-agent
- novox: receives build-agent
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
- read by no module's build: modules/build-agent/README.md
Run by the build seat on shanks as `build-1791929544111997327` (`builds --log build-1791929544111997327`).
```
--- the gate: build-agent
build-agent: ok, keeps workspace (cache), ready: server by exec every 10s
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
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 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-13T21:43:06Z 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: FAIL — 4 problem(s) the change brings; the first: a machine (f35): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored
judged by controller development build against the facts of 2026-10-13T21:43:06Z
fails:
- a machine (f35): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored
- a machine (yvbpsm): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored
- 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): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored
- holds mesh-dns-resolver (idt): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored
modules the change moves:
- build-agent (changed)
machines:
- a machine (f35): does not compose
- holds mesh-dns-resolver (idt): does not compose
- 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): does not compose
- a machine (yvbpsm): does not compose
a merge would rebuild 1 module(s) in 1 tier(s): build-agent
notes:
- modules/build-agent/README.md read by no module's build, and rebuild nothing (issue 280)
mesh-controller: the change fails the merge gate
--- its merge-check.sh (go toolchain)
ok git.novox.be/novox/mesh-catalog/checks/words 0.003s
words: 12 retired words and 70 daemons' lines, none in the 46786 strings of 718 files
ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.012s
agent-home: no archive and no file written into under the agent's home
ok git.novox.be/novox/mesh-catalog/checks/secrets 0.012s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok git.novox.be/novox/mesh-catalog/checks/paths 0.006s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 66, as kept
ok git.novox.be/novox/mesh-catalog/checks/deps 0.220s
testing modules/build-agent
ok build-agent 1.009s
--- its merge-check-typescript.sh (typescript toolchain)
```
Merge check at c876ad4a
Judged: head c876ad4a8303 merged into trunk 23a2e1e20467; read beside it: mesh-controller 1601cb17432e, mesh-controller-main 1601cb17432e, mesh-host 1a2677882380, mesh-tools 954e1a53eef9
mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent)
mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
Delivery plan — builds build-agent → ace, g14, novox, shanks; no bus step
tier 0: build-agent
ace: receives build-agent
g14: receives build-agent
novox: receives build-agent
shanks: receives build-agent
build-agent keeps data (ADR 0233): what it holds is backed up before it moves
grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
read by no module's build: modules/build-agent/README.md
Run by the build seat on ace as build-1791930884065042057 (builds --log build-1791930884065042057).
--- the gate: build-agent
build-agent: ok, keeps workspace (cache), ready: server by exec every 10s
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
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 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-13T22:33:29Z 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-13T22:33:29Z
modules the change moves:
- build-agent (changed)
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 1 module(s) in 1 tier(s): build-agent
notes:
- modules/build-agent/README.md read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok git.novox.be/novox/mesh-catalog/checks/words 0.003s
words: 12 retired words and 70 daemons' lines, none in the 46786 strings of 718 files
ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.011s
agent-home: no archive and no file written into under the agent's home
ok git.novox.be/novox/mesh-catalog/checks/secrets 0.010s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok git.novox.be/novox/mesh-catalog/checks/paths 0.006s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 66, as kept
ok git.novox.be/novox/mesh-catalog/checks/deps 0.211s
testing modules/build-agent
ok build-agent 1.012s
--- its merge-check-typescript.sh (typescript toolchain)
**Merge check** at `c876ad4a`
Judged: head `c876ad4a8303` merged into trunk `23a2e1e20467`; read beside it: mesh-controller `1601cb17432e`, mesh-controller-main `1601cb17432e`, mesh-host `1a2677882380`, mesh-tools `954e1a53eef9`
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
**Delivery plan** — builds build-agent → ace, g14, novox, shanks; no bus step
- tier 0: build-agent
- ace: receives build-agent
- g14: receives build-agent
- novox: receives build-agent
- shanks: receives build-agent
- build-agent keeps data (ADR 0233): what it holds is backed up before it moves
- grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before build-agent is judged on its first machine
- read by no module's build: modules/build-agent/README.md
Run by the build seat on ace as `build-1791930884065042057` (`builds --log build-1791930884065042057`).
```
--- the gate: build-agent
build-agent: ok, keeps workspace (cache), ready: server by exec every 10s
long-running resources without health: 0
files asking for a setting without saying whether it is trusted: 0
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 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-13T22:33:29Z 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-13T22:33:29Z
modules the change moves:
- build-agent (changed)
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 1 module(s) in 1 tier(s): build-agent
notes:
- modules/build-agent/README.md read by no module's build, and rebuild nothing (issue 280)
--- its merge-check.sh (go toolchain)
ok git.novox.be/novox/mesh-catalog/checks/words 0.003s
words: 12 retired words and 70 daemons' lines, none in the 46786 strings of 718 files
ok git.novox.be/novox/mesh-catalog/checks/agenthome 0.011s
agent-home: no archive and no file written into under the agent's home
ok git.novox.be/novox/mesh-catalog/checks/secrets 0.010s
secrets: no setting can replace a vault secret in a mergeable file (1 known, nested)
ok git.novox.be/novox/mesh-catalog/checks/paths 0.006s
paths: no module names another's state on its machine (3 known, listed to go)
long-running resources without health: 66, as kept
ok git.novox.be/novox/mesh-catalog/checks/deps 0.211s
testing modules/build-agent
ok build-agent 1.012s
--- its merge-check-typescript.sh (typescript toolchain)
```
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.
after: none
Reopened from #260 under a branch of its own, out of the delivery group of mesh-host#98 and mesh-controller#283 (the group's order contradicted itself: built-by put the catalogue before mesh-host).
Issue 594; decision: novox/hq ADR 0335 §5. build-agent's
serverdeclaresbusyas/usr/local/bin/mesh-builder busy(by its path, as its health check names it; timeout the default 10s), and its README says what that does.Merge only once mesh-host#98 and mesh-controller#283 are merged and #283's build-agent image runs on all four machines: a controller older than #283 copies an unknown resource key into every declaration, a node-engine older than #98 refuses the whole declaration for it, and an image older than #283 has no
busycommand. #283 sendsbusyonly to an engine whose health statement says contract 8.Checked earlier at #260: merge-check.sh with MESH_GATE set to a controller built from #283 passes (module check, words, agent-home, paths, health-undeclared 67 as kept).
Merge check at
12a5e7beJudged: head
12a5e7be7321merged into trunk23a2e1e20467mesh/merge-gate: FAIL — head12a5e7be73does not merge cleanly into trunk23a2e1e204: in conflict modules/build-agent/README.md (modules: build-agent)mesh/repo-check: FAIL — head12a5e7be73does not merge cleanly into trunk23a2e1e204: in conflict modules/build-agent/README.mdDelivery plan — builds build-agent → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791929312317786030(builds --log build-1791929312317786030).Delivery
novox/mesh-catalog@c876ad4a8303— delivered since 2026-10-13T22:41:48ZDelivery plan — builds build-agent → ace, g14, novox, shanks; no bus step
Machines
Transitions
busy(mesh-controller #283, mesh-host #98) now run on every machine; its earlier check was judged by the old onesThe commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
c876ad4aJudged: head
c876ad4a8303merged into trunk23a2e1e20467; read beside it: mesh-controller72214ae989b3, mesh-controller-main72214ae989b3, mesh-host0e92ef3d1b21, mesh-tools954e1a53eef9mesh/merge-gate: FAIL — 4 problem(s) the change brings; the first: a machine (f35): nothing could be sent to it with this change — resource "build-agent.server": a container does not use "busy", and it is set. Refused rather than ignored (modules: build-agent)mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)Delivery plan — builds build-agent → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791929544111997327(builds --log build-1791929544111997327).Merge check at
c876ad4aJudged: head
c876ad4a8303merged into trunk23a2e1e20467; read beside it: mesh-controller1601cb17432e, mesh-controller-main1601cb17432e, mesh-host1a2677882380, mesh-tools954e1a53eef9mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent)mesh/repo-check: PASS — its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)Delivery plan — builds build-agent → ace, g14, novox, shanks; no bus step
Run by the build seat on ace as
build-1791930884065042057(builds --log build-1791930884065042057).