Name the build agent where genesis needs the module that builds (issue 596) #93

Merged
mesh-admin merged 1 commits from fix/596-genesis-names-the-build-agent into main 2026-10-13 00:57:04 +00:00
Contributor

Issue 596; decision hq ADR 0190 (builder retired for build-agent).

What: genesis.ts checks the catalogue for build-agent/module.json before it runs the installer, no longer builder. genesis-keeps-its-bus, whole-mesh-full and one-node-mesh name build-agent among the modules genesis needs and a raised mesh holds. The step name builder stays as it is: it is the installer's word for the step.

Why: on main every genesis bed stops at "preparing the catalogue: the catalogue has no builder/module.json" (seen in the genesis-keeps-its-bus run, 2026-10-13).

Tested: npm run typecheck and npm test pass (168). With mesh-host's issue 596 and 597 changes, the genesis-keeps-its-bus bed got past this check and the installer ran to step 13. There it skipped (NOT REACHED) on issue 121: the controller refuses build-agent, saying nothing provides npm-package-registry. No unit test covers these names: they are parameters of the integration beds, and the bed run above is the test that fails on main.

Fixes the lab's part of issue 596.

Issue 596; decision hq ADR 0190 (`builder` retired for `build-agent`). **What**: `genesis.ts` checks the catalogue for `build-agent/module.json` before it runs the installer, no longer `builder`. genesis-keeps-its-bus, whole-mesh-full and one-node-mesh name `build-agent` among the modules genesis needs and a raised mesh holds. The step name `builder` stays as it is: it is the installer's word for the step. **Why**: on main every genesis bed stops at "preparing the catalogue: the catalogue has no builder/module.json" (seen in the genesis-keeps-its-bus run, 2026-10-13). **Tested**: `npm run typecheck` and `npm test` pass (168). With mesh-host's issue 596 and 597 changes, the genesis-keeps-its-bus bed got past this check and the installer ran to step 13. There it skipped (NOT REACHED) on issue 121: the controller refuses build-agent, saying nothing provides npm-package-registry. No unit test covers these names: they are parameters of the integration beds, and the bed run above is the test that fails on main. Fixes the lab's part of issue 596.
mesh-admin added 1 commit 2026-10-13 00:29:52 +00:00
Name the build agent where genesis needs the module that builds (hq issue 596)
mesh/merge-gate head abc022eece61 merged into trunk 383176a7eab3 — pass: the change touches no module of the mesh's graph
mesh/repo-check head abc022eece61 merged into trunk 383176a7eab3 — pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (typescript)…
mesh/delivery delivered
abc022eece
The beds checked the catalogue for builder/module.json before running genesis and the mesh beds held
'builder' among a raised mesh's modules; the catalogue retired builder for build-agent on 2026-10-03
(ADR 0190), so every genesis bed stopped before the installer ran.
Author
Contributor

Delivery novox/mesh-lab@abc022eece61 — delivered since 2026-10-13T00:57:18Z

Delivery plan — builds nothing: the change touches no module of the mesh's graph

Transitions

  • 2026-10-13 00:29 (new) → proposed (announced): novox/mesh-lab#93's head announced
  • 2026-10-13 00:35 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-13 00:35 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-13 00:38 ready → proposed (trunk moved): out of date: judged against trunk e5ccf48468, the trunk is now b7f46559f053; judged again on a recheck or when it is merged
  • 2026-10-13 00:45 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-13 00:45 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-13 00:45 ready → proposed (trunk moved): out of date: judged against trunk b7f46559f0, the trunk is now 383176a7eab3; judged again on a recheck or when it is merged
  • 2026-10-13 00:52 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-13 00:52 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-13 00:57 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 00:57 published → delivered (done): nothing for a walk to move

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-lab@abc022eece61` — **delivered** since 2026-10-13T00:57:18Z **Delivery plan** — builds nothing: the change touches no module of the mesh's graph **Transitions** - 2026-10-13 00:29 (new) → proposed (announced): novox/mesh-lab#93's head announced - 2026-10-13 00:35 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-13 00:35 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-13 00:38 ready → proposed (trunk moved): out of date: judged against trunk e5ccf484684d, the trunk is now b7f46559f053; judged again on a recheck or when it is merged - 2026-10-13 00:45 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-13 00:45 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-13 00:45 ready → proposed (trunk moved): out of date: judged against trunk b7f46559f053, the trunk is now 383176a7eab3; judged again on a recheck or when it is merged - 2026-10-13 00:52 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-13 00:52 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-13 00:57 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 00:57 published → delivered (done): nothing for a walk to move The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
mesh-admin left a comment
Author
Contributor

Verdict: approve at abc022eece

Independent review, read-only from a worktree at this sha.

  1. Completeness. I grepped the whole repository (src/, scripts/, scenarios/, asks/, provisioners/, test/, replays/, README) for builder. Every place a bed names the retired catalogue module now names build-agent: genesis.ts default catalogueModules, genesis-keeps-its-bus catalogueModules, whole-mesh-full CATALOGUE_MODULES, and one-node-mesh MUST_HOLD plus its carried-in exclusion. No modules/builder, builder/module.json or other module-name use remains. The remaining hits are a different thing and rightly unchanged: the installer's step name builder in genesis-keeps-its-bus BEFORE_BROKER, the mesh-builder binary and MESH_LAB_BUILDER (src/rebuild.ts, builds.test.ts, mesh.test.ts), the base image name in src/lifecycle/base.ts, Go package paths internal/builder in replays/, and prose comments. The catalogue main (827b89d) has modules/build-agent/module.json and no modules/builder.

  2. Honesty. The PR body says what was run and where it stopped: the genesis-keeps-its-bus bed got past the catalogue check and stopped (NOT REACHED) at step 13 on issue 121, where the controller refuses build-agent because nothing provides npm-package-registry. It also says that no unit test covers these names. That matches the change.

  3. Work-arounds. None. The change renames the module in four lists. It does not stub the manifest or skip the check.

  4. Checks run here. npm ci, npm run typecheck (clean) and npm test: 170 tests, 168 pass, 2 skipped, 0 fail.

Nits (not blocking): two comments still say "the registry's and the builder's" (genesis.ts:113) and "the registry and the builder" (one-node-mesh.test.ts:109) for this list. They read fine as prose about the role, but "the build agent" would match the code.

Commit statuses at review time: mesh/merge-gate pending (in the build queue since 02:29), mesh/delivery pending, mesh/repo-check missing. Do not merge until both required checks are green.

Verdict: approve at abc022eece6177e4af42ac17c215534b91b0e2f8 Independent review, read-only from a worktree at this sha. 1. Completeness. I grepped the whole repository (src/, scripts/, scenarios/, asks/, provisioners/, test/, replays/, README) for `builder`. Every place a bed names the retired catalogue module now names `build-agent`: genesis.ts default catalogueModules, genesis-keeps-its-bus catalogueModules, whole-mesh-full CATALOGUE_MODULES, and one-node-mesh MUST_HOLD plus its carried-in exclusion. No `modules/builder`, `builder/module.json` or other module-name use remains. The remaining hits are a different thing and rightly unchanged: the installer's step name `builder` in genesis-keeps-its-bus BEFORE_BROKER, the `mesh-builder` binary and MESH_LAB_BUILDER (src/rebuild.ts, builds.test.ts, mesh.test.ts), the base image name in src/lifecycle/base.ts, Go package paths internal/builder in replays/, and prose comments. The catalogue main (827b89d) has modules/build-agent/module.json and no modules/builder. 2. Honesty. The PR body says what was run and where it stopped: the genesis-keeps-its-bus bed got past the catalogue check and stopped (NOT REACHED) at step 13 on issue 121, where the controller refuses build-agent because nothing provides npm-package-registry. It also says that no unit test covers these names. That matches the change. 3. Work-arounds. None. The change renames the module in four lists. It does not stub the manifest or skip the check. 4. Checks run here. `npm ci`, `npm run typecheck` (clean) and `npm test`: 170 tests, 168 pass, 2 skipped, 0 fail. Nits (not blocking): two comments still say "the registry's and the builder's" (genesis.ts:113) and "the registry and the builder" (one-node-mesh.test.ts:109) for this list. They read fine as prose about the role, but "the build agent" would match the code. Commit statuses at review time: mesh/merge-gate pending (in the build queue since 02:29), mesh/delivery pending, mesh/repo-check missing. Do not merge until both required checks are green.
mesh-admin left a comment
Author
Contributor

Verdict: approve at abc022eece

Independent review. I read the diff in a fresh clone at the head and read ADR 0190 through knowledge-base.get (section 5: the builder module is retired, and build-agent holds node-build-agent).

No blocking findings in the change. The checks at this head are out of date, though. The PR needs a mesh-delivery.recheck and a green verdict on the new trunk before it merges (see the statuses below).

What I checked:

  1. The four edits replace the catalogue module name builder with build-agent: genesis.ts's default catalogueModules, genesis-keeps-its-bus's catalogueModules, one-node-mesh's MUST_HOLD and its carried-in exclusion, and whole-mesh-full's CATALOGUE_MODULES. modules/build-agent/module.json exists in mesh-catalog main, and modules/builder does not, so on main these beds ask the installer for a manifest the catalogue no longer has. No other bed or source names the builder module. The remaining "builder" strings are the mesh-builder binary and image, the rebuild target, and genesis's step name builder (mesh-host's StepBuilder), which this change correctly leaves alone.
  2. npm run typecheck passes. npm test passes: 170 tests, 168 passed, 0 failed, 2 skipped. merge-check.sh passes. Its Go parts ran here: the replays register is fine, and the asks proof did not run because no mesh-tools clone was beside it, which the script says.
  3. The PR merges cleanly with the current trunk b7f4655, which adds only replays/register.go. Typecheck and the unit suite pass on that merge too (168 passed, 0 failed).

Tests failing on main: this PR adds no unit test, and the beds it changes are integration beds that need a lab, so neither npm test nor merge-check.sh exercises them. I did not run a lab. The evidence that the beds fail on main and move on at this head is the builder's lab run on g14 described in mesh-host #101: genesis reached step 13 and registered build-agent, then stopped on issue 121. So these beds cannot pass end to end until issue 121 is decided. This PR only removes the earlier, wrong failure.

Non-blocking: comments beside the edits still say "the builder" (genesis.ts "The registry's and the builder's", one-node-mesh's MUST_HOLD comment and HAS_BUILDER text). They describe the role and are not wrong, but "the build agent" would match the code below them.

Gitea statuses at this head: mesh/merge-gate pending, "out of date: judged against trunk e5ccf48468, the trunk is now b7f46559f053; judged again on a recheck or when it is merged". mesh/repo-check pending, with the same text. mesh/delivery pending, "checking". Merge only after a recheck turns both required checks green at this head.

Verdict: approve at abc022eece6177e4af42ac17c215534b91b0e2f8 Independent review. I read the diff in a fresh clone at the head and read ADR 0190 through knowledge-base.get (section 5: the `builder` module is retired, and `build-agent` holds `node-build-agent`). No blocking findings in the change. The checks at this head are out of date, though. The PR needs a mesh-delivery.recheck and a green verdict on the new trunk before it merges (see the statuses below). What I checked: 1. The four edits replace the catalogue module name `builder` with `build-agent`: genesis.ts's default catalogueModules, genesis-keeps-its-bus's catalogueModules, one-node-mesh's MUST_HOLD and its carried-in exclusion, and whole-mesh-full's CATALOGUE_MODULES. modules/build-agent/module.json exists in mesh-catalog main, and modules/builder does not, so on main these beds ask the installer for a manifest the catalogue no longer has. No other bed or source names the `builder` module. The remaining "builder" strings are the mesh-builder binary and image, the rebuild target, and genesis's step name `builder` (mesh-host's StepBuilder), which this change correctly leaves alone. 2. npm run typecheck passes. npm test passes: 170 tests, 168 passed, 0 failed, 2 skipped. merge-check.sh passes. Its Go parts ran here: the replays register is fine, and the asks proof did not run because no mesh-tools clone was beside it, which the script says. 3. The PR merges cleanly with the current trunk b7f4655, which adds only replays/register.go. Typecheck and the unit suite pass on that merge too (168 passed, 0 failed). Tests failing on main: this PR adds no unit test, and the beds it changes are integration beds that need a lab, so neither npm test nor merge-check.sh exercises them. I did not run a lab. The evidence that the beds fail on main and move on at this head is the builder's lab run on g14 described in mesh-host #101: genesis reached step 13 and registered build-agent, then stopped on issue 121. So these beds cannot pass end to end until issue 121 is decided. This PR only removes the earlier, wrong failure. Non-blocking: comments beside the edits still say "the builder" (genesis.ts "The registry's and the builder's", one-node-mesh's MUST_HOLD comment and HAS_BUILDER text). They describe the role and are not wrong, but "the build agent" would match the code below them. Gitea statuses at this head: mesh/merge-gate pending, "out of date: judged against trunk e5ccf484684d, the trunk is now b7f46559f053; judged again on a recheck or when it is merged". mesh/repo-check pending, with the same text. mesh/delivery pending, "checking". Merge only after a recheck turns both required checks green at this head.
mesh-admin merged commit 51fa3a73ab into main 2026-10-13 00:57:04 +00:00
mesh-admin deleted branch fix/596-genesis-names-the-build-agent 2026-10-13 00:57:05 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-lab#93