Vendor the node-engine's validator at its merged Phase B, not the branch commit #112

Merged
mesh-admin merged 1 commits from fix/vendor-the-merged-engine into main 2026-10-08 00:37:01 +00:00
Contributor

#110 pinned github.com/novox/mesh-host at the review branch's commit bdd4415; mesh-host #50 merged as 56e2ebe. The pin moves to v0.0.0-20261007162834-56e2ebec4bac. The vendored sources are byte-identical (the merge only added an empty commit), so only go.mod, go.sum and vendor/modules.txt change. Builds with -mod=vendor GOPROXY=off; catalogue tests pass.

#110 pinned `github.com/novox/mesh-host` at the review branch's commit `bdd4415`; mesh-host #50 merged as `56e2ebe`. The pin moves to `v0.0.0-20261007162834-56e2ebec4bac`. The vendored sources are byte-identical (the merge only added an empty commit), so only go.mod, go.sum and vendor/modules.txt change. Builds with `-mod=vendor GOPROXY=off`; catalogue tests pass.
Author
Contributor

Delivery novox/mesh-controller@c724ef456fbc — covered since 2026-10-09T07:31:59Z

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 23:42 (new) → proposed (announced): novox/mesh-controller#112's head announced
  • 2026-10-08 00:09 proposed → checked (checked): the verdict names this commit
  • 2026-10-08 00:09 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-08 00:47 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-09 07:31 held → covered (covered): covered: a later merge that contains it was delivered: novox/mesh-controller@6faf701656 (merged as c714d077 into main, walk plan-1791419838311287219): build-agent, mesh-controller, route-proxy

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@c724ef456fbc` — **covered** since 2026-10-09T07:31:59Z **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 23:42 (new) → proposed (announced): novox/mesh-controller#112's head announced - 2026-10-08 00:09 proposed → checked (checked): the verdict names this commit - 2026-10-08 00:09 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-08 00:47 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-09 07:31 held → covered (covered): covered: a later merge that contains it was delivered: novox/mesh-controller@6faf701656fe (merged as c714d077 into main, walk plan-1791419838311287219): build-agent, mesh-controller, route-proxy The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Author
Contributor

Merge check at ac0f49fb

  • 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 ace as build-1791391833175538002 (builds --log build-1791391833175538002).

--- 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-07T16:43: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-07T16:43: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.035s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	405.298s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.012s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.015s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.013s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.137s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.027s
ok  	github.com/novox/mesh-controller/internal/broker	2.358s
ok  	github.com/novox/mesh-controller/internal/builder	1.306s
ok  	github.com/novox/mesh-controller/internal/catalogue	3.583s
ok  	github.com/novox/mesh-controller/internal/conditions	1.988s
ok  	github.com/novox/mesh-controller/internal/envfile	1.078s
ok  	github.com/novox/mesh-controller/internal/facts	1.054s
ok  	github.com/novox/mesh-controller/internal/identity	39.446s
ok  	github.com/novox/mesh-controller/internal/inventory	244.159s
ok  	github.com/novox/mesh-controller/internal/lease	17.699s
ok  	github.com/novox/mesh-controller/internal/licences	38.223s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.074s
ok  	github.com/novox/mesh-controller/internal/link	78.608s
ok  	github.com/novox/mesh-controller/internal/lint	1.789s
ok  	github.com/novox/mesh-controller/internal/outward	1.071s
ok  	github.com/novox/mesh-controller/internal/overlay	1.059s
ok  	github.com/novox/mesh-controller/internal/secrets	1.381s
ok  	github.com/novox/mesh-controller/internal/store	10.037s
ok  	github.com/novox/mesh-controller/internal/testbus	1.229s
ok  	github.com/novox/mesh-controller/internal/token	1.017s
**Merge check** at `ac0f49fb` - `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 ace as `build-1791391833175538002` (`builds --log build-1791391833175538002`). ``` --- 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-07T16:43: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-07T16:43: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.035s ok github.com/novox/mesh-controller/cmd/mesh-controller 405.298s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.012s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.015s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.013s ok github.com/novox/mesh-controller/examples/route-proxy 1.137s ok github.com/novox/mesh-controller/internal/artifacts 1.027s ok github.com/novox/mesh-controller/internal/broker 2.358s ok github.com/novox/mesh-controller/internal/builder 1.306s ok github.com/novox/mesh-controller/internal/catalogue 3.583s ok github.com/novox/mesh-controller/internal/conditions 1.988s ok github.com/novox/mesh-controller/internal/envfile 1.078s ok github.com/novox/mesh-controller/internal/facts 1.054s ok github.com/novox/mesh-controller/internal/identity 39.446s ok github.com/novox/mesh-controller/internal/inventory 244.159s ok github.com/novox/mesh-controller/internal/lease 17.699s ok github.com/novox/mesh-controller/internal/licences 38.223s ok github.com/novox/mesh-controller/internal/licences/adapters 1.074s ok github.com/novox/mesh-controller/internal/link 78.608s ok github.com/novox/mesh-controller/internal/lint 1.789s ok github.com/novox/mesh-controller/internal/outward 1.071s ok github.com/novox/mesh-controller/internal/overlay 1.059s ok github.com/novox/mesh-controller/internal/secrets 1.381s ok github.com/novox/mesh-controller/internal/store 10.037s ok github.com/novox/mesh-controller/internal/testbus 1.229s ok github.com/novox/mesh-controller/internal/token 1.017s ```
Author
Contributor

Merge check at ac0f49fb

  • mesh/merge-gate: ERROR — the mesh as it is could not be raised, so the change cannot be judged against it (2 of 4 machines compose on the mesh and not in the gate); the first: a machine (f35) composes on the mesh and not as the gate raised it from the snapshot: these assignments cannot be applied: - f35 needs "artifact-store" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "internal-acme-ca" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "npm-package-registry" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "wildcard-resolution" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - systemd-resolved and networkmanager both declare the path "/etc/resolv.conf" (modules: build-agent, mesh-controller, route-proxy)
  • mesh/repo-check: FAIL — its merge-check.sh failed: --- FAIL: TestEveryCatalogueManifestParses (0.16s)

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 g14 as build-1791415182204348834 (builds --log build-1791415182204348834).

build-1791415431655154698:  could not build https://forge.example/novox/a.git:
cancelled by hand
plan-cancel: a failed to build in tier 0; the tiers after it are not asked
cancelled build-1791415431655154698 (https://forge.example/novox/a.git, waiting): deleted from the node-build-agent queue and recorded failed, cancelled by hand — a plan that asked for it fails with that
build-1791415432328647243:  could not build https://forge.example/novox/w1.git:
cancelled by hand
build-1791415432329647243:  could not build https://forge.example/novox/w2.git:
cancelled by hand
build-1791415432327647243:  could not build https://forge.example/novox/dead.git:
cancelled by hand
could not read what is assigned, so the build is asked of node-build-agent: this process has neither MESH_STORE_INVENTORY nor MESH_STORE_INVENTORY_FILE, so it was not granted the inventory store. A context reaches only the store it exclusively owns (novox/hq ADR 0008), so this is either the wrong context or a missing grant — it is never something to work around by reusing another context's connection
ace: killed build-running
could not read what is assigned, so the build is asked of node-build-agent: this process has neither MESH_STORE_INVENTORY nor MESH_STORE_INVENTORY_FILE, so it was not granted the inventory store. A context reaches only the store it exclusively owns (novox/hq ADR 0008), so this is either the wrong context or a missing grant — it is never something to work around by reusing another context's connection
ace: ace is not building build-other
could not read what is assigned, so the build is asked of node-build-agent: this process has neither MESH_STORE_INVENTORY nor MESH_STORE_INVENTORY_FILE, so it was not granted the inventory store. A context reaches only the store it exclusively owns (novox/hq ADR 0008), so this is either the wrong context or a missing grant — it is never something to work around by reusing another context's connection
could not read what is assigned, so the build is asked of node-build-agent: this process has neither MESH_STORE_INVENTORY nor MESH_STORE_INVENTORY_FILE, so it was not granted the inventory store. A context reaches only the store it exclusively owns (novox/hq ADR 0008), so this is either the wrong context or a missing grant — it is never something to work around by reusing another context's connection
ace: ace is paused
could not read what is assigned, so the build is asked of node-build-agent: this process has neither MESH_STORE_INVENTORY nor MESH_STORE_INVENTORY_FILE, so it was not granted the inventory store. A context reaches only the store it exclusively owns (novox/hq ADR 0008), so this is either the wrong context or a missing grant — it is never something to work around by reusing another context's connection
g14: nothing on g14 answers node-build-agent.resume: its holder is not running, or is older than the verb
plan-rollout: tier 0 done; asking tier 1: b
  tier 1: plan-own: done — novox/a at c0ffee, 1 tier(s)
build-at-commit was built at commit 01234567; a rebuild asks what a follows now, main — `replay build-at-commit` builds that commit
rebuild asked as build-1791415444351234490
plan-1: mesh-controller settled from the build records as built (build-2)
plan-3: postgres settled from the build records as built (build-mine)
plan-2: x settled from the build records as failed (b)
release-1791415448034707658: 2 build(s) wait for a gate on anchor, laptop; one machine at a time, each judged
release-1791415448034707658: sent anchor 1 build(s) that waited for a gate; judging them there
release-1791415448034707658: sent laptop 2 build(s) that waited for a gate; judging them there
release-1791415448889964016: 2 build(s) wait for a gate on anchor, laptop; one machine at a time, each judged
release-1791415448889964016: sent anchor 1 build(s) that waited for a gate; judging them there
app's build c2 failed its gate on anchor and was put back to c1: anchor failed what it was sent
release-1791415448889964016: failed its gate on anchor: anchor failed what it was sent — app failed its gate on anchor in tier 0: anchor failed what it was sent; put back app to c1 on anchor, in one send
this act by hand could NOT be recorded in the hand-act log, and is done anyway: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
release-1791415448960123580: 1 build(s) wait for a gate on laptop; one machine at a time, each judged
release-1791415448960123580 releases it; `plans release-1791415448960123580` says where it is
release-1791415448960123580: sent laptop 1 build(s) that waited for a gate; judging them there
plan-crashloop: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes
app's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: its container app.server on anchor keeps restarting (2 restart(s) counted)
plan-crashloop: app failed its gate on anchor in tier 0: not healthy within -1s of its apply: its container app.server on anchor keeps restarting (2 restart(s) counted); put back app to c1 on anchor, in one send; none reported left as it was
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
build-1791411856078984349: the build seat did not say whether c1aaaaaa is on its repository's trunk (it predates ADR 0238); registered as before
build-1791411916078984349: the build seat did not say whether c2bbbbbb is on its repository's trunk (it predates ADR 0238); registered as before
app at c2bbbbbb was made from the source build-1791411856078984349 was: registered with its artifacts, no move
build-1791411976078984349: the build seat did not say whether c3cccccc is on its repository's trunk (it predates ADR 0238); registered as before
build-1791412036078984349: the build seat did not say whether c4dddddd is on its repository's trunk (it predates ADR 0238); registered as before
build-1791411856849619482: the build seat did not say whether n1111111 is on its repository's trunk (it predates ADR 0238); registered as before
build-1791411916849619482: the build seat did not say whether n2222222 is on its repository's trunk (it predates ADR 0238); registered as before
nats at n2222222 was made from the source build-1791411856849619482 was: registered with its artifacts, no move
every machine running nats runs the build the mesh holds (n2222222): nothing to upgrade
build-1791411976849619482: the build seat did not say whether n3333333 is on its repository's trunk (it predates ADR 0238); registered as before
plan-gate: app built from the source every machine running it runs: no move, nothing sent
plan-gate: done — novox/mesh-catalog at c2, 1 tier(s)
plan-gate: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes
status could not be composed (after 0s): the store did not answer — `status` answers the last summary, with its age
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
anchor is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
this act by hand could NOT be recorded in the hand-act log, and is done anyway: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
plan-97b1b2b closed at tier 1 of 2; what was asked still builds and registers, nothing further is asked
plan-tier: tier 0 built; sent 12 module(s) to anchor first in one send (m01, m02, m03, m04, m05, m06, m07, m08, m09, m10, m11, m12), the rest once its gate passes
plan-tier: m01 passed its gate on anchor (healthy 3 times over 0s); the rest are sent
plan-tier: tier 0 built; sent m01, m02, m03, m04, m05, m06, m07, m08, m09, m10, m11, m12 to laptop, one send each
plan-tier: done — novox/mesh-catalog at c2, 1 tier(s)
plan-tier: tier 0 built; sent 3 module(s) to anchor first in one send (app1, app2, node-tools), the rest once its gate passes
node-tools's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: raised since it was sent: machine.anchor.core-behind — anchor runs the node tools it was last sent, not yet reported applied, and no plan is rolling them out (its settle window runs to the gate's bound)
plan-tier: the send to anchor in tier 0 failed its gate: not healthy within -1s of its apply: raised since it was sent: machine.anchor.core-behind — anchor runs the node tools it was last sent, not yet reported applied, and no plan is rolling them out (its settle window runs to the gate's bound); app1 was not found wanting and is left as it is; node-tools failed its gate on anchor in tier 0: not healthy within -1s of its apply: raised since it was sent: machine.anchor.core-behind — anchor runs the node tools it was last sent, not yet reported applied, and no plan is rolling them out (its settle window runs to the gate's bound); put back node-tools to c1 on anchor, in one send; none reported left as it was
plan-tier: tier 0 built; sent 3 module(s) to anchor first in one send (app1, app2, app3), the rest once its gate passes
app1's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full
app2's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full
app3's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full
plan-tier: app1 failed its gate on anchor in tier 0: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full; app2 failed its gate on anchor in tier 0: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full; app3 failed its gate on anchor in tier 0: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full; put back app1 to c1, app2 to c1, app3 to c1 on anchor, in one send; none reported left as it was
plan-gate: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes
plan-gate: the send to anchor in tier 0 failed its gate: not healthy within -1s of its apply: anchor has not reported on what it was sent; app was left as it was — anchor already ran app c2, or a build identical to it, before the send, so nothing of it moved and nothing is put back
plan-gate: the send to anchor in tier 0 failed its gate: not healthy within -1s of its apply: anchor has not reported on what it was sent; app was left as it was — anchor already ran app c2, or a build identical to it, before the send, so nothing of it moved and nothing is put back; none reported left as it was
  tier 0: FAIL
FAIL	github.com/novox/mesh-controller/cmd/mesh-controller	178.322s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.013s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.021s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.015s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.149s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.040s
ok  	github.com/novox/mesh-controller/internal/broker	2.367s
ok  	github.com/novox/mesh-controller/internal/builder	1.229s
--- FAIL: TestEveryCatalogueManifestParses (0.16s)
    catalogue_check_test.go:44: systemd-resolved: this manifest cannot be used:
          - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network
    catalogue_check_test.go:57: 114 manifests, 68 named endpoints, 30 routed endpoints resolved
--- FAIL: TestNoCatalogueManifestNamesAnInstallation (0.54s)
    catalogue_check_test.go:80: ../../../mesh-catalog/modules/systemd-resolved/module.json: this manifest cannot be used:
          - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network
--- FAIL: TestEveryCatalogueIdentityFitsWhatItRequires (0.19s)
    catalogue_check_test.go:142: ../../../mesh-catalog/modules/systemd-resolved/module.json: this manifest cannot be used:
          - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network
--- FAIL: TestEveryCatalogueManifestDeclaresWhatItMounts (0.19s)
    mounts_test.go:87: systemd-resolved: this manifest cannot be used:
          - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network
--- FAIL: TestTheCataloguesUplinksWriteTheResolverFileAndNothingElseDoes (0.11s)
    resolver_file_is_the_uplinks_test.go:45: systemd-resolved writes /etc/resolv.conf and does not hold the uplink
--- FAIL: TestEveryManifestInUseClaimsASeatTheMeshDefines (0.14s)
    seats_test.go:218: ../../../mesh-catalog/modules/systemd-resolved/module.json: systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network
FAIL
FAIL	github.com/novox/mesh-controller/internal/catalogue	2.563s
ok  	github.com/novox/mesh-controller/internal/conditions	1.951s
ok  	github.com/novox/mesh-controller/internal/envfile	1.027s
ok  	github.com/novox/mesh-controller/internal/facts	1.027s
ok  	github.com/novox/mesh-controller/internal/identity	5.772s
ok  	github.com/novox/mesh-controller/internal/inventory	89.079s
ok  	github.com/novox/mesh-controller/internal/lease	17.697s
ok  	github.com/novox/mesh-controller/internal/licences	5.168s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.011s
ok  	github.com/novox/mesh-controller/internal/link	47.351s
ok  	github.com/novox/mesh-controller/internal/lint	1.731s
ok  	github.com/novox/mesh-controller/internal/outward	1.039s
ok  	github.com/novox/mesh-controller/internal/overlay	1.023s
ok  	github.com/novox/mesh-controller/internal/secrets	1.370s
ok  	github.com/novox/mesh-controller/internal/store	3.977s
ok  	github.com/novox/mesh-controller/internal/testbus	1.168s
ok  	github.com/novox/mesh-controller/internal/token	1.018s
FAIL
**Merge check** at `ac0f49fb` - `mesh/merge-gate`: **ERROR** — the mesh as it is could not be raised, so the change cannot be judged against it (2 of 4 machines compose on the mesh and not in the gate); the first: a machine (f35) composes on the mesh and not as the gate raised it from the snapshot: these assignments cannot be applied: - f35 needs "artifact-store" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "internal-acme-ca" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "npm-package-registry" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "wildcard-resolution" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - systemd-resolved and networkmanager both declare the path "/etc/resolv.conf" (modules: build-agent, mesh-controller, route-proxy) - `mesh/repo-check`: **FAIL** — its merge-check.sh failed: --- FAIL: TestEveryCatalogueManifestParses (0.16s) **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 g14 as `build-1791415182204348834` (`builds --log build-1791415182204348834`). ``` build-1791415431655154698: could not build https://forge.example/novox/a.git: cancelled by hand plan-cancel: a failed to build in tier 0; the tiers after it are not asked cancelled build-1791415431655154698 (https://forge.example/novox/a.git, waiting): deleted from the node-build-agent queue and recorded failed, cancelled by hand — a plan that asked for it fails with that build-1791415432328647243: could not build https://forge.example/novox/w1.git: cancelled by hand build-1791415432329647243: could not build https://forge.example/novox/w2.git: cancelled by hand build-1791415432327647243: could not build https://forge.example/novox/dead.git: cancelled by hand could not read what is assigned, so the build is asked of node-build-agent: this process has neither MESH_STORE_INVENTORY nor MESH_STORE_INVENTORY_FILE, so it was not granted the inventory store. A context reaches only the store it exclusively owns (novox/hq ADR 0008), so this is either the wrong context or a missing grant — it is never something to work around by reusing another context's connection ace: killed build-running could not read what is assigned, so the build is asked of node-build-agent: this process has neither MESH_STORE_INVENTORY nor MESH_STORE_INVENTORY_FILE, so it was not granted the inventory store. A context reaches only the store it exclusively owns (novox/hq ADR 0008), so this is either the wrong context or a missing grant — it is never something to work around by reusing another context's connection ace: ace is not building build-other could not read what is assigned, so the build is asked of node-build-agent: this process has neither MESH_STORE_INVENTORY nor MESH_STORE_INVENTORY_FILE, so it was not granted the inventory store. A context reaches only the store it exclusively owns (novox/hq ADR 0008), so this is either the wrong context or a missing grant — it is never something to work around by reusing another context's connection could not read what is assigned, so the build is asked of node-build-agent: this process has neither MESH_STORE_INVENTORY nor MESH_STORE_INVENTORY_FILE, so it was not granted the inventory store. A context reaches only the store it exclusively owns (novox/hq ADR 0008), so this is either the wrong context or a missing grant — it is never something to work around by reusing another context's connection ace: ace is paused could not read what is assigned, so the build is asked of node-build-agent: this process has neither MESH_STORE_INVENTORY nor MESH_STORE_INVENTORY_FILE, so it was not granted the inventory store. A context reaches only the store it exclusively owns (novox/hq ADR 0008), so this is either the wrong context or a missing grant — it is never something to work around by reusing another context's connection g14: nothing on g14 answers node-build-agent.resume: its holder is not running, or is older than the verb plan-rollout: tier 0 done; asking tier 1: b tier 1: plan-own: done — novox/a at c0ffee, 1 tier(s) build-at-commit was built at commit 01234567; a rebuild asks what a follows now, main — `replay build-at-commit` builds that commit rebuild asked as build-1791415444351234490 plan-1: mesh-controller settled from the build records as built (build-2) plan-3: postgres settled from the build records as built (build-mine) plan-2: x settled from the build records as failed (b) release-1791415448034707658: 2 build(s) wait for a gate on anchor, laptop; one machine at a time, each judged release-1791415448034707658: sent anchor 1 build(s) that waited for a gate; judging them there release-1791415448034707658: sent laptop 2 build(s) that waited for a gate; judging them there release-1791415448889964016: 2 build(s) wait for a gate on anchor, laptop; one machine at a time, each judged release-1791415448889964016: sent anchor 1 build(s) that waited for a gate; judging them there app's build c2 failed its gate on anchor and was put back to c1: anchor failed what it was sent release-1791415448889964016: failed its gate on anchor: anchor failed what it was sent — app failed its gate on anchor in tier 0: anchor failed what it was sent; put back app to c1 on anchor, in one send this act by hand could NOT be recorded in the hand-act log, and is done anyway: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus release-1791415448960123580: 1 build(s) wait for a gate on laptop; one machine at a time, each judged release-1791415448960123580 releases it; `plans release-1791415448960123580` says where it is release-1791415448960123580: sent laptop 1 build(s) that waited for a gate; judging them there plan-crashloop: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes app's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: its container app.server on anchor keeps restarting (2 restart(s) counted) plan-crashloop: app failed its gate on anchor in tier 0: not healthy within -1s of its apply: its container app.server on anchor keeps restarting (2 restart(s) counted); put back app to c1 on anchor, in one send; none reported left as it was laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node build-1791411856078984349: the build seat did not say whether c1aaaaaa is on its repository's trunk (it predates ADR 0238); registered as before build-1791411916078984349: the build seat did not say whether c2bbbbbb is on its repository's trunk (it predates ADR 0238); registered as before app at c2bbbbbb was made from the source build-1791411856078984349 was: registered with its artifacts, no move build-1791411976078984349: the build seat did not say whether c3cccccc is on its repository's trunk (it predates ADR 0238); registered as before build-1791412036078984349: the build seat did not say whether c4dddddd is on its repository's trunk (it predates ADR 0238); registered as before build-1791411856849619482: the build seat did not say whether n1111111 is on its repository's trunk (it predates ADR 0238); registered as before build-1791411916849619482: the build seat did not say whether n2222222 is on its repository's trunk (it predates ADR 0238); registered as before nats at n2222222 was made from the source build-1791411856849619482 was: registered with its artifacts, no move every machine running nats runs the build the mesh holds (n2222222): nothing to upgrade build-1791411976849619482: the build seat did not say whether n3333333 is on its repository's trunk (it predates ADR 0238); registered as before plan-gate: app built from the source every machine running it runs: no move, nothing sent plan-gate: done — novox/mesh-catalog at c2, 1 tier(s) plan-gate: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes status could not be composed (after 0s): the store did not answer — `status` answers the last summary, with its age anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node anchor is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node this act by hand could NOT be recorded in the hand-act log, and is done anyway: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus plan-97b1b2b closed at tier 1 of 2; what was asked still builds and registers, nothing further is asked plan-tier: tier 0 built; sent 12 module(s) to anchor first in one send (m01, m02, m03, m04, m05, m06, m07, m08, m09, m10, m11, m12), the rest once its gate passes plan-tier: m01 passed its gate on anchor (healthy 3 times over 0s); the rest are sent plan-tier: tier 0 built; sent m01, m02, m03, m04, m05, m06, m07, m08, m09, m10, m11, m12 to laptop, one send each plan-tier: done — novox/mesh-catalog at c2, 1 tier(s) plan-tier: tier 0 built; sent 3 module(s) to anchor first in one send (app1, app2, node-tools), the rest once its gate passes node-tools's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: raised since it was sent: machine.anchor.core-behind — anchor runs the node tools it was last sent, not yet reported applied, and no plan is rolling them out (its settle window runs to the gate's bound) plan-tier: the send to anchor in tier 0 failed its gate: not healthy within -1s of its apply: raised since it was sent: machine.anchor.core-behind — anchor runs the node tools it was last sent, not yet reported applied, and no plan is rolling them out (its settle window runs to the gate's bound); app1 was not found wanting and is left as it is; node-tools failed its gate on anchor in tier 0: not healthy within -1s of its apply: raised since it was sent: machine.anchor.core-behind — anchor runs the node tools it was last sent, not yet reported applied, and no plan is rolling them out (its settle window runs to the gate's bound); put back node-tools to c1 on anchor, in one send; none reported left as it was plan-tier: tier 0 built; sent 3 module(s) to anchor first in one send (app1, app2, app3), the rest once its gate passes app1's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full app2's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full app3's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full plan-tier: app1 failed its gate on anchor in tier 0: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full; app2 failed its gate on anchor in tier 0: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full; app3 failed its gate on anchor in tier 0: not healthy within -1s of its apply: anchor as a whole: raised since it was sent: machine.anchor.disk-full — anchor's root file system is full; put back app1 to c1, app2 to c1, app3 to c1 on anchor, in one send; none reported left as it was plan-gate: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes plan-gate: the send to anchor in tier 0 failed its gate: not healthy within -1s of its apply: anchor has not reported on what it was sent; app was left as it was — anchor already ran app c2, or a build identical to it, before the send, so nothing of it moved and nothing is put back plan-gate: the send to anchor in tier 0 failed its gate: not healthy within -1s of its apply: anchor has not reported on what it was sent; app was left as it was — anchor already ran app c2, or a build identical to it, before the send, so nothing of it moved and nothing is put back; none reported left as it was tier 0: FAIL FAIL github.com/novox/mesh-controller/cmd/mesh-controller 178.322s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.013s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.021s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.015s ok github.com/novox/mesh-controller/examples/route-proxy 1.149s ok github.com/novox/mesh-controller/internal/artifacts 1.040s ok github.com/novox/mesh-controller/internal/broker 2.367s ok github.com/novox/mesh-controller/internal/builder 1.229s --- FAIL: TestEveryCatalogueManifestParses (0.16s) catalogue_check_test.go:44: systemd-resolved: this manifest cannot be used: - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network catalogue_check_test.go:57: 114 manifests, 68 named endpoints, 30 routed endpoints resolved --- FAIL: TestNoCatalogueManifestNamesAnInstallation (0.54s) catalogue_check_test.go:80: ../../../mesh-catalog/modules/systemd-resolved/module.json: this manifest cannot be used: - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network --- FAIL: TestEveryCatalogueIdentityFitsWhatItRequires (0.19s) catalogue_check_test.go:142: ../../../mesh-catalog/modules/systemd-resolved/module.json: this manifest cannot be used: - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network --- FAIL: TestEveryCatalogueManifestDeclaresWhatItMounts (0.19s) mounts_test.go:87: systemd-resolved: this manifest cannot be used: - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network --- FAIL: TestTheCataloguesUplinksWriteTheResolverFileAndNothingElseDoes (0.11s) resolver_file_is_the_uplinks_test.go:45: systemd-resolved writes /etc/resolv.conf and does not hold the uplink --- FAIL: TestEveryManifestInUseClaimsASeatTheMeshDefines (0.14s) seats_test.go:218: ../../../mesh-catalog/modules/systemd-resolved/module.json: systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network FAIL FAIL github.com/novox/mesh-controller/internal/catalogue 2.563s ok github.com/novox/mesh-controller/internal/conditions 1.951s ok github.com/novox/mesh-controller/internal/envfile 1.027s ok github.com/novox/mesh-controller/internal/facts 1.027s ok github.com/novox/mesh-controller/internal/identity 5.772s ok github.com/novox/mesh-controller/internal/inventory 89.079s ok github.com/novox/mesh-controller/internal/lease 17.697s ok github.com/novox/mesh-controller/internal/licences 5.168s ok github.com/novox/mesh-controller/internal/licences/adapters 1.011s ok github.com/novox/mesh-controller/internal/link 47.351s ok github.com/novox/mesh-controller/internal/lint 1.731s ok github.com/novox/mesh-controller/internal/outward 1.039s ok github.com/novox/mesh-controller/internal/overlay 1.023s ok github.com/novox/mesh-controller/internal/secrets 1.370s ok github.com/novox/mesh-controller/internal/store 3.977s ok github.com/novox/mesh-controller/internal/testbus 1.168s ok github.com/novox/mesh-controller/internal/token 1.018s FAIL ```
Author
Contributor

Merge check at ac0f49fb

  • mesh/merge-gate: ERROR — the mesh as it is could not be raised, so the change cannot be judged against it (2 of 4 machines compose on the mesh and not in the gate); the first: a machine (f35) composes on the mesh and not as the gate raised it from the snapshot: these assignments cannot be applied: - f35 needs "artifact-store" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "internal-acme-ca" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "npm-package-registry" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "wildcard-resolution" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - systemd-resolved and networkmanager both declare the path "/etc/resolv.conf" (modules: build-agent, mesh-controller, route-proxy)
  • mesh/repo-check: FAIL — its merge-check.sh failed: --- FAIL: TestEveryCatalogueManifestParses (0.24s)

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 novox as build-1791414270339322246 (builds --log build-1791414270339322246).

laptop is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
laptop is not counted as on the network: it does not resolve: these assignments cannot be applied:
  - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node
build-1: a dry run of ssh://forge/app.git on unreviewed, not taken in
plan-gate: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes
app's build c2 failed its gate on anchor and was put back to c1: anchor failed what it was sent
plan-gate: app failed its gate on anchor in tier 0: anchor failed what it was sent; put back app to c1 on anchor, in one send; none reported left as it was
build-2: the build seat did not say whether c2 is on its repository's trunk (it predates ADR 0238); registered as before
plan-gate: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes
plan-gate: app passed its gate on anchor (healthy 3 times over 0s); the rest are sent
plan-gate: tier 0 built; sent app to laptop, one send each
plan-gate: done — novox/mesh-catalog at c2, 1 tier(s)
plan-gate: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes
app's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: anchor has not reported on what it was sent
plan-gate: app failed its gate on anchor in tier 0: not healthy within -1s of its apply: anchor has not reported on what it was sent; put back app to c1 on anchor, in one send; none reported left as it was
plan-bus: done — novox/mesh-catalog at n2, 1 tier(s)
snapshotting the bus's streams on anchor first (its backup holder, ADR 0235)…
snapshotting the bus's streams on anchor first (its backup holder, ADR 0235)…
this act by hand could NOT be recorded in the hand-act log, and is done anyway: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus
bus upgrade 1: nats n1 → n2 on anchor; streams snapshotted at anchor's restore point of nats; reversible: putting the old build back undoes it
sent anchor; `bus-maintenance` is open until the bus answers healthy again — every stream, every durable consumer, a round trip to the machines (H-bus) — within 15m0s, or the step is said failed with its snapshot as the way back. `bus` says how it went
  gone was deleted from novox/mesh-catalog at c1deadbe: forgotten, nothing built
novox/mesh-catalog merged into main (c1deadbe); it changed nothing any module the mesh holds is built from
plan-deleted: kept was deleted at its source: forgotten, and the plan goes on
plan-deleted: done — novox/mesh-catalog at c2, 1 tier(s)
spare owns nothing now — sent so it drops what it last held
spare owns nothing now — sent so it drops what it last held
laptop owns nothing now — sent so it drops what it last held
took the controller lease at epoch 1 (controller@novox-be pid 578 since 2026-10-07T23:07:31Z)
gave the controller lease back (epoch 1)
took the controller lease at epoch 1 (controller@novox-be pid 578 since 2026-10-07T23:07:31Z)
another controller holds the lease (controller@novox-be pid 578 since 2026-10-07T23:07:31Z, epoch 1, taken 2026-10-07T23:25:22Z); waiting until it lets go or stops renewing
gave the controller lease back (epoch 1)
took the controller lease at epoch 3 (controller@novox-be pid 578 since 2026-10-07T23:07:31Z)
LOST the controller lease (epoch 3): the renewal at revision 3 was refused: nats: nats: API error: code=400 err_code=10071 description=wrong last sequence: 4: nats: key revision mismatch — this controller stops acting at once
the controller lease was lost (epoch 3): the renewal at revision 3 was refused: nats: nats: API error: code=400 err_code=10071 description=wrong last sequence: 4: nats: key revision mismatch — this controller stops and exits, to be started again as a candidate
anchor is at 10.42.0.1 on the overlay
  credentials issued for it before this placement keep their old broker address — `module issue` them again and push (novox/hq issue 059)
  the hub — every node not sharing a site routes through it
  at hosting, so it peers directly with anything else there
anchor is at 10.42.0.1 on the overlay
  credentials issued for it before this placement keep their old broker address — `module issue` them again and push (novox/hq issue 059)
  at hosting, so it peers directly with anything else there
anchor is at 10.42.0.1 on the overlay
  credentials issued for it before this placement keep their old broker address — `module issue` them again and push (novox/hq issue 059)
  not dialable — it opens every path itself
anchor is at 192.0.2.1 on the overlay
  credentials issued for it before this placement keep their old broker address — `module issue` them again and push (novox/hq issue 059)
  the hub — it takes over the tunnel it found on wg0: range 192.0.2.0/24, port 51900, 1 peer(s) carried until they enrol
  at hosting, so it peers directly with anything else there
anchor is at 192.0.2.1 on the overlay
  credentials issued for it before this placement keep their old broker address — `module issue` them again and push (novox/hq issue 059)
  the hub — it takes over the tunnel it found on wg0: range 192.0.2.0/24, port 51900, 0 peer(s) carried until they enrol
  at here, so it peers directly with anything else there
panic: test timed out after 30m0s
	running tests:
		TestATakeoverIsNotComposedForAHubPlacedOffItsTunnel (7s)

goroutine 5990 [running]:
testing.(*M).startAlarm.func1()
	/usr/local/go/src/testing/testing.go:2802 +0x605
created by time.goFunc
	/usr/local/go/src/time/sleep.go:215 +0x45

goroutine 1 [chan receive]:
testing.(*T).Run(0xc00032e908, {0x1fac581, 0x33}, 0x20275e0)
	/usr/local/go/src/testing/testing.go:2109 +0xb3e
testing.runTests.func1(0xc00032e908)
	/usr/local/go/src/testing/testing.go:2585 +0x85
testing.tRunner(0xc00032e908, 0xc00031fa20)
	/usr/local/go/src/testing/testing.go:2036 +0x21d
testing.runTests({0x1f7e39c, 0x20}, {0x1faea02, 0x34}, 0xc000287428, {0x2de0740, 0x173, 0x173}, {0xc2a9d3cee90219d0, 0x1a319781614, ...})
	/usr/local/go/src/testing/testing.go:2583 +0x9ea
testing.(*M).Run(0xc000398280)
	/usr/local/go/src/testing/testing.go:2443 +0xf4c
github.com/novox/mesh-controller/cmd/mesh-controller.TestMain(0xc000398280)
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/sayable_test.go:32 +0x6c
main.main()
	_testmain.go:788 +0x172

goroutine 5945 [IO wait]:
internal/poll.runtime_pollWait(0x7ff31cd4d800, 0x72)
	/usr/local/go/src/runtime/netpoll.go:351 +0x85
internal/poll.(*pollDesc).wait(0xc000138020, 0x72, 0x0)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0xb1
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc000138000, {0xc000782000, 0x2000, 0x2000})
	/usr/local/go/src/internal/poll/fd_unix.go:165 +0x499
net.(*netFD).Read(0xc000138000, {0xc000782000, 0x2000, 0x2000})
	/usr/local/go/src/net/fd_posix.go:68 +0x4b
net.(*conn).Read(0xc000006250, {0xc000782000, 0x2000, 0x2000})
	/usr/local/go/src/net/net.go:196 +0xad
github.com/jackc/pgx/v5/pgconn/internal/bgreader.(*BGReader).Read(0xc000390d00, {0xc000782000, 0x2000, 0x2000})
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/internal/bgreader/bgreader.go:100 +0x1db
io.ReadAtLeast({0x203c960, 0xc000390d00}, {0xc000782000, 0x2000, 0x2000}, 0x5)
	/usr/local/go/src/io/io.go:335 +0xd1
github.com/jackc/pgx/v5/pgproto3.(*chunkReader).Next(0xc000858660, 0x5)
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgproto3/chunkreader.go:80 +0x82f
github.com/jackc/pgx/v5/pgproto3.(*Frontend).Receive(0xc00054cd88)
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgproto3/frontend.go:313 +0x85
github.com/jackc/pgx/v5/pgconn.(*PgConn).peekMessage(0xc00016a588)
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:645 +0x1f8
github.com/jackc/pgx/v5/pgconn.(*MultiResultReader).NextResult(0xc00016a6c0)
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:1620 +0x95
github.com/jackc/pgx/v5.(*Conn).execSimpleProtocol(0xc000146000, {0x2048680, 0x2e08a00}, {0xc0004145b0, 0x61}, {0x0, 0x0, 0x0})
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:589 +0x151
github.com/jackc/pgx/v5.(*Conn).exec(0xc000146000, {0x2048680, 0x2e08a00}, {0xc0004145b0, 0x61}, {0x0, 0x0, 0x0})
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:574 +0xccd
github.com/jackc/pgx/v5.(*Conn).Exec(0xc000146000, {0x2048680, 0x2e08a00}, {0xc0004145b0, 0x61}, {0x0, 0x0, 0x0})
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:481 +0x1f0
github.com/novox/mesh-controller/internal/licences.ForTest.func1()
	/var/lib/build-agent/workspace/check/mesh-controller/internal/licences/fortest.go:58 +0x195
testing.(*common).Cleanup.func1()
	/usr/local/go/src/testing/testing.go:1317 +0x169
testing.(*common).runCleanup(0xc00042cb48, 0x0)
	/usr/local/go/src/testing/testing.go:1667 +0x226
testing.tRunner.func2()
	/usr/local/go/src/testing/testing.go:2030 +0x4d
testing.tRunner(0xc00042cb48, 0x20275e0)
	/usr/local/go/src/testing/testing.go:2042 +0x256
created by testing.(*T).Run in goroutine 1
	/usr/local/go/src/testing/testing.go:2101 +0xb13

goroutine 5946 [select]:
github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc000514000)
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:493 +0x1cc
github.com/jackc/pgx/v5/pgxpool.NewWithConfig.func5()
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:336 +0x8f
created by github.com/jackc/pgx/v5/pgxpool.NewWithConfig in goroutine 5945
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d
FAIL	github.com/novox/mesh-controller/cmd/mesh-controller	1800.046s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.021s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.027s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.019s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.132s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.040s
ok  	github.com/novox/mesh-controller/internal/broker	2.775s
ok  	github.com/novox/mesh-controller/internal/builder	1.666s
--- FAIL: TestEveryCatalogueManifestParses (0.24s)
    catalogue_check_test.go:44: systemd-resolved: this manifest cannot be used:
          - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network
    catalogue_check_test.go:57: 114 manifests, 68 named endpoints, 30 routed endpoints resolved
--- FAIL: TestNoCatalogueManifestNamesAnInstallation (0.74s)
    catalogue_check_test.go:80: ../../../mesh-catalog/modules/systemd-resolved/module.json: this manifest cannot be used:
          - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network
--- FAIL: TestEveryCatalogueIdentityFitsWhatItRequires (0.22s)
    catalogue_check_test.go:142: ../../../mesh-catalog/modules/systemd-resolved/module.json: this manifest cannot be used:
          - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network
--- FAIL: TestEveryCatalogueManifestDeclaresWhatItMounts (0.23s)
    mounts_test.go:87: systemd-resolved: this manifest cannot be used:
          - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network
--- FAIL: TestTheCataloguesUplinksWriteTheResolverFileAndNothingElseDoes (0.16s)
    resolver_file_is_the_uplinks_test.go:45: systemd-resolved writes /etc/resolv.conf and does not hold the uplink
--- FAIL: TestEveryManifestInUseClaimsASeatTheMeshDefines (0.17s)
    seats_test.go:218: ../../../mesh-catalog/modules/systemd-resolved/module.json: systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network
FAIL
FAIL	github.com/novox/mesh-controller/internal/catalogue	3.339s
ok  	github.com/novox/mesh-controller/internal/conditions	2.020s
ok  	github.com/novox/mesh-controller/internal/envfile	1.035s
ok  	github.com/novox/mesh-controller/internal/facts	1.032s
ok  	github.com/novox/mesh-controller/internal/identity	235.834s
ok  	github.com/novox/mesh-controller/internal/inventory	1583.463s
ok  	github.com/novox/mesh-controller/internal/lease	17.705s
ok  	github.com/novox/mesh-controller/internal/licences	236.728s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.015s
ok  	github.com/novox/mesh-controller/internal/link	341.521s
ok  	github.com/novox/mesh-controller/internal/lint	1.873s
ok  	github.com/novox/mesh-controller/internal/outward	1.034s
ok  	github.com/novox/mesh-controller/internal/overlay	1.020s
ok  	github.com/novox/mesh-controller/internal/secrets	1.440s
ok  	github.com/novox/mesh-controller/internal/store	76.148s
ok  	github.com/novox/mesh-controller/internal/testbus	1.203s
ok  	github.com/novox/mesh-controller/internal/token	1.015s
FAIL
**Merge check** at `ac0f49fb` - `mesh/merge-gate`: **ERROR** — the mesh as it is could not be raised, so the change cannot be judged against it (2 of 4 machines compose on the mesh and not in the gate); the first: a machine (f35) composes on the mesh and not as the gate raised it from the snapshot: these assignments cannot be applied: - f35 needs "artifact-store" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "internal-acme-ca" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "npm-package-registry" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - f35 needs "wildcard-resolution" from ygcyr, and they are not both on the private network — assign mesh-wireguard to whichever is missing it - systemd-resolved and networkmanager both declare the path "/etc/resolv.conf" (modules: build-agent, mesh-controller, route-proxy) - `mesh/repo-check`: **FAIL** — its merge-check.sh failed: --- FAIL: TestEveryCatalogueManifestParses (0.24s) **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 novox as `build-1791414270339322246` (`builds --log build-1791414270339322246`). ``` laptop is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is left out of the rest of the mesh: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node laptop is not counted as on the network: it does not resolve: these assignments cannot be applied: - rival-one and rival-two both claim "the-seat", and only one thing may hold it per node build-1: a dry run of ssh://forge/app.git on unreviewed, not taken in plan-gate: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes app's build c2 failed its gate on anchor and was put back to c1: anchor failed what it was sent plan-gate: app failed its gate on anchor in tier 0: anchor failed what it was sent; put back app to c1 on anchor, in one send; none reported left as it was build-2: the build seat did not say whether c2 is on its repository's trunk (it predates ADR 0238); registered as before plan-gate: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes plan-gate: app passed its gate on anchor (healthy 3 times over 0s); the rest are sent plan-gate: tier 0 built; sent app to laptop, one send each plan-gate: done — novox/mesh-catalog at c2, 1 tier(s) plan-gate: tier 0 built; sent 1 module(s) to anchor first in one send (app), the rest once its gate passes app's build c2 failed its gate on anchor and was put back to c1: not healthy within -1s of its apply: anchor has not reported on what it was sent plan-gate: app failed its gate on anchor in tier 0: not healthy within -1s of its apply: anchor has not reported on what it was sent; put back app to c1 on anchor, in one send; none reported left as it was plan-bus: done — novox/mesh-catalog at n2, 1 tier(s) snapshotting the bus's streams on anchor first (its backup holder, ADR 0235)… snapshotting the bus's streams on anchor first (its backup holder, ADR 0235)… this act by hand could NOT be recorded in the hand-act log, and is done anyway: this control plane has no MESH_BUS_NATS, so it cannot reach the mesh's bus bus upgrade 1: nats n1 → n2 on anchor; streams snapshotted at anchor's restore point of nats; reversible: putting the old build back undoes it sent anchor; `bus-maintenance` is open until the bus answers healthy again — every stream, every durable consumer, a round trip to the machines (H-bus) — within 15m0s, or the step is said failed with its snapshot as the way back. `bus` says how it went gone was deleted from novox/mesh-catalog at c1deadbe: forgotten, nothing built novox/mesh-catalog merged into main (c1deadbe); it changed nothing any module the mesh holds is built from plan-deleted: kept was deleted at its source: forgotten, and the plan goes on plan-deleted: done — novox/mesh-catalog at c2, 1 tier(s) spare owns nothing now — sent so it drops what it last held spare owns nothing now — sent so it drops what it last held laptop owns nothing now — sent so it drops what it last held took the controller lease at epoch 1 (controller@novox-be pid 578 since 2026-10-07T23:07:31Z) gave the controller lease back (epoch 1) took the controller lease at epoch 1 (controller@novox-be pid 578 since 2026-10-07T23:07:31Z) another controller holds the lease (controller@novox-be pid 578 since 2026-10-07T23:07:31Z, epoch 1, taken 2026-10-07T23:25:22Z); waiting until it lets go or stops renewing gave the controller lease back (epoch 1) took the controller lease at epoch 3 (controller@novox-be pid 578 since 2026-10-07T23:07:31Z) LOST the controller lease (epoch 3): the renewal at revision 3 was refused: nats: nats: API error: code=400 err_code=10071 description=wrong last sequence: 4: nats: key revision mismatch — this controller stops acting at once the controller lease was lost (epoch 3): the renewal at revision 3 was refused: nats: nats: API error: code=400 err_code=10071 description=wrong last sequence: 4: nats: key revision mismatch — this controller stops and exits, to be started again as a candidate anchor is at 10.42.0.1 on the overlay credentials issued for it before this placement keep their old broker address — `module issue` them again and push (novox/hq issue 059) the hub — every node not sharing a site routes through it at hosting, so it peers directly with anything else there anchor is at 10.42.0.1 on the overlay credentials issued for it before this placement keep their old broker address — `module issue` them again and push (novox/hq issue 059) at hosting, so it peers directly with anything else there anchor is at 10.42.0.1 on the overlay credentials issued for it before this placement keep their old broker address — `module issue` them again and push (novox/hq issue 059) not dialable — it opens every path itself anchor is at 192.0.2.1 on the overlay credentials issued for it before this placement keep their old broker address — `module issue` them again and push (novox/hq issue 059) the hub — it takes over the tunnel it found on wg0: range 192.0.2.0/24, port 51900, 1 peer(s) carried until they enrol at hosting, so it peers directly with anything else there anchor is at 192.0.2.1 on the overlay credentials issued for it before this placement keep their old broker address — `module issue` them again and push (novox/hq issue 059) the hub — it takes over the tunnel it found on wg0: range 192.0.2.0/24, port 51900, 0 peer(s) carried until they enrol at here, so it peers directly with anything else there panic: test timed out after 30m0s running tests: TestATakeoverIsNotComposedForAHubPlacedOffItsTunnel (7s) goroutine 5990 [running]: testing.(*M).startAlarm.func1() /usr/local/go/src/testing/testing.go:2802 +0x605 created by time.goFunc /usr/local/go/src/time/sleep.go:215 +0x45 goroutine 1 [chan receive]: testing.(*T).Run(0xc00032e908, {0x1fac581, 0x33}, 0x20275e0) /usr/local/go/src/testing/testing.go:2109 +0xb3e testing.runTests.func1(0xc00032e908) /usr/local/go/src/testing/testing.go:2585 +0x85 testing.tRunner(0xc00032e908, 0xc00031fa20) /usr/local/go/src/testing/testing.go:2036 +0x21d testing.runTests({0x1f7e39c, 0x20}, {0x1faea02, 0x34}, 0xc000287428, {0x2de0740, 0x173, 0x173}, {0xc2a9d3cee90219d0, 0x1a319781614, ...}) /usr/local/go/src/testing/testing.go:2583 +0x9ea testing.(*M).Run(0xc000398280) /usr/local/go/src/testing/testing.go:2443 +0xf4c github.com/novox/mesh-controller/cmd/mesh-controller.TestMain(0xc000398280) /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/sayable_test.go:32 +0x6c main.main() _testmain.go:788 +0x172 goroutine 5945 [IO wait]: internal/poll.runtime_pollWait(0x7ff31cd4d800, 0x72) /usr/local/go/src/runtime/netpoll.go:351 +0x85 internal/poll.(*pollDesc).wait(0xc000138020, 0x72, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0xb1 internal/poll.(*pollDesc).waitRead(...) /usr/local/go/src/internal/poll/fd_poll_runtime.go:89 internal/poll.(*FD).Read(0xc000138000, {0xc000782000, 0x2000, 0x2000}) /usr/local/go/src/internal/poll/fd_unix.go:165 +0x499 net.(*netFD).Read(0xc000138000, {0xc000782000, 0x2000, 0x2000}) /usr/local/go/src/net/fd_posix.go:68 +0x4b net.(*conn).Read(0xc000006250, {0xc000782000, 0x2000, 0x2000}) /usr/local/go/src/net/net.go:196 +0xad github.com/jackc/pgx/v5/pgconn/internal/bgreader.(*BGReader).Read(0xc000390d00, {0xc000782000, 0x2000, 0x2000}) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/internal/bgreader/bgreader.go:100 +0x1db io.ReadAtLeast({0x203c960, 0xc000390d00}, {0xc000782000, 0x2000, 0x2000}, 0x5) /usr/local/go/src/io/io.go:335 +0xd1 github.com/jackc/pgx/v5/pgproto3.(*chunkReader).Next(0xc000858660, 0x5) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgproto3/chunkreader.go:80 +0x82f github.com/jackc/pgx/v5/pgproto3.(*Frontend).Receive(0xc00054cd88) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgproto3/frontend.go:313 +0x85 github.com/jackc/pgx/v5/pgconn.(*PgConn).peekMessage(0xc00016a588) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:645 +0x1f8 github.com/jackc/pgx/v5/pgconn.(*MultiResultReader).NextResult(0xc00016a6c0) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:1620 +0x95 github.com/jackc/pgx/v5.(*Conn).execSimpleProtocol(0xc000146000, {0x2048680, 0x2e08a00}, {0xc0004145b0, 0x61}, {0x0, 0x0, 0x0}) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:589 +0x151 github.com/jackc/pgx/v5.(*Conn).exec(0xc000146000, {0x2048680, 0x2e08a00}, {0xc0004145b0, 0x61}, {0x0, 0x0, 0x0}) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:574 +0xccd github.com/jackc/pgx/v5.(*Conn).Exec(0xc000146000, {0x2048680, 0x2e08a00}, {0xc0004145b0, 0x61}, {0x0, 0x0, 0x0}) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:481 +0x1f0 github.com/novox/mesh-controller/internal/licences.ForTest.func1() /var/lib/build-agent/workspace/check/mesh-controller/internal/licences/fortest.go:58 +0x195 testing.(*common).Cleanup.func1() /usr/local/go/src/testing/testing.go:1317 +0x169 testing.(*common).runCleanup(0xc00042cb48, 0x0) /usr/local/go/src/testing/testing.go:1667 +0x226 testing.tRunner.func2() /usr/local/go/src/testing/testing.go:2030 +0x4d testing.tRunner(0xc00042cb48, 0x20275e0) /usr/local/go/src/testing/testing.go:2042 +0x256 created by testing.(*T).Run in goroutine 1 /usr/local/go/src/testing/testing.go:2101 +0xb13 goroutine 5946 [select]: github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc000514000) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:493 +0x1cc github.com/jackc/pgx/v5/pgxpool.NewWithConfig.func5() /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:336 +0x8f created by github.com/jackc/pgx/v5/pgxpool.NewWithConfig in goroutine 5945 /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d FAIL github.com/novox/mesh-controller/cmd/mesh-controller 1800.046s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.021s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.027s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.019s ok github.com/novox/mesh-controller/examples/route-proxy 1.132s ok github.com/novox/mesh-controller/internal/artifacts 1.040s ok github.com/novox/mesh-controller/internal/broker 2.775s ok github.com/novox/mesh-controller/internal/builder 1.666s --- FAIL: TestEveryCatalogueManifestParses (0.24s) catalogue_check_test.go:44: systemd-resolved: this manifest cannot be used: - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network catalogue_check_test.go:57: 114 manifests, 68 named endpoints, 30 routed endpoints resolved --- FAIL: TestNoCatalogueManifestNamesAnInstallation (0.74s) catalogue_check_test.go:80: ../../../mesh-catalog/modules/systemd-resolved/module.json: this manifest cannot be used: - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network --- FAIL: TestEveryCatalogueIdentityFitsWhatItRequires (0.22s) catalogue_check_test.go:142: ../../../mesh-catalog/modules/systemd-resolved/module.json: this manifest cannot be used: - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network --- FAIL: TestEveryCatalogueManifestDeclaresWhatItMounts (0.23s) mounts_test.go:87: systemd-resolved: this manifest cannot be used: - systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network --- FAIL: TestTheCataloguesUplinksWriteTheResolverFileAndNothingElseDoes (0.16s) resolver_file_is_the_uplinks_test.go:45: systemd-resolved writes /etc/resolv.conf and does not hold the uplink --- FAIL: TestEveryManifestInUseClaimsASeatTheMeshDefines (0.17s) seats_test.go:218: ../../../mesh-catalog/modules/systemd-resolved/module.json: systemd-resolved claims "node-resolver", which is a seat in the mesh's own namespace (mesh-*/node-*) that it does not define (novox/hq ADR 0121) — the seats are: git, mesh-artifact-store, mesh-broker, mesh-build-machine, mesh-catalog, mesh-controller, mesh-delivery, mesh-dns-resolver, mesh-store, mesh-vault, node-backup, node-bar, node-build-agent, node-clipboard, node-compositor, node-container-runtime, node-display-server, node-display-session, node-environment, node-hostname, node-hotkeys, node-intrusion-prevention, node-launcher, node-lock-screen, node-login-manager, node-login-shell, node-message-bus, node-notifier, node-package-manager, node-packet-filter, node-power, node-secret-service, node-service-manager, node-terminal-emulator, node-uplink, npm-package-registry, the-private-network FAIL FAIL github.com/novox/mesh-controller/internal/catalogue 3.339s ok github.com/novox/mesh-controller/internal/conditions 2.020s ok github.com/novox/mesh-controller/internal/envfile 1.035s ok github.com/novox/mesh-controller/internal/facts 1.032s ok github.com/novox/mesh-controller/internal/identity 235.834s ok github.com/novox/mesh-controller/internal/inventory 1583.463s ok github.com/novox/mesh-controller/internal/lease 17.705s ok github.com/novox/mesh-controller/internal/licences 236.728s ok github.com/novox/mesh-controller/internal/licences/adapters 1.015s ok github.com/novox/mesh-controller/internal/link 341.521s ok github.com/novox/mesh-controller/internal/lint 1.873s ok github.com/novox/mesh-controller/internal/outward 1.034s ok github.com/novox/mesh-controller/internal/overlay 1.020s ok github.com/novox/mesh-controller/internal/secrets 1.440s ok github.com/novox/mesh-controller/internal/store 76.148s ok github.com/novox/mesh-controller/internal/testbus 1.203s ok github.com/novox/mesh-controller/internal/token 1.015s FAIL ```
jschoubben added 1 commit 2026-10-07 23:42:29 +00:00
Vendor the node-engine's validator at its merged Phase B, not the branch commit it was pinned at for review
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/repo-check pass: its merge-check.sh passed
mesh/delivery covered: a later merge that contains it was delivered: novox/mesh-controller@6faf701656fe (merged as c714d077 into main, walk plan-17914198…
c724ef456f
(cherry picked from commit ac0f49fb06)
jschoubben force-pushed fix/vendor-the-merged-engine from ac0f49fb06 to c724ef456f 2026-10-07 23:42:29 +00:00 Compare
Author
Contributor

Merge check at c724ef45

  • 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 shanks as build-1791417486700908171 (builds --log build-1791417486700908171).

--- 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-07T23:44:12Z 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-07T23:44:12Z

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.037s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	486.320s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.013s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.025s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.013s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.230s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.064s
ok  	github.com/novox/mesh-controller/internal/broker	4.442s
ok  	github.com/novox/mesh-controller/internal/builder	1.372s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.488s
ok  	github.com/novox/mesh-controller/internal/conditions	2.015s
ok  	github.com/novox/mesh-controller/internal/envfile	1.049s
ok  	github.com/novox/mesh-controller/internal/facts	1.045s
ok  	github.com/novox/mesh-controller/internal/identity	56.863s
ok  	github.com/novox/mesh-controller/internal/inventory	303.280s
ok  	github.com/novox/mesh-controller/internal/lease	17.679s
ok  	github.com/novox/mesh-controller/internal/licences	56.860s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.036s
ok  	github.com/novox/mesh-controller/internal/link	85.646s
ok  	github.com/novox/mesh-controller/internal/lint	1.937s
ok  	github.com/novox/mesh-controller/internal/outward	1.067s
ok  	github.com/novox/mesh-controller/internal/overlay	1.051s
ok  	github.com/novox/mesh-controller/internal/secrets	1.496s
ok  	github.com/novox/mesh-controller/internal/store	22.020s
ok  	github.com/novox/mesh-controller/internal/testbus	1.171s
ok  	github.com/novox/mesh-controller/internal/token	1.013s
**Merge check** at `c724ef45` - `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 shanks as `build-1791417486700908171` (`builds --log build-1791417486700908171`). ``` --- 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-07T23:44:12Z 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-07T23:44:12Z 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.037s ok github.com/novox/mesh-controller/cmd/mesh-controller 486.320s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.013s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.025s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.013s ok github.com/novox/mesh-controller/examples/route-proxy 1.230s ok github.com/novox/mesh-controller/internal/artifacts 1.064s ok github.com/novox/mesh-controller/internal/broker 4.442s ok github.com/novox/mesh-controller/internal/builder 1.372s ok github.com/novox/mesh-controller/internal/catalogue 4.488s ok github.com/novox/mesh-controller/internal/conditions 2.015s ok github.com/novox/mesh-controller/internal/envfile 1.049s ok github.com/novox/mesh-controller/internal/facts 1.045s ok github.com/novox/mesh-controller/internal/identity 56.863s ok github.com/novox/mesh-controller/internal/inventory 303.280s ok github.com/novox/mesh-controller/internal/lease 17.679s ok github.com/novox/mesh-controller/internal/licences 56.860s ok github.com/novox/mesh-controller/internal/licences/adapters 1.036s ok github.com/novox/mesh-controller/internal/link 85.646s ok github.com/novox/mesh-controller/internal/lint 1.937s ok github.com/novox/mesh-controller/internal/outward 1.067s ok github.com/novox/mesh-controller/internal/overlay 1.051s ok github.com/novox/mesh-controller/internal/secrets 1.496s ok github.com/novox/mesh-controller/internal/store 22.020s ok github.com/novox/mesh-controller/internal/testbus 1.171s ok github.com/novox/mesh-controller/internal/token 1.013s ```
Author
Contributor

Merge check at c724ef45

  • 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 shanks as build-1791416585943030272 (builds --log build-1791416585943030272).

--- 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-08T00:08: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-08T00:08: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-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.036s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	609.308s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.047s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.056s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.047s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.242s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.070s
ok  	github.com/novox/mesh-controller/internal/broker	5.736s
ok  	github.com/novox/mesh-controller/internal/builder	1.535s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.483s
ok  	github.com/novox/mesh-controller/internal/conditions	2.015s
ok  	github.com/novox/mesh-controller/internal/envfile	1.046s
ok  	github.com/novox/mesh-controller/internal/facts	1.054s
ok  	github.com/novox/mesh-controller/internal/identity	75.846s
ok  	github.com/novox/mesh-controller/internal/inventory	406.597s
ok  	github.com/novox/mesh-controller/internal/lease	17.684s
ok  	github.com/novox/mesh-controller/internal/licences	69.833s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.050s
ok  	github.com/novox/mesh-controller/internal/link	117.011s
ok  	github.com/novox/mesh-controller/internal/lint	1.949s
ok  	github.com/novox/mesh-controller/internal/outward	1.072s
ok  	github.com/novox/mesh-controller/internal/overlay	1.058s
ok  	github.com/novox/mesh-controller/internal/secrets	1.472s
ok  	github.com/novox/mesh-controller/internal/store	18.622s
ok  	github.com/novox/mesh-controller/internal/testbus	1.288s
ok  	github.com/novox/mesh-controller/internal/token	1.013s
**Merge check** at `c724ef45` - `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 shanks as `build-1791416585943030272` (`builds --log build-1791416585943030272`). ``` --- 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-08T00:08: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-08T00:08: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-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.036s ok github.com/novox/mesh-controller/cmd/mesh-controller 609.308s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.047s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.056s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.047s ok github.com/novox/mesh-controller/examples/route-proxy 1.242s ok github.com/novox/mesh-controller/internal/artifacts 1.070s ok github.com/novox/mesh-controller/internal/broker 5.736s ok github.com/novox/mesh-controller/internal/builder 1.535s ok github.com/novox/mesh-controller/internal/catalogue 4.483s ok github.com/novox/mesh-controller/internal/conditions 2.015s ok github.com/novox/mesh-controller/internal/envfile 1.046s ok github.com/novox/mesh-controller/internal/facts 1.054s ok github.com/novox/mesh-controller/internal/identity 75.846s ok github.com/novox/mesh-controller/internal/inventory 406.597s ok github.com/novox/mesh-controller/internal/lease 17.684s ok github.com/novox/mesh-controller/internal/licences 69.833s ok github.com/novox/mesh-controller/internal/licences/adapters 1.050s ok github.com/novox/mesh-controller/internal/link 117.011s ok github.com/novox/mesh-controller/internal/lint 1.949s ok github.com/novox/mesh-controller/internal/outward 1.072s ok github.com/novox/mesh-controller/internal/overlay 1.058s ok github.com/novox/mesh-controller/internal/secrets 1.472s ok github.com/novox/mesh-controller/internal/store 18.622s ok github.com/novox/mesh-controller/internal/testbus 1.288s ok github.com/novox/mesh-controller/internal/token 1.013s ```
mesh-admin merged commit 59c448713f into main 2026-10-08 00:37:01 +00:00
mesh-admin deleted branch fix/vendor-the-merged-engine 2026-10-08 00:37:01 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#112