From abc022eece6177e4af42ac17c215534b91b0e2f8 Mon Sep 17 00:00:00 2001 From: jochen Date: Tue, 13 Oct 2026 02:29:19 +0200 Subject: [PATCH] Name the build agent where genesis needs the module that builds (hq issue 596) 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. --- test/integration/genesis-keeps-its-bus.test.ts | 2 +- test/integration/genesis.ts | 2 +- test/integration/one-node-mesh.test.ts | 4 ++-- test/integration/whole-mesh-full.test.ts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/integration/genesis-keeps-its-bus.test.ts b/test/integration/genesis-keeps-its-bus.test.ts index 7541cc4..e2b4268 100644 --- a/test/integration/genesis-keeps-its-bus.test.ts +++ b/test/integration/genesis-keeps-its-bus.test.ts @@ -172,7 +172,7 @@ before(async () => { node: ANCHOR, installer: installer as string, catalogDir: catalogue, - catalogueModules: ["distribution", "builder", "postgres"], + catalogueModules: ["distribution", "build-agent", "postgres"], bundleTemplate: foundationBundle(bundle, []), registry: REGISTRY, source: forge("mesh-controller"), diff --git a/test/integration/genesis.ts b/test/integration/genesis.ts index a5a77d7..c72879b 100644 --- a/test/integration/genesis.ts +++ b/test/integration/genesis.ts @@ -112,7 +112,7 @@ export async function genesis(o: GenesisOptions): Promise { const registry = o.registry ?? "127.0.0.1:5000"; // The registry's and the builder's. Not the control plane's: its manifest lives in its own // repository and genesis takes it from the build it runs (novox/hq ADR 0069, 04-ISSUES/072). - const modules = o.catalogueModules ?? ["distribution", "builder"]; + const modules = o.catalogueModules ?? ["distribution", "build-agent"]; const catalogueOnMachine = o.catalogueOnMachine ?? "/opt/mesh-catalog"; const log = o.log ?? (() => {}); diff --git a/test/integration/one-node-mesh.test.ts b/test/integration/one-node-mesh.test.ts index 7fcfcaa..4f76a02 100644 --- a/test/integration/one-node-mesh.test.ts +++ b/test/integration/one-node-mesh.test.ts @@ -109,7 +109,7 @@ const CONTROL_PLANE = { module: "mesh-controller", repo: "mesh-controller", path * the registry and the builder — are here too: they are carried in, and a mesh missing any of them * is not one. */ -const MUST_HOLD = ["mesh-controller", "distribution", "builder", "mesh-tools", "postgres", +const MUST_HOLD = ["mesh-controller", "distribution", "build-agent", "mesh-tools", "postgres", "mesh-catalog", "lavinmq", "mesh-vault", "amqp-ping"]; const MUST_RUN = ["mesh-controller", "mesh-registry", "mesh-broker", "mesh-store", "mesh-postgres", "mesh-catalog", "mesh-lavinmq", "mesh-vault", "amqp-ping"]; @@ -898,7 +898,7 @@ before(async () => { // does. novox/hq issue 050 — on a fresh mesh the modules built before the catalogue existed // are exactly the ones it needed in order to exist, so the hole is always the foundation. const missing = MUST_HOLD.filter((m) => - !["distribution", "builder"].includes(m) && !held.includes(m)); + !["distribution", "build-agent"].includes(m) && !held.includes(m)); assert.deepEqual(missing, [], `the catalogue does not hold ${missing.join(", ")} — the mesh built them and its own ` + `record has no trace of it (novox/hq issue 050):\n${held}`); diff --git a/test/integration/whole-mesh-full.test.ts b/test/integration/whole-mesh-full.test.ts index 48b008b..0fae627 100644 --- a/test/integration/whole-mesh-full.test.ts +++ b/test/integration/whole-mesh-full.test.ts @@ -119,7 +119,7 @@ const CATALOGUE_ON_MACHINE = "/opt/mesh-catalog"; * a third, this list is where the bed finds out, by the installer saying which manifest it could * not read. */ -const CATALOGUE_MODULES = ["distribution", "builder"]; +const CATALOGUE_MODULES = ["distribution", "build-agent"]; /** * Where this mesh keeps its own images, as the anchor reaches it.