#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.
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`.
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
```
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
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
```
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
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
```
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/delivery covered: a later merge that contains it was delivered: novox/mesh-controller@6faf701656fe (merged as c714d077 into main, walk plan-17914198…
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
```
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
```
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
#110 pinned
github.com/novox/mesh-hostat the review branch's commitbdd4415; mesh-host #50 merged as56e2ebe. The pin moves tov0.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.Delivery
novox/mesh-controller@c724ef456fbc— covered since 2026-10-09T07:31:59ZDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Transitions
c714d077into main, walk plan-1791419838311287219): build-agent, mesh-controller, route-proxyThe commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
ac0f49fbmesh/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 passedChange plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on ace as
build-1791391833175538002(builds --log build-1791391833175538002).Merge check at
ac0f49fbmesh/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
Run by the build seat on g14 as
build-1791415182204348834(builds --log build-1791415182204348834).Merge check at
ac0f49fbmesh/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
Run by the build seat on novox as
build-1791414270339322246(builds --log build-1791414270339322246).ac0f49fb06toc724ef456fMerge check at
c724ef45mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791417486700908171(builds --log build-1791417486700908171).Merge check at
c724ef45mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on shanks as
build-1791416585943030272(builds --log build-1791416585943030272).