Give the uplink seat its verbs, optional until its holders serve them (hq ADR 0241 rule 8) #116

Merged
mesh-admin merged 1 commits from feat/node-uplink-verbs into main 2026-10-07 19:17:25 +00:00
Contributor

Tool for investigating a machine's names without a terminal on it (operator rule: build the tool, no work-arounds). node-uplink now promises resolvers (resolver file now, mesh's or not, writer as far as the machine shows) and links (each link, default route, the resolvers its manager knows).

New: Seat.Staged — verbs promised and routed (membership issues them) but not yet a condition of holding, and never stored in the seat row (an older controller reads the row strictly and would refuse every holder). So: this rolls out first; mesh-catalog#(uplink verbs) serves them next; a later change requires them.

Tests: catalogue (promised, none required, typo refused, UseSeats appends staged), inventory (staged never seeded, also on widen). check-here: merge-gate PASS (4 of 4), repo-check PASS. Independent of mesh-controller#113.

Tool for investigating a machine's names without a terminal on it (operator rule: build the tool, no work-arounds). node-uplink now promises `resolvers` (resolver file now, mesh's or not, writer as far as the machine shows) and `links` (each link, default route, the resolvers its manager knows). New: Seat.Staged — verbs promised and routed (membership issues them) but not yet a condition of holding, and never stored in the seat row (an older controller reads the row strictly and would refuse every holder). So: this rolls out first; mesh-catalog#(uplink verbs) serves them next; a later change requires them. Tests: catalogue (promised, none required, typo refused, UseSeats appends staged), inventory (staged never seeded, also on widen). check-here: merge-gate PASS (4 of 4), repo-check PASS. Independent of mesh-controller#113.
Author
Contributor

Delivery novox/mesh-controller@bf11a8baacda — delivered since 2026-10-07T19:34:56Z

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

Group feat/node-uplink-verbs, in order: novox/mesh-controller@bf11a8baac → novox/mesh-catalog@c619a672a3

Machines

  • mesh-controller on novox: passed — healthy 3 times over 3m39s
  • mesh-controller on the rest running it: sent
  • build-agent on ace: passed — healthy 3 times over 3m20s
  • build-agent on the rest running it: sent
  • route-proxy on ace: passed — healthy 3 times over 3m33s
  • route-proxy on the rest running it: sent

Transitions

  • 2026-10-07 18:52 (new) → proposed (announced): novox/mesh-controller#116's head announced
  • 2026-10-07 19:16 proposed → checked (checked): the verdict names this commit
  • 2026-10-07 19:16 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-07 19:17 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-07 19:17 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path
  • 2026-10-07 19:34 delivering → delivered (done): its walk is done: every machine of its deploy plan passed, or was left as its policy says

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@bf11a8baacda` — **delivered** since 2026-10-07T19:34:56Z **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 **Group** `feat/node-uplink-verbs`, in order: novox/mesh-controller@bf11a8baacda → novox/mesh-catalog@c619a672a364 - novox/mesh-controller@bf11a8baacda before novox/mesh-catalog@c619a672a364: built by - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Machines** - mesh-controller on novox: passed — healthy 3 times over 3m39s - mesh-controller on the rest running it: sent - build-agent on ace: passed — healthy 3 times over 3m20s - build-agent on the rest running it: sent - route-proxy on ace: passed — healthy 3 times over 3m33s - route-proxy on the rest running it: sent **Transitions** - 2026-10-07 18:52 (new) → proposed (announced): novox/mesh-controller#116's head announced - 2026-10-07 19:16 proposed → checked (checked): the verdict names this commit - 2026-10-07 19:16 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-07 19:17 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-07 19:17 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path - 2026-10-07 19:34 delivering → delivered (done): its walk is done: every machine of its deploy plan passed, or was left as its policy says The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Author
Contributor

Merge check at 82fe44b3

  • 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-1791395161740408318 (builds --log build-1791395161740408318).

--- 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-07T17:23: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-07T17:23: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.034s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	401.714s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.011s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.015s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.056s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.111s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.027s
ok  	github.com/novox/mesh-controller/internal/broker	2.443s
ok  	github.com/novox/mesh-controller/internal/builder	1.329s
ok  	github.com/novox/mesh-controller/internal/catalogue	3.689s
ok  	github.com/novox/mesh-controller/internal/conditions	2.028s
ok  	github.com/novox/mesh-controller/internal/envfile	1.060s
ok  	github.com/novox/mesh-controller/internal/facts	1.064s
ok  	github.com/novox/mesh-controller/internal/identity	43.878s
ok  	github.com/novox/mesh-controller/internal/inventory	249.799s
ok  	github.com/novox/mesh-controller/internal/lease	17.713s
ok  	github.com/novox/mesh-controller/internal/licences	39.701s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.056s
ok  	github.com/novox/mesh-controller/internal/link	76.641s
ok  	github.com/novox/mesh-controller/internal/lint	1.817s
ok  	github.com/novox/mesh-controller/internal/outward	1.111s
ok  	github.com/novox/mesh-controller/internal/overlay	1.072s
ok  	github.com/novox/mesh-controller/internal/secrets	1.441s
ok  	github.com/novox/mesh-controller/internal/store	10.036s
ok  	github.com/novox/mesh-controller/internal/testbus	1.241s
ok  	github.com/novox/mesh-controller/internal/token	1.016s
**Merge check** at `82fe44b3` - `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-1791395161740408318` (`builds --log build-1791395161740408318`). ``` --- 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-07T17:23: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-07T17:23: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.034s ok github.com/novox/mesh-controller/cmd/mesh-controller 401.714s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.011s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.015s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.056s ok github.com/novox/mesh-controller/examples/route-proxy 1.111s ok github.com/novox/mesh-controller/internal/artifacts 1.027s ok github.com/novox/mesh-controller/internal/broker 2.443s ok github.com/novox/mesh-controller/internal/builder 1.329s ok github.com/novox/mesh-controller/internal/catalogue 3.689s ok github.com/novox/mesh-controller/internal/conditions 2.028s ok github.com/novox/mesh-controller/internal/envfile 1.060s ok github.com/novox/mesh-controller/internal/facts 1.064s ok github.com/novox/mesh-controller/internal/identity 43.878s ok github.com/novox/mesh-controller/internal/inventory 249.799s ok github.com/novox/mesh-controller/internal/lease 17.713s ok github.com/novox/mesh-controller/internal/licences 39.701s ok github.com/novox/mesh-controller/internal/licences/adapters 1.056s ok github.com/novox/mesh-controller/internal/link 76.641s ok github.com/novox/mesh-controller/internal/lint 1.817s ok github.com/novox/mesh-controller/internal/outward 1.111s ok github.com/novox/mesh-controller/internal/overlay 1.072s ok github.com/novox/mesh-controller/internal/secrets 1.441s ok github.com/novox/mesh-controller/internal/store 10.036s ok github.com/novox/mesh-controller/internal/testbus 1.241s ok github.com/novox/mesh-controller/internal/token 1.016s ```
Author
Contributor

Merge check at 82fe44b3

  • 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: FAIL — its merge-check.sh failed: FAIL github.com/novox/mesh-controller/cmd/mesh-controller 1800.041s

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

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
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 1375 since 2026-10-07T17:34:52Z)
gave the controller lease back (epoch 1)
took the controller lease at epoch 1 (controller@novox-be pid 1375 since 2026-10-07T17:34:52Z)
another controller holds the lease (controller@novox-be pid 1375 since 2026-10-07T17:34:52Z, epoch 1, taken 2026-10-07T17:53:46Z); 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 1375 since 2026-10-07T17:34:52Z)
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
panic: test timed out after 30m0s
	running tests:
		TestADeliveryGroupsHeadsAreComposedTogether (35s)

goroutine 5594 [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(0xc0002d8908, {0x1f95fdb, 0x2b}, 0x2024548)
	/usr/local/go/src/testing/testing.go:2109 +0xb3e
testing.runTests.func1(0xc0002d8908)
	/usr/local/go/src/testing/testing.go:2585 +0x85
testing.tRunner(0xc0002d8908, 0xc00031fa20)
	/usr/local/go/src/testing/testing.go:2036 +0x21d
testing.runTests({0x1f7b4ea, 0x20}, {0x1fabb50, 0x34}, 0xc0000172f0, {0x2ddd740, 0x173, 0x173}, {0xc2a9c0511a0230e3, 0x1a3194ee03a, ...})
	/usr/local/go/src/testing/testing.go:2583 +0x9ea
testing.(*M).Run(0xc00037a0a0)
	/usr/local/go/src/testing/testing.go:2443 +0xf4c
github.com/novox/mesh-controller/cmd/mesh-controller.TestMain(0xc00037a0a0)
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/sayable_test.go:32 +0x6c
main.main()
	_testmain.go:788 +0x172

goroutine 5387 [select]:
github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc0003fc380)
	/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 5359
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d

goroutine 5402 [select]:
github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc0003fc000)
	/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 5359
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d

goroutine 5360 [select]:
github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc0003fc1c0)
	/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 5359
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d

goroutine 4708 [chan receive]:
github.com/novox/mesh-controller/internal/conditions.(*Keeper).telling(0xc0004d4000)
	/var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:594 +0x138
created by github.com/novox/mesh-controller/internal/conditions.NewKeeper in goroutine 5359
	/var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:132 +0x73a

goroutine 5359 [IO wait]:
internal/poll.runtime_pollWait(0x7f5c177cce00, 0x72)
	/usr/local/go/src/runtime/netpoll.go:351 +0x85
internal/poll.(*pollDesc).wait(0xc000330aa0, 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(0xc000330a80, {0xc000780000, 0x2000, 0x2000})
	/usr/local/go/src/internal/poll/fd_unix.go:165 +0x499
net.(*netFD).Read(0xc000330a80, {0xc000780000, 0x2000, 0x2000})
	/usr/local/go/src/net/fd_posix.go:68 +0x4b
net.(*conn).Read(0xc0001b8a40, {0xc000780000, 0x2000, 0x2000})
	/usr/local/go/src/net/net.go:196 +0xad
github.com/jackc/pgx/v5/pgconn/internal/bgreader.(*BGReader).Read(0xc000982100, {0xc000780000, 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({0x2039ca0, 0xc000982100}, {0xc000780000, 0x2000, 0x2000}, 0x5)
	/usr/local/go/src/io/io.go:335 +0xd1
github.com/jackc/pgx/v5/pgproto3.(*chunkReader).Next(0xc000973b30, 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(0xc0004cf688)
	/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(0xc0000dc108)
	/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(0xc0000dc240)
	/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(0xc000320140, {0x20459c0, 0x2e05a00}, {0xc0000416c0, 0x3d}, {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(0xc000320140, {0x20459c0, 0x2e05a00}, {0xc0000416c0, 0x3d}, {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(0xc000320140, {0x20459c0, 0x2e05a00}, {0xc0000416c0, 0x3d}, {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/cmd/mesh-controller.throwawayStores.func1()
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:888 +0x385
github.com/novox/mesh-controller/cmd/mesh-controller.throwawayStores.func2()
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:937 +0x3e
github.com/novox/mesh-controller/cmd/mesh-controller.composeEveryMachine({_, _}, {{0x1, {0x204a4d25, 0xee25880a4, 0x0}, {{0x1f5f7b9, 0x11}, {0x0, 0x0}}, ...}, ...}, ...)
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:798 +0x10f4
github.com/novox/mesh-controller/cmd/mesh-controller.judgeChange({_, _}, {{0x1, {0x204a4d25, 0xee25880a4, 0x0}, {{0x1f5f7b9, 0x11}, {0x0, 0x0}}, ...}, ...})
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:334 +0x1b59
github.com/novox/mesh-controller/cmd/mesh-controller.TestADeliveryGroupsHeadsAreComposedTogether(0xc0002d9688)
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate_test.go:236 +0xb65
testing.tRunner(0xc0002d9688, 0x2024548)
	/usr/local/go/src/testing/testing.go:2036 +0x21d
created by testing.(*T).Run in goroutine 1
	/usr/local/go/src/testing/testing.go:2101 +0xb13

goroutine 5393 [select]:
github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc0003fc700)
	/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 5359
	/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.041s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.017s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.027s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.021s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.125s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.055s
ok  	github.com/novox/mesh-controller/internal/broker	2.719s
ok  	github.com/novox/mesh-controller/internal/builder	2.128s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.437s
ok  	github.com/novox/mesh-controller/internal/conditions	2.018s
ok  	github.com/novox/mesh-controller/internal/envfile	1.019s
ok  	github.com/novox/mesh-controller/internal/facts	1.018s
ok  	github.com/novox/mesh-controller/internal/identity	256.224s
ok  	github.com/novox/mesh-controller/internal/inventory	1744.436s
ok  	github.com/novox/mesh-controller/internal/lease	17.666s
ok  	github.com/novox/mesh-controller/internal/licences	240.405s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.011s
ok  	github.com/novox/mesh-controller/internal/link	370.958s
ok  	github.com/novox/mesh-controller/internal/lint	1.887s
ok  	github.com/novox/mesh-controller/internal/outward	1.030s
ok  	github.com/novox/mesh-controller/internal/overlay	1.021s
ok  	github.com/novox/mesh-controller/internal/secrets	1.433s
ok  	github.com/novox/mesh-controller/internal/store	95.278s
ok  	github.com/novox/mesh-controller/internal/testbus	1.197s
ok  	github.com/novox/mesh-controller/internal/token	1.012s
FAIL
**Merge check** at `82fe44b3` - `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`: **FAIL** — its merge-check.sh failed: FAIL github.com/novox/mesh-controller/cmd/mesh-controller 1800.041s **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 novox as `build-1791394258214623303` (`builds --log build-1791394258214623303`). ``` 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 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 1375 since 2026-10-07T17:34:52Z) gave the controller lease back (epoch 1) took the controller lease at epoch 1 (controller@novox-be pid 1375 since 2026-10-07T17:34:52Z) another controller holds the lease (controller@novox-be pid 1375 since 2026-10-07T17:34:52Z, epoch 1, taken 2026-10-07T17:53:46Z); 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 1375 since 2026-10-07T17:34:52Z) 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 panic: test timed out after 30m0s running tests: TestADeliveryGroupsHeadsAreComposedTogether (35s) goroutine 5594 [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(0xc0002d8908, {0x1f95fdb, 0x2b}, 0x2024548) /usr/local/go/src/testing/testing.go:2109 +0xb3e testing.runTests.func1(0xc0002d8908) /usr/local/go/src/testing/testing.go:2585 +0x85 testing.tRunner(0xc0002d8908, 0xc00031fa20) /usr/local/go/src/testing/testing.go:2036 +0x21d testing.runTests({0x1f7b4ea, 0x20}, {0x1fabb50, 0x34}, 0xc0000172f0, {0x2ddd740, 0x173, 0x173}, {0xc2a9c0511a0230e3, 0x1a3194ee03a, ...}) /usr/local/go/src/testing/testing.go:2583 +0x9ea testing.(*M).Run(0xc00037a0a0) /usr/local/go/src/testing/testing.go:2443 +0xf4c github.com/novox/mesh-controller/cmd/mesh-controller.TestMain(0xc00037a0a0) /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/sayable_test.go:32 +0x6c main.main() _testmain.go:788 +0x172 goroutine 5387 [select]: github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc0003fc380) /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 5359 /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d goroutine 5402 [select]: github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc0003fc000) /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 5359 /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d goroutine 5360 [select]: github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc0003fc1c0) /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 5359 /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d goroutine 4708 [chan receive]: github.com/novox/mesh-controller/internal/conditions.(*Keeper).telling(0xc0004d4000) /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:594 +0x138 created by github.com/novox/mesh-controller/internal/conditions.NewKeeper in goroutine 5359 /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:132 +0x73a goroutine 5359 [IO wait]: internal/poll.runtime_pollWait(0x7f5c177cce00, 0x72) /usr/local/go/src/runtime/netpoll.go:351 +0x85 internal/poll.(*pollDesc).wait(0xc000330aa0, 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(0xc000330a80, {0xc000780000, 0x2000, 0x2000}) /usr/local/go/src/internal/poll/fd_unix.go:165 +0x499 net.(*netFD).Read(0xc000330a80, {0xc000780000, 0x2000, 0x2000}) /usr/local/go/src/net/fd_posix.go:68 +0x4b net.(*conn).Read(0xc0001b8a40, {0xc000780000, 0x2000, 0x2000}) /usr/local/go/src/net/net.go:196 +0xad github.com/jackc/pgx/v5/pgconn/internal/bgreader.(*BGReader).Read(0xc000982100, {0xc000780000, 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({0x2039ca0, 0xc000982100}, {0xc000780000, 0x2000, 0x2000}, 0x5) /usr/local/go/src/io/io.go:335 +0xd1 github.com/jackc/pgx/v5/pgproto3.(*chunkReader).Next(0xc000973b30, 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(0xc0004cf688) /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(0xc0000dc108) /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(0xc0000dc240) /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(0xc000320140, {0x20459c0, 0x2e05a00}, {0xc0000416c0, 0x3d}, {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(0xc000320140, {0x20459c0, 0x2e05a00}, {0xc0000416c0, 0x3d}, {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(0xc000320140, {0x20459c0, 0x2e05a00}, {0xc0000416c0, 0x3d}, {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/cmd/mesh-controller.throwawayStores.func1() /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:888 +0x385 github.com/novox/mesh-controller/cmd/mesh-controller.throwawayStores.func2() /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:937 +0x3e github.com/novox/mesh-controller/cmd/mesh-controller.composeEveryMachine({_, _}, {{0x1, {0x204a4d25, 0xee25880a4, 0x0}, {{0x1f5f7b9, 0x11}, {0x0, 0x0}}, ...}, ...}, ...) /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:798 +0x10f4 github.com/novox/mesh-controller/cmd/mesh-controller.judgeChange({_, _}, {{0x1, {0x204a4d25, 0xee25880a4, 0x0}, {{0x1f5f7b9, 0x11}, {0x0, 0x0}}, ...}, ...}) /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:334 +0x1b59 github.com/novox/mesh-controller/cmd/mesh-controller.TestADeliveryGroupsHeadsAreComposedTogether(0xc0002d9688) /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate_test.go:236 +0xb65 testing.tRunner(0xc0002d9688, 0x2024548) /usr/local/go/src/testing/testing.go:2036 +0x21d created by testing.(*T).Run in goroutine 1 /usr/local/go/src/testing/testing.go:2101 +0xb13 goroutine 5393 [select]: github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc0003fc700) /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 5359 /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.041s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.017s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.027s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.021s ok github.com/novox/mesh-controller/examples/route-proxy 1.125s ok github.com/novox/mesh-controller/internal/artifacts 1.055s ok github.com/novox/mesh-controller/internal/broker 2.719s ok github.com/novox/mesh-controller/internal/builder 2.128s ok github.com/novox/mesh-controller/internal/catalogue 4.437s ok github.com/novox/mesh-controller/internal/conditions 2.018s ok github.com/novox/mesh-controller/internal/envfile 1.019s ok github.com/novox/mesh-controller/internal/facts 1.018s ok github.com/novox/mesh-controller/internal/identity 256.224s ok github.com/novox/mesh-controller/internal/inventory 1744.436s ok github.com/novox/mesh-controller/internal/lease 17.666s ok github.com/novox/mesh-controller/internal/licences 240.405s ok github.com/novox/mesh-controller/internal/licences/adapters 1.011s ok github.com/novox/mesh-controller/internal/link 370.958s ok github.com/novox/mesh-controller/internal/lint 1.887s ok github.com/novox/mesh-controller/internal/outward 1.030s ok github.com/novox/mesh-controller/internal/overlay 1.021s ok github.com/novox/mesh-controller/internal/secrets 1.433s ok github.com/novox/mesh-controller/internal/store 95.278s ok github.com/novox/mesh-controller/internal/testbus 1.197s ok github.com/novox/mesh-controller/internal/token 1.012s FAIL ```
Author
Contributor

Merge check at 2f418ffa

  • 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-1791396350495282525 (builds --log build-1791396350495282525).

--- 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-07T18:01: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-07T18:01: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-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.032s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	432.498s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.012s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.016s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.012s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.105s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.029s
ok  	github.com/novox/mesh-controller/internal/broker	2.396s
ok  	github.com/novox/mesh-controller/internal/builder	1.334s
ok  	github.com/novox/mesh-controller/internal/catalogue	3.604s
ok  	github.com/novox/mesh-controller/internal/conditions	1.996s
ok  	github.com/novox/mesh-controller/internal/envfile	1.069s
ok  	github.com/novox/mesh-controller/internal/facts	1.096s
ok  	github.com/novox/mesh-controller/internal/identity	54.140s
ok  	github.com/novox/mesh-controller/internal/inventory	285.431s
ok  	github.com/novox/mesh-controller/internal/lease	17.721s
ok  	github.com/novox/mesh-controller/internal/licences	51.399s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.066s
ok  	github.com/novox/mesh-controller/internal/link	74.052s
ok  	github.com/novox/mesh-controller/internal/lint	1.791s
ok  	github.com/novox/mesh-controller/internal/outward	1.114s
ok  	github.com/novox/mesh-controller/internal/overlay	1.077s
ok  	github.com/novox/mesh-controller/internal/secrets	1.416s
ok  	github.com/novox/mesh-controller/internal/store	11.309s
ok  	github.com/novox/mesh-controller/internal/testbus	1.168s
ok  	github.com/novox/mesh-controller/internal/token	1.015s
**Merge check** at `2f418ffa` - `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-1791396350495282525` (`builds --log build-1791396350495282525`). ``` --- 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-07T18:01: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-07T18:01: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-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.032s ok github.com/novox/mesh-controller/cmd/mesh-controller 432.498s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.012s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.016s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.012s ok github.com/novox/mesh-controller/examples/route-proxy 1.105s ok github.com/novox/mesh-controller/internal/artifacts 1.029s ok github.com/novox/mesh-controller/internal/broker 2.396s ok github.com/novox/mesh-controller/internal/builder 1.334s ok github.com/novox/mesh-controller/internal/catalogue 3.604s ok github.com/novox/mesh-controller/internal/conditions 1.996s ok github.com/novox/mesh-controller/internal/envfile 1.069s ok github.com/novox/mesh-controller/internal/facts 1.096s ok github.com/novox/mesh-controller/internal/identity 54.140s ok github.com/novox/mesh-controller/internal/inventory 285.431s ok github.com/novox/mesh-controller/internal/lease 17.721s ok github.com/novox/mesh-controller/internal/licences 51.399s ok github.com/novox/mesh-controller/internal/licences/adapters 1.066s ok github.com/novox/mesh-controller/internal/link 74.052s ok github.com/novox/mesh-controller/internal/lint 1.791s ok github.com/novox/mesh-controller/internal/outward 1.114s ok github.com/novox/mesh-controller/internal/overlay 1.077s ok github.com/novox/mesh-controller/internal/secrets 1.416s ok github.com/novox/mesh-controller/internal/store 11.309s ok github.com/novox/mesh-controller/internal/testbus 1.168s ok github.com/novox/mesh-controller/internal/token 1.015s ```
jschoubben force-pushed feat/node-uplink-verbs from 2f418ffa06 to 3e9a38f81b 2026-10-07 18:26:51 +00:00 Compare
Author
Contributor

Merge check at 3e9a38f8

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

--- 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-07T18:18:34Z 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-07T18:18:34Z

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.032s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	417.274s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.013s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.016s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.012s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.103s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.027s
ok  	github.com/novox/mesh-controller/internal/broker	2.416s
ok  	github.com/novox/mesh-controller/internal/builder	1.294s
ok  	github.com/novox/mesh-controller/internal/catalogue	3.578s
ok  	github.com/novox/mesh-controller/internal/conditions	2.002s
ok  	github.com/novox/mesh-controller/internal/envfile	1.058s
ok  	github.com/novox/mesh-controller/internal/facts	1.058s
ok  	github.com/novox/mesh-controller/internal/identity	53.390s
ok  	github.com/novox/mesh-controller/internal/inventory	277.008s
ok  	github.com/novox/mesh-controller/internal/lease	17.731s
ok  	github.com/novox/mesh-controller/internal/licences	47.313s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.055s
ok  	github.com/novox/mesh-controller/internal/link	81.624s
ok  	github.com/novox/mesh-controller/internal/lint	1.799s
ok  	github.com/novox/mesh-controller/internal/outward	1.075s
ok  	github.com/novox/mesh-controller/internal/overlay	1.064s
ok  	github.com/novox/mesh-controller/internal/secrets	1.402s
ok  	github.com/novox/mesh-controller/internal/store	9.817s
ok  	github.com/novox/mesh-controller/internal/testbus	1.246s
ok  	github.com/novox/mesh-controller/internal/token	1.015s
**Merge check** at `3e9a38f8` - `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 ace as `build-1791397627404511254` (`builds --log build-1791397627404511254`). ``` --- 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-07T18:18:34Z 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-07T18:18:34Z 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.032s ok github.com/novox/mesh-controller/cmd/mesh-controller 417.274s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.013s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.016s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.012s ok github.com/novox/mesh-controller/examples/route-proxy 1.103s ok github.com/novox/mesh-controller/internal/artifacts 1.027s ok github.com/novox/mesh-controller/internal/broker 2.416s ok github.com/novox/mesh-controller/internal/builder 1.294s ok github.com/novox/mesh-controller/internal/catalogue 3.578s ok github.com/novox/mesh-controller/internal/conditions 2.002s ok github.com/novox/mesh-controller/internal/envfile 1.058s ok github.com/novox/mesh-controller/internal/facts 1.058s ok github.com/novox/mesh-controller/internal/identity 53.390s ok github.com/novox/mesh-controller/internal/inventory 277.008s ok github.com/novox/mesh-controller/internal/lease 17.731s ok github.com/novox/mesh-controller/internal/licences 47.313s ok github.com/novox/mesh-controller/internal/licences/adapters 1.055s ok github.com/novox/mesh-controller/internal/link 81.624s ok github.com/novox/mesh-controller/internal/lint 1.799s ok github.com/novox/mesh-controller/internal/outward 1.075s ok github.com/novox/mesh-controller/internal/overlay 1.064s ok github.com/novox/mesh-controller/internal/secrets 1.402s ok github.com/novox/mesh-controller/internal/store 9.817s ok github.com/novox/mesh-controller/internal/testbus 1.246s ok github.com/novox/mesh-controller/internal/token 1.015s ```
jschoubben added 1 commit 2026-10-07 18:52:33 +00:00
Give the uplink seat its verbs, optional until its holders serve them (hq ADR 0241)
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check fail: its merge-check.sh failed: FAIL github.com/novox/mesh-controller/cmd/mesh-controller 1800.047s
mesh/delivery delivered
mesh/delivery-group group feat/node-uplink-verbs merged: every member is merged
bf11a8baac
What a machine resolves through and over which links had no tool: the
resolver file and its writer, and each link with its routes and resolvers,
are now verbs of node-uplink, the same whatever manages the network. Marked
optional (Verb.Optional), so today's holders still hold the seat until both
serve them; read back from the store's row they stay optional.
jschoubben force-pushed feat/node-uplink-verbs from 3e9a38f81b to bf11a8baac 2026-10-07 18:52:33 +00:00 Compare
Author
Contributor

Merge check at bf11a8ba

  • 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-1791400081104137548 (builds --log build-1791400081104137548).

--- 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-07T19:06:45Z 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-07T19:06:45Z

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.036s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	368.679s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.025s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.037s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.016s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.219s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.056s
ok  	github.com/novox/mesh-controller/internal/broker	2.730s
ok  	github.com/novox/mesh-controller/internal/builder	1.485s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.228s
ok  	github.com/novox/mesh-controller/internal/conditions	2.014s
ok  	github.com/novox/mesh-controller/internal/envfile	1.046s
ok  	github.com/novox/mesh-controller/internal/facts	1.045s
ok  	github.com/novox/mesh-controller/internal/identity	51.342s
ok  	github.com/novox/mesh-controller/internal/inventory	230.376s
ok  	github.com/novox/mesh-controller/internal/lease	17.680s
ok  	github.com/novox/mesh-controller/internal/licences	51.330s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.036s
ok  	github.com/novox/mesh-controller/internal/link	88.848s
ok  	github.com/novox/mesh-controller/internal/lint	1.896s
ok  	github.com/novox/mesh-controller/internal/outward	1.077s
ok  	github.com/novox/mesh-controller/internal/overlay	1.056s
ok  	github.com/novox/mesh-controller/internal/secrets	1.503s
ok  	github.com/novox/mesh-controller/internal/store	25.519s
ok  	github.com/novox/mesh-controller/internal/testbus	1.220s
ok  	github.com/novox/mesh-controller/internal/token	1.017s
**Merge check** at `bf11a8ba` - `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-1791400081104137548` (`builds --log build-1791400081104137548`). ``` --- 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-07T19:06:45Z 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-07T19:06:45Z 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.036s ok github.com/novox/mesh-controller/cmd/mesh-controller 368.679s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.025s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.037s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.016s ok github.com/novox/mesh-controller/examples/route-proxy 1.219s ok github.com/novox/mesh-controller/internal/artifacts 1.056s ok github.com/novox/mesh-controller/internal/broker 2.730s ok github.com/novox/mesh-controller/internal/builder 1.485s ok github.com/novox/mesh-controller/internal/catalogue 4.228s ok github.com/novox/mesh-controller/internal/conditions 2.014s ok github.com/novox/mesh-controller/internal/envfile 1.046s ok github.com/novox/mesh-controller/internal/facts 1.045s ok github.com/novox/mesh-controller/internal/identity 51.342s ok github.com/novox/mesh-controller/internal/inventory 230.376s ok github.com/novox/mesh-controller/internal/lease 17.680s ok github.com/novox/mesh-controller/internal/licences 51.330s ok github.com/novox/mesh-controller/internal/licences/adapters 1.036s ok github.com/novox/mesh-controller/internal/link 88.848s ok github.com/novox/mesh-controller/internal/lint 1.896s ok github.com/novox/mesh-controller/internal/outward 1.077s ok github.com/novox/mesh-controller/internal/overlay 1.056s ok github.com/novox/mesh-controller/internal/secrets 1.503s ok github.com/novox/mesh-controller/internal/store 25.519s ok github.com/novox/mesh-controller/internal/testbus 1.220s ok github.com/novox/mesh-controller/internal/token 1.017s ```
mesh-admin changed title from Give the uplink seat its verbs, staged until its holders serve them (hq ADR 0241 rule 8) to Give the uplink seat its verbs, optional until its holders serve them (hq ADR 0241 rule 8) 2026-10-07 19:17:24 +00:00
mesh-admin merged commit 96c34c52dc into main 2026-10-07 19:17:25 +00:00
mesh-admin deleted branch feat/node-uplink-verbs 2026-10-07 19:17:25 +00:00
Author
Contributor

Merge check at bf11a8ba

  • 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: FAIL — its merge-check.sh failed: FAIL github.com/novox/mesh-controller/cmd/mesh-controller 1800.047s

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-1791399160739995262 (builds --log build-1791399160739995262).

	_testmain.go:814 +0x172

goroutine 5058 [select]:
github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc00026aa80)
	/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 5029
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d

goroutine 5061 [chan receive, 2 minutes]:
github.com/novox/mesh-controller/internal/conditions.(*Keeper).telling(0xc0006b26c0)
	/var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:594 +0x138
created by github.com/novox/mesh-controller/internal/conditions.NewKeeper in goroutine 5029
	/var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:132 +0x73a

goroutine 5380 [select]:
github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc0008f4460)
	/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 5029
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d

goroutine 5045 [select]:
github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc00026a380)
	/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 5029
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d

goroutine 5074 [select]:
github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc00026a000)
	/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 5029
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d

goroutine 5053 [select]:
github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc00026a620)
	/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 5029
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d

goroutine 5029 [IO wait]:
internal/poll.runtime_pollWait(0x7fdfd06e4c00, 0x72)
	/usr/local/go/src/runtime/netpoll.go:351 +0x85
internal/poll.(*pollDesc).wait(0xc0000e03a0, 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(0xc0000e0380, {0xc000034000, 0x2000, 0x2000})
	/usr/local/go/src/internal/poll/fd_unix.go:165 +0x499
net.(*netFD).Read(0xc0000e0380, {0xc000034000, 0x2000, 0x2000})
	/usr/local/go/src/net/fd_posix.go:68 +0x4b
net.(*conn).Read(0xc000006500, {0xc000034000, 0x2000, 0x2000})
	/usr/local/go/src/net/net.go:196 +0xad
github.com/jackc/pgx/v5/pgconn/internal/bgreader.(*BGReader).Read(0xc000818900, {0xc000034000, 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({0x2062160, 0xc000818900}, {0xc000034000, 0x2000, 0x2000}, 0x5)
	/usr/local/go/src/io/io.go:335 +0xd1
github.com/jackc/pgx/v5/pgproto3.(*chunkReader).Next(0xc000559710, 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(0xc000004908)
	/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(0xc0002fd188)
	/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.(*PgConn).receiveMessage(0xc0002fd188)
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:669 +0xc6
github.com/jackc/pgx/v5/pgconn.(*ResultReader).receiveMessage(0xc0002fd240)
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:1872 +0x95
github.com/jackc/pgx/v5/pgconn.(*ResultReader).readUntilRowDescription(0xc0002fd240, 0xc000812690, {0xc00080da80, 0x0, 0x8})
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:1839 +0x85
github.com/jackc/pgx/v5/pgconn.(*PgConn).execExtendedSuffix(0xc0002fd188, 0xc0002fd240, 0xc000812690, {0xc00080da80, 0x0, 0x8})
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:1375 +0x365
github.com/jackc/pgx/v5/pgconn.(*PgConn).ExecStatement(0xc0002fd188, {0x206e190, 0xc00017a410}, 0xc000812690, {0xc00079a600, 0x7, 0x8}, {0xc00080db70, 0x7, 0x8}, ...)
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:1318 +0x267
github.com/jackc/pgx/v5.(*Conn).execPrepared(0xc0005cc500, {0x206e190, 0xc00017a410}, 0xc000812690, {0xc0002a2c40, 0x7, 0x7})
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:613 +0x231
github.com/jackc/pgx/v5.(*Conn).exec(0xc0005cc500, {0x206e190, 0xc00017a410}, {0x200f27b, 0x93}, {0xc0002a2c40, 0x7, 0x7})
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:550 +0x99d
github.com/jackc/pgx/v5.(*Conn).Exec(0xc0005cc500, {0x206e190, 0xc00017a410}, {0x200f27b, 0x93}, {0xc0002a2c40, 0x7, 0x7})
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:481 +0x1f0
github.com/jackc/pgx/v5/pgxpool.(*Conn).Exec(0xc000005988, {0x206e190, 0xc00017a410}, {0x200f27b, 0x93}, {0xc0002a2c40, 0x7, 0x7})
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/conn.go:86 +0x112
github.com/jackc/pgx/v5/pgxpool.(*Pool).Exec(0xc0008f4460, {0x206e190, 0xc00017a410}, {0x200f27b, 0x93}, {0xc0002a2c40, 0x7, 0x7})
	/var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:734 +0x14a
github.com/novox/mesh-controller/internal/inventory.(*Inventory).SeedSeats(0xc0002af140, {0x206e190, 0xc00017a410}, {0xc000143308, 0x25, 0x0?})
	/var/lib/build-agent/workspace/check/mesh-controller/internal/inventory/seats.go:69 +0x605
github.com/novox/mesh-controller/cmd/mesh-controller.throwawayStores({0x206e190, 0xc00017a410}, {0xc000046013, 0x42})
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:932 +0x1a0c
github.com/novox/mesh-controller/cmd/mesh-controller.composeEveryMachine({_, _}, {{0x1, {0x14f6e07, 0xee258933a, 0x0}, {{0x1f85f47, 0x11}, {0x0, 0x0}}, ...}, ...}, ...)
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:745 +0xb5
github.com/novox/mesh-controller/cmd/mesh-controller.judgeChange({_, _}, {{0x1, {0x14f6e07, 0xee258933a, 0x0}, {{0x1f85f47, 0x11}, {0x0, 0x0}}, ...}, ...})
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:334 +0x1b59
github.com/novox/mesh-controller/cmd/mesh-controller.gateJudged(_, {0x1, {0x14f6e07, 0xee258933a, 0x0}, {{0x1f85f47, 0x11}, {0x0, 0x0}}, {{0x1f77c95, ...}, ...}, ...}, ...)
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate_test.go:83 +0x279
github.com/novox/mesh-controller/cmd/mesh-controller.TestIssue278AWideRebuildIsSaidBeforeTheMerge(0xc0000d46c8)
	/var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate_test.go:193 +0x3bc
testing.tRunner(0xc0000d46c8, 0x204cf40)
	/usr/local/go/src/testing/testing.go:2036 +0x21d
created by testing.(*T).Run in goroutine 1
	/usr/local/go/src/testing/testing.go:2101 +0xb13
FAIL	github.com/novox/mesh-controller/cmd/mesh-controller	1800.047s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.023s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.031s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.022s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.127s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.051s
ok  	github.com/novox/mesh-controller/internal/broker	2.949s
ok  	github.com/novox/mesh-controller/internal/builder	1.875s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.390s
ok  	github.com/novox/mesh-controller/internal/conditions	1.980s
ok  	github.com/novox/mesh-controller/internal/envfile	1.028s
ok  	github.com/novox/mesh-controller/internal/facts	1.032s
ok  	github.com/novox/mesh-controller/internal/identity	233.921s
panic: test timed out after 30m0s
	running tests:
		TestAnEnrollingNodeKeepsTheAddressTheTunnelHadForItsKey (6s)

goroutine 1454 [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(0xc00021cb48, {0xe33a99, 0x37}, 0xe712c8)
	/usr/local/go/src/testing/testing.go:2109 +0xb3e
testing.runTests.func1(0xc00021cb48)
	/usr/local/go/src/testing/testing.go:2585 +0x85
testing.tRunner(0xc00021cb48, 0xc00024bad0)
	/usr/local/go/src/testing/testing.go:2036 +0x21d
testing.runTests({0xe20f39, 0x20}, {0xe31603, 0x33}, 0xc00012ea80, {0x141d320, 0xc4, 0xc4}, {0xc2a9c512b2dcbe53, 0x1a318ac8e58, ...})
	/usr/local/go/src/testing/testing.go:2583 +0x9ea
testing.(*M).Run(0xc0002aa640)
	/usr/local/go/src/testing/testing.go:2443 +0xf4c
main.main()
	_testmain.go:436 +0x165

goroutine 1524 [IO wait]:
internal/poll.runtime_pollWait(0x7fac763ec000, 0x72)
	/usr/local/go/src/runtime/netpoll.go:351 +0x85
internal/poll.(*pollDesc).wait(0xc00041e020, 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(0xc00041e000, {0xc000424000, 0x2000, 0x2000})
	/usr/local/go/src/internal/poll/fd_unix.go:165 +0x499
net.(*netFD).Read(0xc00041e000, {0xc000424000, 0x2000, 0x2000})
	/usr/local/go/src/net/fd_posix.go:68 +0x4b
net.(*conn).Read(0xc000460058, {0xc000424000, 0x2000, 0x2000})
	/usr/local/go/src/net/net.go:196 +0xad
github.com/jackc/pgx/v5/pgconn/internal/bgreader.(*BGReader).Read(0xc00003a100, {0xc000424000, 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({0xe79ea0, 0xc00003a100}, {0xc000424000, 0x2000, 0x2000}, 0x5)
	/usr/local/go/src/io/io.go:335 +0xd1
github.com/jackc/pgx/v5/pgproto3.(*chunkReader).Next(0xc0005c0960, 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(0xc000474908)
	/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(0xc000418008)
	/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(0xc000418140)
	/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(0xc000260000, {0xe80ed0, 0x1442640}, {0xc0002fa460, 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(0xc000260000, {0xe80ed0, 0x1442640}, {0xc0002fa460, 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(0xc000260000, {0xe80ed0, 0x1442640}, {0xc0002fa460, 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/inventory.ForTest.func1()
	/var/lib/build-agent/workspace/check/mesh-controller/internal/inventory/fortest.go:56 +0x195
testing.(*common).Cleanup.func1()
	/usr/local/go/src/testing/testing.go:1317 +0x169
testing.(*common).runCleanup(0xc0003be908, 0x0)
	/usr/local/go/src/testing/testing.go:1667 +0x226
testing.tRunner.func2()
	/usr/local/go/src/testing/testing.go:2030 +0x4d
testing.tRunner(0xc0003be908, 0xe712c8)
	/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
FAIL	github.com/novox/mesh-controller/internal/inventory	1800.021s
ok  	github.com/novox/mesh-controller/internal/lease	17.775s
ok  	github.com/novox/mesh-controller/internal/licences	251.718s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.009s
ok  	github.com/novox/mesh-controller/internal/link	366.147s
ok  	github.com/novox/mesh-controller/internal/lint	1.887s
ok  	github.com/novox/mesh-controller/internal/outward	1.035s
ok  	github.com/novox/mesh-controller/internal/overlay	1.021s
ok  	github.com/novox/mesh-controller/internal/secrets	1.435s
ok  	github.com/novox/mesh-controller/internal/store	77.016s
ok  	github.com/novox/mesh-controller/internal/testbus	1.185s
ok  	github.com/novox/mesh-controller/internal/token	1.013s
FAIL
**Merge check** at `bf11a8ba` - `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`: **FAIL** — its merge-check.sh failed: FAIL github.com/novox/mesh-controller/cmd/mesh-controller 1800.047s **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-1791399160739995262` (`builds --log build-1791399160739995262`). ``` _testmain.go:814 +0x172 goroutine 5058 [select]: github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc00026aa80) /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 5029 /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d goroutine 5061 [chan receive, 2 minutes]: github.com/novox/mesh-controller/internal/conditions.(*Keeper).telling(0xc0006b26c0) /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:594 +0x138 created by github.com/novox/mesh-controller/internal/conditions.NewKeeper in goroutine 5029 /var/lib/build-agent/workspace/check/mesh-controller/internal/conditions/store.go:132 +0x73a goroutine 5380 [select]: github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc0008f4460) /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 5029 /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d goroutine 5045 [select]: github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc00026a380) /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 5029 /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d goroutine 5074 [select]: github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc00026a000) /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 5029 /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d goroutine 5053 [select]: github.com/jackc/pgx/v5/pgxpool.(*Pool).backgroundHealthCheck(0xc00026a620) /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 5029 /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:333 +0xc1d goroutine 5029 [IO wait]: internal/poll.runtime_pollWait(0x7fdfd06e4c00, 0x72) /usr/local/go/src/runtime/netpoll.go:351 +0x85 internal/poll.(*pollDesc).wait(0xc0000e03a0, 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(0xc0000e0380, {0xc000034000, 0x2000, 0x2000}) /usr/local/go/src/internal/poll/fd_unix.go:165 +0x499 net.(*netFD).Read(0xc0000e0380, {0xc000034000, 0x2000, 0x2000}) /usr/local/go/src/net/fd_posix.go:68 +0x4b net.(*conn).Read(0xc000006500, {0xc000034000, 0x2000, 0x2000}) /usr/local/go/src/net/net.go:196 +0xad github.com/jackc/pgx/v5/pgconn/internal/bgreader.(*BGReader).Read(0xc000818900, {0xc000034000, 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({0x2062160, 0xc000818900}, {0xc000034000, 0x2000, 0x2000}, 0x5) /usr/local/go/src/io/io.go:335 +0xd1 github.com/jackc/pgx/v5/pgproto3.(*chunkReader).Next(0xc000559710, 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(0xc000004908) /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(0xc0002fd188) /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.(*PgConn).receiveMessage(0xc0002fd188) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:669 +0xc6 github.com/jackc/pgx/v5/pgconn.(*ResultReader).receiveMessage(0xc0002fd240) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:1872 +0x95 github.com/jackc/pgx/v5/pgconn.(*ResultReader).readUntilRowDescription(0xc0002fd240, 0xc000812690, {0xc00080da80, 0x0, 0x8}) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:1839 +0x85 github.com/jackc/pgx/v5/pgconn.(*PgConn).execExtendedSuffix(0xc0002fd188, 0xc0002fd240, 0xc000812690, {0xc00080da80, 0x0, 0x8}) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:1375 +0x365 github.com/jackc/pgx/v5/pgconn.(*PgConn).ExecStatement(0xc0002fd188, {0x206e190, 0xc00017a410}, 0xc000812690, {0xc00079a600, 0x7, 0x8}, {0xc00080db70, 0x7, 0x8}, ...) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go:1318 +0x267 github.com/jackc/pgx/v5.(*Conn).execPrepared(0xc0005cc500, {0x206e190, 0xc00017a410}, 0xc000812690, {0xc0002a2c40, 0x7, 0x7}) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:613 +0x231 github.com/jackc/pgx/v5.(*Conn).exec(0xc0005cc500, {0x206e190, 0xc00017a410}, {0x200f27b, 0x93}, {0xc0002a2c40, 0x7, 0x7}) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:550 +0x99d github.com/jackc/pgx/v5.(*Conn).Exec(0xc0005cc500, {0x206e190, 0xc00017a410}, {0x200f27b, 0x93}, {0xc0002a2c40, 0x7, 0x7}) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/conn.go:481 +0x1f0 github.com/jackc/pgx/v5/pgxpool.(*Conn).Exec(0xc000005988, {0x206e190, 0xc00017a410}, {0x200f27b, 0x93}, {0xc0002a2c40, 0x7, 0x7}) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/conn.go:86 +0x112 github.com/jackc/pgx/v5/pgxpool.(*Pool).Exec(0xc0008f4460, {0x206e190, 0xc00017a410}, {0x200f27b, 0x93}, {0xc0002a2c40, 0x7, 0x7}) /var/lib/build-agent/workspace/check/mesh-controller/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go:734 +0x14a github.com/novox/mesh-controller/internal/inventory.(*Inventory).SeedSeats(0xc0002af140, {0x206e190, 0xc00017a410}, {0xc000143308, 0x25, 0x0?}) /var/lib/build-agent/workspace/check/mesh-controller/internal/inventory/seats.go:69 +0x605 github.com/novox/mesh-controller/cmd/mesh-controller.throwawayStores({0x206e190, 0xc00017a410}, {0xc000046013, 0x42}) /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:932 +0x1a0c github.com/novox/mesh-controller/cmd/mesh-controller.composeEveryMachine({_, _}, {{0x1, {0x14f6e07, 0xee258933a, 0x0}, {{0x1f85f47, 0x11}, {0x0, 0x0}}, ...}, ...}, ...) /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:745 +0xb5 github.com/novox/mesh-controller/cmd/mesh-controller.judgeChange({_, _}, {{0x1, {0x14f6e07, 0xee258933a, 0x0}, {{0x1f85f47, 0x11}, {0x0, 0x0}}, ...}, ...}) /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate.go:334 +0x1b59 github.com/novox/mesh-controller/cmd/mesh-controller.gateJudged(_, {0x1, {0x14f6e07, 0xee258933a, 0x0}, {{0x1f85f47, 0x11}, {0x0, 0x0}}, {{0x1f77c95, ...}, ...}, ...}, ...) /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate_test.go:83 +0x279 github.com/novox/mesh-controller/cmd/mesh-controller.TestIssue278AWideRebuildIsSaidBeforeTheMerge(0xc0000d46c8) /var/lib/build-agent/workspace/check/mesh-controller/cmd/mesh-controller/merge_gate_test.go:193 +0x3bc testing.tRunner(0xc0000d46c8, 0x204cf40) /usr/local/go/src/testing/testing.go:2036 +0x21d created by testing.(*T).Run in goroutine 1 /usr/local/go/src/testing/testing.go:2101 +0xb13 FAIL github.com/novox/mesh-controller/cmd/mesh-controller 1800.047s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.023s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.031s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.022s ok github.com/novox/mesh-controller/examples/route-proxy 1.127s ok github.com/novox/mesh-controller/internal/artifacts 1.051s ok github.com/novox/mesh-controller/internal/broker 2.949s ok github.com/novox/mesh-controller/internal/builder 1.875s ok github.com/novox/mesh-controller/internal/catalogue 4.390s ok github.com/novox/mesh-controller/internal/conditions 1.980s ok github.com/novox/mesh-controller/internal/envfile 1.028s ok github.com/novox/mesh-controller/internal/facts 1.032s ok github.com/novox/mesh-controller/internal/identity 233.921s panic: test timed out after 30m0s running tests: TestAnEnrollingNodeKeepsTheAddressTheTunnelHadForItsKey (6s) goroutine 1454 [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(0xc00021cb48, {0xe33a99, 0x37}, 0xe712c8) /usr/local/go/src/testing/testing.go:2109 +0xb3e testing.runTests.func1(0xc00021cb48) /usr/local/go/src/testing/testing.go:2585 +0x85 testing.tRunner(0xc00021cb48, 0xc00024bad0) /usr/local/go/src/testing/testing.go:2036 +0x21d testing.runTests({0xe20f39, 0x20}, {0xe31603, 0x33}, 0xc00012ea80, {0x141d320, 0xc4, 0xc4}, {0xc2a9c512b2dcbe53, 0x1a318ac8e58, ...}) /usr/local/go/src/testing/testing.go:2583 +0x9ea testing.(*M).Run(0xc0002aa640) /usr/local/go/src/testing/testing.go:2443 +0xf4c main.main() _testmain.go:436 +0x165 goroutine 1524 [IO wait]: internal/poll.runtime_pollWait(0x7fac763ec000, 0x72) /usr/local/go/src/runtime/netpoll.go:351 +0x85 internal/poll.(*pollDesc).wait(0xc00041e020, 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(0xc00041e000, {0xc000424000, 0x2000, 0x2000}) /usr/local/go/src/internal/poll/fd_unix.go:165 +0x499 net.(*netFD).Read(0xc00041e000, {0xc000424000, 0x2000, 0x2000}) /usr/local/go/src/net/fd_posix.go:68 +0x4b net.(*conn).Read(0xc000460058, {0xc000424000, 0x2000, 0x2000}) /usr/local/go/src/net/net.go:196 +0xad github.com/jackc/pgx/v5/pgconn/internal/bgreader.(*BGReader).Read(0xc00003a100, {0xc000424000, 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({0xe79ea0, 0xc00003a100}, {0xc000424000, 0x2000, 0x2000}, 0x5) /usr/local/go/src/io/io.go:335 +0xd1 github.com/jackc/pgx/v5/pgproto3.(*chunkReader).Next(0xc0005c0960, 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(0xc000474908) /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(0xc000418008) /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(0xc000418140) /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(0xc000260000, {0xe80ed0, 0x1442640}, {0xc0002fa460, 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(0xc000260000, {0xe80ed0, 0x1442640}, {0xc0002fa460, 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(0xc000260000, {0xe80ed0, 0x1442640}, {0xc0002fa460, 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/inventory.ForTest.func1() /var/lib/build-agent/workspace/check/mesh-controller/internal/inventory/fortest.go:56 +0x195 testing.(*common).Cleanup.func1() /usr/local/go/src/testing/testing.go:1317 +0x169 testing.(*common).runCleanup(0xc0003be908, 0x0) /usr/local/go/src/testing/testing.go:1667 +0x226 testing.tRunner.func2() /usr/local/go/src/testing/testing.go:2030 +0x4d testing.tRunner(0xc0003be908, 0xe712c8) /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 FAIL github.com/novox/mesh-controller/internal/inventory 1800.021s ok github.com/novox/mesh-controller/internal/lease 17.775s ok github.com/novox/mesh-controller/internal/licences 251.718s ok github.com/novox/mesh-controller/internal/licences/adapters 1.009s ok github.com/novox/mesh-controller/internal/link 366.147s ok github.com/novox/mesh-controller/internal/lint 1.887s ok github.com/novox/mesh-controller/internal/outward 1.035s ok github.com/novox/mesh-controller/internal/overlay 1.021s ok github.com/novox/mesh-controller/internal/secrets 1.435s ok github.com/novox/mesh-controller/internal/store 77.016s ok github.com/novox/mesh-controller/internal/testbus 1.185s ok github.com/novox/mesh-controller/internal/token 1.013s FAIL ```
This repo is archived. You cannot comment on pull requests.
No Reviewers
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#116