Name the account agents run as on a node, and say whether it can become root (hq ADR 0266) #164

Merged
mesh-admin merged 11 commits from feat/a-node-names-the-account-its-agents-run-as into main 2026-10-09 10:56:04 +00:00
Contributor

On the control node every agent session runs as the operator's account, which has passwordless sudo: any agent there can become root without a person. hq ADR 0266 (agents run under an account of their own, without sudo) decides an agent account per node; this is the controller's part.

What changes

  • Migration 0083: node.agent_account, node.agent_account_home (empty = agents run as the operator account). No consolidated schema exists in this repository; migrations are the schema.
  • Inventory: Node.AgentAccount, AgentAccountHome, AgentHome(); SetAgentAccount refuses root, the node's operator account, a malformed login and a relative home; empty clears.
  • CLI, at the controller's terminal only: mesh-controller node agent-account <node> reports; node agent-account <node> <account> [home] names; node agent-account <node> --clear clears. Not a verb and not a setting, so no agent can change it; the node verb still runs only node show (tested). node show says whom agents run as and the verdict.
  • Machine facts: ${machine:agent-account} (the agent account, or the operator account when none is named), ${machine:agent-home}, ${machine:agent-root} (never only for an account of the agents' own, else empty). A user resource's root field is substituted too.
  • Runtime env: MESH_AGENT_ACCOUNT, MESH_AGENT_HOME beside MESH_OPERATOR_*; reserved, a bundle may not set them.
  • Wire: link.ResourceHealth.Root (root), link.RootContract = 3, link.ReasonRoot. A user's root is sent only to an engine whose newest statement is contract 3 or later, and only when it says never; an older engine parses strictly and is not sent it.
  • Self-check probe DA, kind agent-can-become-root, urgent, with plain words: every machine that names an agent account has it judged, on its engine's newest statement, unable to become root without a person. Anything not judged (no statement, an older engine, no verdict on that account, a verdict of unknown) fails. The judgement is one function, agentConfined, for node show, the probe and later ADR 0259's router.
  • Facts snapshot carries the agent account as a pseudonym, and the merge gate restores it.

Depends on mesh-host

The node-engine judges root: never on branch feat/an-agent-account-never-becomes-root (mesh-host). This branch pins mesh-host at that branch's commit 8390fab5cb35 and vendors it, so D1's validator knows the field. After the mesh-host pull request merges, the pin must move to mesh-host's main commit (go mod edit -replace … and go mod vendor) before this merges.

Verified here

gofmt, go vet ./..., and the whole suite go test -count=1 ./... against a local throwaway PostgreSQL 18: all pass (not under the race detector locally). New tests: inventory round trip and refusals, the facts' fallback and never only when distinct, the runtime env, root stripped for an older engine and when empty, the judgement over every case, the probe raising and clearing, plain words, the snapshot pseudonym, and the node verb only showing.

On the control node every agent session runs as the operator's account, which has passwordless sudo: any agent there can become root without a person. hq ADR 0266 (agents run under an account of their own, without sudo) decides an agent account per node; this is the controller's part. ## What changes - **Migration 0083**: `node.agent_account`, `node.agent_account_home` (empty = agents run as the operator account). No consolidated schema exists in this repository; migrations are the schema. - **Inventory**: `Node.AgentAccount`, `AgentAccountHome`, `AgentHome()`; `SetAgentAccount` refuses root, the node's operator account, a malformed login and a relative home; empty clears. - **CLI, at the controller's terminal only**: `mesh-controller node agent-account <node>` reports; `node agent-account <node> <account> [home]` names; `node agent-account <node> --clear` clears. Not a verb and not a setting, so no agent can change it; the `node` verb still runs only `node show` (tested). `node show` says whom agents run as and the verdict. - **Machine facts**: `${machine:agent-account}` (the agent account, or the operator account when none is named), `${machine:agent-home}`, `${machine:agent-root}` (`never` only for an account of the agents' own, else empty). A user resource's `root` field is substituted too. - **Runtime env**: `MESH_AGENT_ACCOUNT`, `MESH_AGENT_HOME` beside `MESH_OPERATOR_*`; reserved, a bundle may not set them. - **Wire**: `link.ResourceHealth.Root` (`root`), `link.RootContract = 3`, `link.ReasonRoot`. A user's `root` is sent only to an engine whose newest statement is contract 3 or later, and only when it says `never`; an older engine parses strictly and is not sent it. - **Self-check probe `DA`**, kind `agent-can-become-root`, urgent, with plain words: every machine that names an agent account has it judged, on its engine's newest statement, unable to become root without a person. Anything not judged (no statement, an older engine, no verdict on that account, a verdict of unknown) fails. The judgement is one function, `agentConfined`, for `node show`, the probe and later ADR 0259's router. - **Facts snapshot** carries the agent account as a pseudonym, and the merge gate restores it. ## Depends on mesh-host The node-engine judges `root: never` on branch `feat/an-agent-account-never-becomes-root` (mesh-host). This branch pins mesh-host at that branch's commit `8390fab5cb35` and vendors it, so D1's validator knows the field. **After the mesh-host pull request merges, the pin must move to mesh-host's main commit (`go mod edit -replace …` and `go mod vendor`) before this merges.** ## Verified here gofmt, `go vet ./...`, and the whole suite `go test -count=1 ./...` against a local throwaway PostgreSQL 18: all pass (not under the race detector locally). New tests: inventory round trip and refusals, the facts' fallback and `never` only when distinct, the runtime env, `root` stripped for an older engine and when empty, the judgement over every case, the probe raising and clearing, plain words, the snapshot pseudonym, and the `node` verb only showing.
Author
Contributor

Delivery novox/mesh-controller@e168b60159f7 — superseded since 2026-10-09T10:56:47Z

Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-controller
  • tier 1: build-agent
  • tier 2: route-proxy
  • ace: receives build-agent, route-proxy
  • g14: receives build-agent
  • novox: receives mesh-controller, build-agent, route-proxy
  • shanks: receives build-agent
  • build-agent keeps data (ADR 0233): what it holds is backed up before it moves
  • route-proxy provides route: its consumers are sent again after it
  • route-proxy keeps data (ADR 0233): what it holds is backed up before it moves

Transitions

  • 2026-10-09 10:37 (new) → proposed (announced): novox/mesh-controller#164's head announced
  • 2026-10-09 10:43 proposed → checked (checked): the verdict names this commit
  • 2026-10-09 10:43 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-09 10:56 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-09 10:56 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-09 10:56 delivering → superseded (superseded): a newer delivery to the same trunk took over its walk

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@e168b60159f7` — **superseded** since 2026-10-09T10:56:47Z **Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: mesh-controller - tier 1: build-agent - tier 2: route-proxy - ace: receives build-agent, route-proxy - g14: receives build-agent - novox: receives mesh-controller, build-agent, route-proxy - shanks: receives build-agent - build-agent keeps data (ADR 0233): what it holds is backed up before it moves - route-proxy provides route: its consumers are sent again after it - route-proxy keeps data (ADR 0233): what it holds is backed up before it moves **Transitions** - 2026-10-09 10:37 (new) → proposed (announced): novox/mesh-controller#164's head announced - 2026-10-09 10:43 proposed → checked (checked): the verdict names this commit - 2026-10-09 10:43 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-09 10:56 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-09 10:56 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-09 10:56 delivering → superseded (superseded): a newer delivery to the same trunk took over its walk The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Author
Contributor

Merge check at 2d7d4d44

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 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-08T16:26:42Z 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-08T16:26:42Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.032s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	186.522s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.049s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.049s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.041s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.237s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.079s
ok  	github.com/novox/mesh-controller/internal/broker	2.691s
ok  	github.com/novox/mesh-controller/internal/builder	1.953s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.806s
ok  	github.com/novox/mesh-controller/internal/conditions	2.233s
ok  	github.com/novox/mesh-controller/internal/envfile	1.055s
ok  	github.com/novox/mesh-controller/internal/facts	1.054s
ok  	github.com/novox/mesh-controller/internal/identity	4.664s
ok  	github.com/novox/mesh-controller/internal/inventory	84.765s
ok  	github.com/novox/mesh-controller/internal/lease	17.703s
ok  	github.com/novox/mesh-controller/internal/licences	4.243s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.046s
ok  	github.com/novox/mesh-controller/internal/link	46.525s
ok  	github.com/novox/mesh-controller/internal/lint	2.147s
ok  	github.com/novox/mesh-controller/internal/outward	1.083s
ok  	github.com/novox/mesh-controller/internal/overlay	1.069s
ok  	github.com/novox/mesh-controller/internal/secrets	1.565s
ok  	github.com/novox/mesh-controller/internal/store	3.444s
ok  	github.com/novox/mesh-controller/internal/testbus	1.233s
ok  	github.com/novox/mesh-controller/internal/token	1.014s
**Merge check** at `2d7d4d44` - `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-1791477470452846257` (`builds --log build-1791477470452846257`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 51 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-08T16:26:42Z 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-08T16:26:42Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.032s ok github.com/novox/mesh-controller/cmd/mesh-controller 186.522s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.049s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.049s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.041s ok github.com/novox/mesh-controller/examples/route-proxy 1.237s ok github.com/novox/mesh-controller/internal/artifacts 1.079s ok github.com/novox/mesh-controller/internal/broker 2.691s ok github.com/novox/mesh-controller/internal/builder 1.953s ok github.com/novox/mesh-controller/internal/catalogue 4.806s ok github.com/novox/mesh-controller/internal/conditions 2.233s ok github.com/novox/mesh-controller/internal/envfile 1.055s ok github.com/novox/mesh-controller/internal/facts 1.054s ok github.com/novox/mesh-controller/internal/identity 4.664s ok github.com/novox/mesh-controller/internal/inventory 84.765s ok github.com/novox/mesh-controller/internal/lease 17.703s ok github.com/novox/mesh-controller/internal/licences 4.243s ok github.com/novox/mesh-controller/internal/licences/adapters 1.046s ok github.com/novox/mesh-controller/internal/link 46.525s ok github.com/novox/mesh-controller/internal/lint 2.147s ok github.com/novox/mesh-controller/internal/outward 1.083s ok github.com/novox/mesh-controller/internal/overlay 1.069s ok github.com/novox/mesh-controller/internal/secrets 1.565s ok github.com/novox/mesh-controller/internal/store 3.444s ok github.com/novox/mesh-controller/internal/testbus 1.233s ok github.com/novox/mesh-controller/internal/token 1.014s ```
Author
Contributor

Merge check at d7b911fa

  • 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: TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose (0.62s)

Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-controller
  • tier 1: build-agent
  • tier 2: route-proxy
  • ace: receives build-agent, route-proxy
  • g14: receives build-agent
  • novox: receives mesh-controller, build-agent, route-proxy
  • shanks: receives build-agent
  • build-agent keeps data (ADR 0233): what it holds is backed up before it moves
  • route-proxy provides route: its consumers are sent again after it
  • route-proxy keeps data (ADR 0233): what it holds is backed up before it moves

Run by the build seat on g14 as build-1791484791914080976 (builds --log build-1791484791914080976).

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 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-08T18:28:48Z 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-08T18:28:48Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.033s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	181.348s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.011s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.018s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.013s
ok  	github.com/novox/mesh-controller/examples/route-proxy	3.113s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.046s
--- FAIL: TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose (0.62s)
    genesis_template_test.go:46: the installer's user list lets the controller publish [$JS.ACK.DEAD_LETTER_NOTICES.controller.> mesh.again.> mesh.events.dead.>], which it does not derive
FAIL
FAIL	github.com/novox/mesh-controller/internal/broker	1.444s
ok  	github.com/novox/mesh-controller/internal/builder	1.834s
ok  	github.com/novox/mesh-controller/internal/catalogue	3.931s
ok  	github.com/novox/mesh-controller/internal/conditions	2.118s
ok  	github.com/novox/mesh-controller/internal/envfile	1.025s
ok  	github.com/novox/mesh-controller/internal/facts	1.025s
ok  	github.com/novox/mesh-controller/internal/identity	4.084s
ok  	github.com/novox/mesh-controller/internal/inventory	73.131s
ok  	github.com/novox/mesh-controller/internal/lease	17.690s
ok  	github.com/novox/mesh-controller/internal/licences	3.702s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.011s
ok  	github.com/novox/mesh-controller/internal/link	43.782s
ok  	github.com/novox/mesh-controller/internal/lint	1.870s
ok  	github.com/novox/mesh-controller/internal/outward	1.038s
ok  	github.com/novox/mesh-controller/internal/overlay	1.025s
ok  	github.com/novox/mesh-controller/internal/secrets	1.409s
ok  	github.com/novox/mesh-controller/internal/store	3.166s
ok  	github.com/novox/mesh-controller/internal/testbus	1.170s
ok  	github.com/novox/mesh-controller/internal/token	1.015s
FAIL
**Merge check** at `d7b911fa` - `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: TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose (0.62s) **Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: mesh-controller - tier 1: build-agent - tier 2: route-proxy - ace: receives build-agent, route-proxy - g14: receives build-agent - novox: receives mesh-controller, build-agent, route-proxy - shanks: receives build-agent - build-agent keeps data (ADR 0233): what it holds is backed up before it moves - route-proxy provides route: its consumers are sent again after it - route-proxy keeps data (ADR 0233): what it holds is backed up before it moves Run by the build seat on g14 as `build-1791484791914080976` (`builds --log build-1791484791914080976`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 51 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-08T18:28:48Z 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-08T18:28:48Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.033s ok github.com/novox/mesh-controller/cmd/mesh-controller 181.348s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.011s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.018s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.013s ok github.com/novox/mesh-controller/examples/route-proxy 3.113s ok github.com/novox/mesh-controller/internal/artifacts 1.046s --- FAIL: TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose (0.62s) genesis_template_test.go:46: the installer's user list lets the controller publish [$JS.ACK.DEAD_LETTER_NOTICES.controller.> mesh.again.> mesh.events.dead.>], which it does not derive FAIL FAIL github.com/novox/mesh-controller/internal/broker 1.444s ok github.com/novox/mesh-controller/internal/builder 1.834s ok github.com/novox/mesh-controller/internal/catalogue 3.931s ok github.com/novox/mesh-controller/internal/conditions 2.118s ok github.com/novox/mesh-controller/internal/envfile 1.025s ok github.com/novox/mesh-controller/internal/facts 1.025s ok github.com/novox/mesh-controller/internal/identity 4.084s ok github.com/novox/mesh-controller/internal/inventory 73.131s ok github.com/novox/mesh-controller/internal/lease 17.690s ok github.com/novox/mesh-controller/internal/licences 3.702s ok github.com/novox/mesh-controller/internal/licences/adapters 1.011s ok github.com/novox/mesh-controller/internal/link 43.782s ok github.com/novox/mesh-controller/internal/lint 1.870s ok github.com/novox/mesh-controller/internal/outward 1.038s ok github.com/novox/mesh-controller/internal/overlay 1.025s ok github.com/novox/mesh-controller/internal/secrets 1.409s ok github.com/novox/mesh-controller/internal/store 3.166s ok github.com/novox/mesh-controller/internal/testbus 1.170s ok github.com/novox/mesh-controller/internal/token 1.015s FAIL ```
Author
Contributor

Merge check at 0df02f20

  • 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: TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose (0.74s)

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 51 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-08T18:48:48Z 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-08T18:48:48Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.035s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	186.176s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.042s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.054s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.046s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.188s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.088s
--- FAIL: TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose (0.74s)
    genesis_template_test.go:46: the installer's user list lets the controller publish [$JS.ACK.DEAD_LETTER_NOTICES.controller.> mesh.again.> mesh.events.dead.>], which it does not derive
FAIL
FAIL	github.com/novox/mesh-controller/internal/broker	1.622s
ok  	github.com/novox/mesh-controller/internal/builder	1.923s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.796s
ok  	github.com/novox/mesh-controller/internal/conditions	2.221s
ok  	github.com/novox/mesh-controller/internal/envfile	1.056s
ok  	github.com/novox/mesh-controller/internal/facts	1.064s
ok  	github.com/novox/mesh-controller/internal/identity	4.713s
ok  	github.com/novox/mesh-controller/internal/inventory	85.065s
ok  	github.com/novox/mesh-controller/internal/lease	17.696s
ok  	github.com/novox/mesh-controller/internal/licences	4.292s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.050s
ok  	github.com/novox/mesh-controller/internal/link	46.421s
ok  	github.com/novox/mesh-controller/internal/lint	2.113s
ok  	github.com/novox/mesh-controller/internal/outward	1.084s
ok  	github.com/novox/mesh-controller/internal/overlay	1.075s
ok  	github.com/novox/mesh-controller/internal/secrets	1.550s
ok  	github.com/novox/mesh-controller/internal/store	3.500s
ok  	github.com/novox/mesh-controller/internal/testbus	1.251s
ok  	github.com/novox/mesh-controller/internal/token	1.014s
FAIL
**Merge check** at `0df02f20` - `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: TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose (0.74s) **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-1791485616650385069` (`builds --log build-1791485616650385069`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 51 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-08T18:48:48Z 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-08T18:48:48Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.035s ok github.com/novox/mesh-controller/cmd/mesh-controller 186.176s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.042s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.054s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.046s ok github.com/novox/mesh-controller/examples/route-proxy 1.188s ok github.com/novox/mesh-controller/internal/artifacts 1.088s --- FAIL: TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose (0.74s) genesis_template_test.go:46: the installer's user list lets the controller publish [$JS.ACK.DEAD_LETTER_NOTICES.controller.> mesh.again.> mesh.events.dead.>], which it does not derive FAIL FAIL github.com/novox/mesh-controller/internal/broker 1.622s ok github.com/novox/mesh-controller/internal/builder 1.923s ok github.com/novox/mesh-controller/internal/catalogue 4.796s ok github.com/novox/mesh-controller/internal/conditions 2.221s ok github.com/novox/mesh-controller/internal/envfile 1.056s ok github.com/novox/mesh-controller/internal/facts 1.064s ok github.com/novox/mesh-controller/internal/identity 4.713s ok github.com/novox/mesh-controller/internal/inventory 85.065s ok github.com/novox/mesh-controller/internal/lease 17.696s ok github.com/novox/mesh-controller/internal/licences 4.292s ok github.com/novox/mesh-controller/internal/licences/adapters 1.050s ok github.com/novox/mesh-controller/internal/link 46.421s ok github.com/novox/mesh-controller/internal/lint 2.113s ok github.com/novox/mesh-controller/internal/outward 1.084s ok github.com/novox/mesh-controller/internal/overlay 1.075s ok github.com/novox/mesh-controller/internal/secrets 1.550s ok github.com/novox/mesh-controller/internal/store 3.500s ok github.com/novox/mesh-controller/internal/testbus 1.251s ok github.com/novox/mesh-controller/internal/token 1.014s FAIL ```
jschoubben force-pushed feat/a-node-names-the-account-its-agents-run-as from 0df02f20e1 to 874a2670fa 2026-10-08 19:08:40 +00:00 Compare
Author
Contributor

Merge check at 874a2670

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-08T19:03:27Z 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-08T19:03:27Z

modules the change moves:
  - mesh-controller (changed)

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.036s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	165.242s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.014s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.017s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.013s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.114s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.037s
ok  	github.com/novox/mesh-controller/internal/broker	2.505s
ok  	github.com/novox/mesh-controller/internal/builder	1.941s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.094s
ok  	github.com/novox/mesh-controller/internal/conditions	2.192s
ok  	github.com/novox/mesh-controller/internal/envfile	1.058s
ok  	github.com/novox/mesh-controller/internal/facts	1.060s
ok  	github.com/novox/mesh-controller/internal/identity	4.176s
ok  	github.com/novox/mesh-controller/internal/inventory	74.161s
ok  	github.com/novox/mesh-controller/internal/lease	17.685s
ok  	github.com/novox/mesh-controller/internal/licences	3.819s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.052s
ok  	github.com/novox/mesh-controller/internal/link	51.543s
ok  	github.com/novox/mesh-controller/internal/lint	1.989s
ok  	github.com/novox/mesh-controller/internal/outward	1.105s
ok  	github.com/novox/mesh-controller/internal/overlay	1.068s
ok  	github.com/novox/mesh-controller/internal/secrets	1.453s
ok  	github.com/novox/mesh-controller/internal/store	3.299s
ok  	github.com/novox/mesh-controller/internal/testbus	1.219s
ok  	github.com/novox/mesh-controller/internal/token	1.016s
**Merge check** at `874a2670` - `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-1791486525309422142` (`builds --log build-1791486525309422142`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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 1 module(s) changed against 4 machine(s), as the snapshot of 2026-10-08T19:03:27Z 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-08T19:03:27Z modules the change moves: - mesh-controller (changed) machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.036s ok github.com/novox/mesh-controller/cmd/mesh-controller 165.242s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.014s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.017s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.013s ok github.com/novox/mesh-controller/examples/route-proxy 1.114s ok github.com/novox/mesh-controller/internal/artifacts 1.037s ok github.com/novox/mesh-controller/internal/broker 2.505s ok github.com/novox/mesh-controller/internal/builder 1.941s ok github.com/novox/mesh-controller/internal/catalogue 4.094s ok github.com/novox/mesh-controller/internal/conditions 2.192s ok github.com/novox/mesh-controller/internal/envfile 1.058s ok github.com/novox/mesh-controller/internal/facts 1.060s ok github.com/novox/mesh-controller/internal/identity 4.176s ok github.com/novox/mesh-controller/internal/inventory 74.161s ok github.com/novox/mesh-controller/internal/lease 17.685s ok github.com/novox/mesh-controller/internal/licences 3.819s ok github.com/novox/mesh-controller/internal/licences/adapters 1.052s ok github.com/novox/mesh-controller/internal/link 51.543s ok github.com/novox/mesh-controller/internal/lint 1.989s ok github.com/novox/mesh-controller/internal/outward 1.105s ok github.com/novox/mesh-controller/internal/overlay 1.068s ok github.com/novox/mesh-controller/internal/secrets 1.453s ok github.com/novox/mesh-controller/internal/store 3.299s ok github.com/novox/mesh-controller/internal/testbus 1.219s ok github.com/novox/mesh-controller/internal/token 1.016s ```
Author
Contributor

Merge check at 10bbc591

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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-08T19:18:42Z 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-08T19:18:42Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.048s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	210.263s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.015s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.027s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.017s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.126s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.055s
ok  	github.com/novox/mesh-controller/internal/broker	2.791s
ok  	github.com/novox/mesh-controller/internal/builder	2.206s
ok  	github.com/novox/mesh-controller/internal/catalogue	5.357s
ok  	github.com/novox/mesh-controller/internal/conditions	2.214s
ok  	github.com/novox/mesh-controller/internal/envfile	1.031s
ok  	github.com/novox/mesh-controller/internal/facts	1.031s
ok  	github.com/novox/mesh-controller/internal/identity	5.138s
ok  	github.com/novox/mesh-controller/internal/inventory	93.983s
ok  	github.com/novox/mesh-controller/internal/lease	17.689s
ok  	github.com/novox/mesh-controller/internal/licences	4.648s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.015s
ok  	github.com/novox/mesh-controller/internal/link	55.165s
ok  	github.com/novox/mesh-controller/internal/lint	2.209s
ok  	github.com/novox/mesh-controller/internal/outward	1.040s
ok  	github.com/novox/mesh-controller/internal/overlay	1.030s
ok  	github.com/novox/mesh-controller/internal/secrets	1.499s
ok  	github.com/novox/mesh-controller/internal/store	3.489s
ok  	github.com/novox/mesh-controller/internal/testbus	1.199s
ok  	github.com/novox/mesh-controller/internal/token	1.019s
**Merge check** at `10bbc591` - `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 novox as `build-1791487322812336862` (`builds --log build-1791487322812336862`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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-08T19:18:42Z 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-08T19:18:42Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.048s ok github.com/novox/mesh-controller/cmd/mesh-controller 210.263s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.015s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.027s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.017s ok github.com/novox/mesh-controller/examples/route-proxy 1.126s ok github.com/novox/mesh-controller/internal/artifacts 1.055s ok github.com/novox/mesh-controller/internal/broker 2.791s ok github.com/novox/mesh-controller/internal/builder 2.206s ok github.com/novox/mesh-controller/internal/catalogue 5.357s ok github.com/novox/mesh-controller/internal/conditions 2.214s ok github.com/novox/mesh-controller/internal/envfile 1.031s ok github.com/novox/mesh-controller/internal/facts 1.031s ok github.com/novox/mesh-controller/internal/identity 5.138s ok github.com/novox/mesh-controller/internal/inventory 93.983s ok github.com/novox/mesh-controller/internal/lease 17.689s ok github.com/novox/mesh-controller/internal/licences 4.648s ok github.com/novox/mesh-controller/internal/licences/adapters 1.015s ok github.com/novox/mesh-controller/internal/link 55.165s ok github.com/novox/mesh-controller/internal/lint 2.209s ok github.com/novox/mesh-controller/internal/outward 1.040s ok github.com/novox/mesh-controller/internal/overlay 1.030s ok github.com/novox/mesh-controller/internal/secrets 1.499s ok github.com/novox/mesh-controller/internal/store 3.489s ok github.com/novox/mesh-controller/internal/testbus 1.199s ok github.com/novox/mesh-controller/internal/token 1.019s ```
Author
Contributor

Merge check at 10d8a9be

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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-08T19:28:42Z 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-08T19:28:42Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.032s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	162.784s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.014s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.019s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.014s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.126s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.037s
ok  	github.com/novox/mesh-controller/internal/broker	2.463s
ok  	github.com/novox/mesh-controller/internal/builder	1.792s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.160s
ok  	github.com/novox/mesh-controller/internal/conditions	2.195s
ok  	github.com/novox/mesh-controller/internal/envfile	1.068s
ok  	github.com/novox/mesh-controller/internal/facts	1.070s
ok  	github.com/novox/mesh-controller/internal/identity	4.114s
ok  	github.com/novox/mesh-controller/internal/inventory	71.838s
ok  	github.com/novox/mesh-controller/internal/lease	17.696s
ok  	github.com/novox/mesh-controller/internal/licences	3.740s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.064s
ok  	github.com/novox/mesh-controller/internal/link	50.849s
ok  	github.com/novox/mesh-controller/internal/lint	1.952s
ok  	github.com/novox/mesh-controller/internal/outward	1.091s
ok  	github.com/novox/mesh-controller/internal/overlay	1.079s
ok  	github.com/novox/mesh-controller/internal/secrets	1.445s
ok  	github.com/novox/mesh-controller/internal/store	3.296s
ok  	github.com/novox/mesh-controller/internal/testbus	1.235s
ok  	github.com/novox/mesh-controller/internal/token	1.016s
**Merge check** at `10d8a9be` - `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-1791487935528407222` (`builds --log build-1791487935528407222`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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-08T19:28:42Z 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-08T19:28:42Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.032s ok github.com/novox/mesh-controller/cmd/mesh-controller 162.784s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.014s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.019s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.014s ok github.com/novox/mesh-controller/examples/route-proxy 1.126s ok github.com/novox/mesh-controller/internal/artifacts 1.037s ok github.com/novox/mesh-controller/internal/broker 2.463s ok github.com/novox/mesh-controller/internal/builder 1.792s ok github.com/novox/mesh-controller/internal/catalogue 4.160s ok github.com/novox/mesh-controller/internal/conditions 2.195s ok github.com/novox/mesh-controller/internal/envfile 1.068s ok github.com/novox/mesh-controller/internal/facts 1.070s ok github.com/novox/mesh-controller/internal/identity 4.114s ok github.com/novox/mesh-controller/internal/inventory 71.838s ok github.com/novox/mesh-controller/internal/lease 17.696s ok github.com/novox/mesh-controller/internal/licences 3.740s ok github.com/novox/mesh-controller/internal/licences/adapters 1.064s ok github.com/novox/mesh-controller/internal/link 50.849s ok github.com/novox/mesh-controller/internal/lint 1.952s ok github.com/novox/mesh-controller/internal/outward 1.091s ok github.com/novox/mesh-controller/internal/overlay 1.079s ok github.com/novox/mesh-controller/internal/secrets 1.445s ok github.com/novox/mesh-controller/internal/store 3.296s ok github.com/novox/mesh-controller/internal/testbus 1.235s ok github.com/novox/mesh-controller/internal/token 1.016s ```
jschoubben force-pushed feat/a-node-names-the-account-its-agents-run-as from 10d8a9be9b to 1d5a523a53 2026-10-08 19:54:34 +00:00 Compare
Author
Contributor

Merge check at 1d5a523a

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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-08T19:50:18Z 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-08T19:50:18Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.034s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	169.936s
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.166s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.092s
ok  	github.com/novox/mesh-controller/internal/broker	2.533s
ok  	github.com/novox/mesh-controller/internal/builder	1.842s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.147s
ok  	github.com/novox/mesh-controller/internal/conditions	2.194s
ok  	github.com/novox/mesh-controller/internal/envfile	1.067s
ok  	github.com/novox/mesh-controller/internal/facts	1.068s
ok  	github.com/novox/mesh-controller/internal/identity	4.077s
ok  	github.com/novox/mesh-controller/internal/inventory	71.974s
ok  	github.com/novox/mesh-controller/internal/lease	17.708s
ok  	github.com/novox/mesh-controller/internal/licences	3.716s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.067s
ok  	github.com/novox/mesh-controller/internal/link	50.948s
ok  	github.com/novox/mesh-controller/internal/lint	2.012s
ok  	github.com/novox/mesh-controller/internal/outward	1.136s
ok  	github.com/novox/mesh-controller/internal/overlay	1.117s
ok  	github.com/novox/mesh-controller/internal/secrets	1.504s
ok  	github.com/novox/mesh-controller/internal/store	3.320s
ok  	github.com/novox/mesh-controller/internal/testbus	1.248s
ok  	github.com/novox/mesh-controller/internal/token	1.015s
**Merge check** at `1d5a523a` - `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-1791489299966716399` (`builds --log build-1791489299966716399`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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-08T19:50:18Z 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-08T19:50:18Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.034s ok github.com/novox/mesh-controller/cmd/mesh-controller 169.936s 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.166s ok github.com/novox/mesh-controller/internal/artifacts 1.092s ok github.com/novox/mesh-controller/internal/broker 2.533s ok github.com/novox/mesh-controller/internal/builder 1.842s ok github.com/novox/mesh-controller/internal/catalogue 4.147s ok github.com/novox/mesh-controller/internal/conditions 2.194s ok github.com/novox/mesh-controller/internal/envfile 1.067s ok github.com/novox/mesh-controller/internal/facts 1.068s ok github.com/novox/mesh-controller/internal/identity 4.077s ok github.com/novox/mesh-controller/internal/inventory 71.974s ok github.com/novox/mesh-controller/internal/lease 17.708s ok github.com/novox/mesh-controller/internal/licences 3.716s ok github.com/novox/mesh-controller/internal/licences/adapters 1.067s ok github.com/novox/mesh-controller/internal/link 50.948s ok github.com/novox/mesh-controller/internal/lint 2.012s ok github.com/novox/mesh-controller/internal/outward 1.136s ok github.com/novox/mesh-controller/internal/overlay 1.117s ok github.com/novox/mesh-controller/internal/secrets 1.504s ok github.com/novox/mesh-controller/internal/store 3.320s ok github.com/novox/mesh-controller/internal/testbus 1.248s ok github.com/novox/mesh-controller/internal/token 1.015s ```
Author
Contributor

Merge check at 9b00d2dd

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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-08T19:50:18Z 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-08T19:50:18Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.038s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	194.061s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.016s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.027s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.013s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.205s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.048s
ok  	github.com/novox/mesh-controller/internal/broker	3.117s
ok  	github.com/novox/mesh-controller/internal/builder	2.184s
ok  	github.com/novox/mesh-controller/internal/catalogue	5.750s
ok  	github.com/novox/mesh-controller/internal/conditions	2.209s
ok  	github.com/novox/mesh-controller/internal/envfile	1.035s
ok  	github.com/novox/mesh-controller/internal/facts	1.042s
ok  	github.com/novox/mesh-controller/internal/identity	5.718s
ok  	github.com/novox/mesh-controller/internal/inventory	76.462s
ok  	github.com/novox/mesh-controller/internal/lease	17.738s
ok  	github.com/novox/mesh-controller/internal/licences	5.257s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.030s
ok  	github.com/novox/mesh-controller/internal/link	51.552s
ok  	github.com/novox/mesh-controller/internal/lint	2.817s
ok  	github.com/novox/mesh-controller/internal/outward	1.081s
ok  	github.com/novox/mesh-controller/internal/overlay	1.063s
ok  	github.com/novox/mesh-controller/internal/secrets	1.822s
ok  	github.com/novox/mesh-controller/internal/store	3.959s
ok  	github.com/novox/mesh-controller/internal/testbus	1.205s
ok  	github.com/novox/mesh-controller/internal/token	1.036s
**Merge check** at `9b00d2dd` - `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 g14 as `build-1791489360900150520` (`builds --log build-1791489360900150520`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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-08T19:50:18Z 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-08T19:50:18Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.038s ok github.com/novox/mesh-controller/cmd/mesh-controller 194.061s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.016s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.027s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.013s ok github.com/novox/mesh-controller/examples/route-proxy 1.205s ok github.com/novox/mesh-controller/internal/artifacts 1.048s ok github.com/novox/mesh-controller/internal/broker 3.117s ok github.com/novox/mesh-controller/internal/builder 2.184s ok github.com/novox/mesh-controller/internal/catalogue 5.750s ok github.com/novox/mesh-controller/internal/conditions 2.209s ok github.com/novox/mesh-controller/internal/envfile 1.035s ok github.com/novox/mesh-controller/internal/facts 1.042s ok github.com/novox/mesh-controller/internal/identity 5.718s ok github.com/novox/mesh-controller/internal/inventory 76.462s ok github.com/novox/mesh-controller/internal/lease 17.738s ok github.com/novox/mesh-controller/internal/licences 5.257s ok github.com/novox/mesh-controller/internal/licences/adapters 1.030s ok github.com/novox/mesh-controller/internal/link 51.552s ok github.com/novox/mesh-controller/internal/lint 2.817s ok github.com/novox/mesh-controller/internal/outward 1.081s ok github.com/novox/mesh-controller/internal/overlay 1.063s ok github.com/novox/mesh-controller/internal/secrets 1.822s ok github.com/novox/mesh-controller/internal/store 3.959s ok github.com/novox/mesh-controller/internal/testbus 1.205s ok github.com/novox/mesh-controller/internal/token 1.036s ```
jschoubben added 9 commits 2026-10-09 09:07:29 +00:00
On the control node every agent ran as the operator's account, which has
passwordless sudo, so an agent could become root without a person (hq ADR
0266). A node now names an agent account at the controller's terminal only;
the agent's module declares it never to become root, the node-engine judges
that, and the self-check (DA) raises agent-can-become-root while it does not
hold, so ADR 0259's router can rest on it.
The generic command verb ran node account and node agent-account, so an agent
could name itself the operator account and have the next send grant it root
(hq ADR 0266 review). Refuse every node subcommand but list and show through
any verb; refuse the operator account as the agent account in both
directions and well-known service accounts as an agent account; and count a
verdict heard more than 15 minutes ago as not judged, so stopping the
node-engine cannot freeze a healthy one. Re-pin mesh-host to its review head.
The validator is unchanged; the pin follows the mesh-host pull request's head
so the two are judged together (hq ADR 0266).
Review found a chain through the command verb: set the operator's key to one
the caller holds, rotate secrets so they are sealed to it too, read the sealed
copies, open them. Whoever may call a verb includes agents (hq ADR 0266), so
command now runs an allow list of reading forms, and operator, identity,
token, broker, api, licence and every secret command but rotate are refused
through any verb.
Keeps the controller judged together with mesh-host's pull request (hq ADR
0266); the validator and the wire are unchanged.
A flag before the subcommand (plans --json go <id>) still acts, so the
generic command verb judges every word of a plans line, retry included
(hq ADR 0266). The rest of this change, places and accesses at the
terminal and one line per setting, is issue 339's on main (#168, #170,
#172), which now does it for every process a verb runs; this branch's
--through-verb flag and its copy of those rules go.
The validator and the wire are unchanged; the pin follows mesh-host's pull
request so the two are judged together (hq ADR 0266).
The engine's pull request now keeps main's placement guard (issue 339) and adds
only the agent-home rule; the pin follows it so the two are judged together
(hq ADR 0266). Move it to the engine's merged commit before this merges.
Fill machine facts in a user's home, so an agent account named with a home is made there
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
926dbd7a97
node agent-account <node> <account> [home] stored a home that nothing used: the
account was created at /home/<account> while its files went to the named home
(hq ADR 0266). The engine reads a user's home only when it creates the account,
so an existing one is never moved.
jschoubben force-pushed feat/a-node-names-the-account-its-agents-run-as from 9b00d2ddf7 to 926dbd7a97 2026-10-09 09:07:29 +00:00 Compare
Author
Contributor

Rebased onto main on 2026-10-09 (head 926dbd7).

  • Dropped, because main does it better: places and accesses at the terminal, and the newline refusal in settings. Issue 339 and 340 cover these on main (#168, #170, #172) for every process a verb runs. This branch's --through-verb flag is gone.
  • Kept: a plans line that acts is refused wherever its subcommand stands, retry included (plans --json go p is refused).
  • Combined: main's refusal of settings set|clear through command stays first, and is now a terminal-held refusal. The read-only allow list follows it.
  • New: a user resource's home gets the machine facts too. Before this, node agent-account <node> <account> <home> stored a home that nothing used.
  • Pin: mesh-host is pinned at #61's rebased head b28d7bb, and vendored, with only that pin's two lines added to go.sum. Before this merges, move the pin to mesh-host's merged commit.
  • sh merge-check.sh passed on the rebased head: race detector, the whole suite, against a local PostgreSQL 18.
**Rebased onto main on 2026-10-09 (head 926dbd7).** - **Dropped, because main does it better:** places and accesses at the terminal, and the newline refusal in settings. Issue 339 and 340 cover these on main (#168, #170, #172) for every process a verb runs. This branch's `--through-verb` flag is gone. - **Kept:** a `plans` line that acts is refused wherever its subcommand stands, `retry` included (`plans --json go p` is refused). - **Combined:** main's refusal of `settings set|clear` through `command` stays first, and is now a terminal-held refusal. The read-only allow list follows it. - **New:** a user resource's `home` gets the machine facts too. Before this, `node agent-account <node> <account> <home>` stored a home that nothing used. - **Pin:** mesh-host is pinned at #61's rebased head b28d7bb, and vendored, with only that pin's two lines added to go.sum. Before this merges, move the pin to mesh-host's merged commit. - `sh merge-check.sh` passed on the rebased head: race detector, the whole suite, against a local PostgreSQL 18.
Author
Contributor

Merge check at 926dbd7a

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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
files asking for a setting without saying whether it is trusted: 0
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-09T08:07: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-09T08:07:39Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.035s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	199.337s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.028s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.043s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.029s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.189s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.075s
ok  	github.com/novox/mesh-controller/internal/broker	2.795s
ok  	github.com/novox/mesh-controller/internal/builder	1.928s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.995s
ok  	github.com/novox/mesh-controller/internal/conditions	2.482s
ok  	github.com/novox/mesh-controller/internal/envfile	1.047s
ok  	github.com/novox/mesh-controller/internal/facts	1.045s
ok  	github.com/novox/mesh-controller/internal/identity	4.773s
ok  	github.com/novox/mesh-controller/internal/inventory	85.275s
ok  	github.com/novox/mesh-controller/internal/lease	17.696s
ok  	github.com/novox/mesh-controller/internal/licences	4.337s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.038s
ok  	github.com/novox/mesh-controller/internal/link	53.287s
ok  	github.com/novox/mesh-controller/internal/lint	2.186s
ok  	github.com/novox/mesh-controller/internal/outward	1.077s
ok  	github.com/novox/mesh-controller/internal/overlay	1.067s
ok  	github.com/novox/mesh-controller/internal/secrets	1.538s
ok  	github.com/novox/mesh-controller/internal/store	3.462s
ok  	github.com/novox/mesh-controller/internal/testbus	1.230s
ok  	github.com/novox/mesh-controller/internal/token	1.016s
**Merge check** at `926dbd7a` - `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-1791536859913357524` (`builds --log build-1791536859913357524`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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 files asking for a setting without saying whether it is trusted: 0 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-09T08:07: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-09T08:07:39Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.035s ok github.com/novox/mesh-controller/cmd/mesh-controller 199.337s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.028s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.043s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.029s ok github.com/novox/mesh-controller/examples/route-proxy 1.189s ok github.com/novox/mesh-controller/internal/artifacts 1.075s ok github.com/novox/mesh-controller/internal/broker 2.795s ok github.com/novox/mesh-controller/internal/builder 1.928s ok github.com/novox/mesh-controller/internal/catalogue 4.995s ok github.com/novox/mesh-controller/internal/conditions 2.482s ok github.com/novox/mesh-controller/internal/envfile 1.047s ok github.com/novox/mesh-controller/internal/facts 1.045s ok github.com/novox/mesh-controller/internal/identity 4.773s ok github.com/novox/mesh-controller/internal/inventory 85.275s ok github.com/novox/mesh-controller/internal/lease 17.696s ok github.com/novox/mesh-controller/internal/licences 4.337s ok github.com/novox/mesh-controller/internal/licences/adapters 1.038s ok github.com/novox/mesh-controller/internal/link 53.287s ok github.com/novox/mesh-controller/internal/lint 2.186s ok github.com/novox/mesh-controller/internal/outward 1.077s ok github.com/novox/mesh-controller/internal/overlay 1.067s ok github.com/novox/mesh-controller/internal/secrets 1.538s ok github.com/novox/mesh-controller/internal/store 3.462s ok github.com/novox/mesh-controller/internal/testbus 1.230s ok github.com/novox/mesh-controller/internal/token 1.016s ```
jschoubben added 1 commit 2026-10-09 10:12:36 +00:00
Pin the node-engine at the head whose setuid search runs to its own bound
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
d951f22c04
mesh-host #61 dropped the two-minute limit inside the search's 15-minute
bound, asks pacman once, and calls a walk with errors incomplete; the pin
follows it so the two are judged together (hq ADR 0266). Move it to the
engine's merged commit before this merges.
Author
Contributor

Merge check at d951f22c

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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
files asking for a setting without saying whether it is trusted: 0
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-09T08:07: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-09T08:07:39Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.037s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	197.194s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.035s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.049s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.039s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.235s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.078s
ok  	github.com/novox/mesh-controller/internal/broker	2.729s
ok  	github.com/novox/mesh-controller/internal/builder	1.927s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.985s
ok  	github.com/novox/mesh-controller/internal/conditions	2.517s
ok  	github.com/novox/mesh-controller/internal/envfile	1.046s
ok  	github.com/novox/mesh-controller/internal/facts	1.046s
ok  	github.com/novox/mesh-controller/internal/identity	4.714s
ok  	github.com/novox/mesh-controller/internal/inventory	85.135s
ok  	github.com/novox/mesh-controller/internal/lease	17.704s
ok  	github.com/novox/mesh-controller/internal/licences	4.278s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.037s
ok  	github.com/novox/mesh-controller/internal/link	53.296s
ok  	github.com/novox/mesh-controller/internal/lint	2.181s
ok  	github.com/novox/mesh-controller/internal/outward	1.072s
ok  	github.com/novox/mesh-controller/internal/overlay	1.063s
ok  	github.com/novox/mesh-controller/internal/secrets	1.523s
ok  	github.com/novox/mesh-controller/internal/store	3.461s
ok  	github.com/novox/mesh-controller/internal/testbus	1.188s
ok  	github.com/novox/mesh-controller/internal/token	1.016s
**Merge check** at `d951f22c` - `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-1791540770800074701` (`builds --log build-1791540770800074701`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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 files asking for a setting without saying whether it is trusted: 0 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-09T08:07: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-09T08:07:39Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.037s ok github.com/novox/mesh-controller/cmd/mesh-controller 197.194s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.035s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.049s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.039s ok github.com/novox/mesh-controller/examples/route-proxy 1.235s ok github.com/novox/mesh-controller/internal/artifacts 1.078s ok github.com/novox/mesh-controller/internal/broker 2.729s ok github.com/novox/mesh-controller/internal/builder 1.927s ok github.com/novox/mesh-controller/internal/catalogue 4.985s ok github.com/novox/mesh-controller/internal/conditions 2.517s ok github.com/novox/mesh-controller/internal/envfile 1.046s ok github.com/novox/mesh-controller/internal/facts 1.046s ok github.com/novox/mesh-controller/internal/identity 4.714s ok github.com/novox/mesh-controller/internal/inventory 85.135s ok github.com/novox/mesh-controller/internal/lease 17.704s ok github.com/novox/mesh-controller/internal/licences 4.278s ok github.com/novox/mesh-controller/internal/licences/adapters 1.037s ok github.com/novox/mesh-controller/internal/link 53.296s ok github.com/novox/mesh-controller/internal/lint 2.181s ok github.com/novox/mesh-controller/internal/outward 1.072s ok github.com/novox/mesh-controller/internal/overlay 1.063s ok github.com/novox/mesh-controller/internal/secrets 1.523s ok github.com/novox/mesh-controller/internal/store 3.461s ok github.com/novox/mesh-controller/internal/testbus 1.188s ok github.com/novox/mesh-controller/internal/token 1.016s ```
jschoubben added 1 commit 2026-10-09 10:37:14 +00:00
Pin the node-engine at #61's head, which reads the homes in one order
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer delivery to the same trunk took over its walk
e168b60159
Only the engine's own test changed; the pin follows the head so the two are
judged together (hq ADR 0266). Move it to the engine's merged commit before
this merges.
Author
Contributor

Merge check at e168b601

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

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 52 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
files asking for a setting without saying whether it is trusted: 0
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-09T08:07: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-09T08:07:39Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.031s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	193.726s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.023s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.029s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.025s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.164s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.058s
ok  	github.com/novox/mesh-controller/internal/broker	2.648s
ok  	github.com/novox/mesh-controller/internal/builder	2.259s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.534s
ok  	github.com/novox/mesh-controller/internal/conditions	2.375s
ok  	github.com/novox/mesh-controller/internal/envfile	1.032s
ok  	github.com/novox/mesh-controller/internal/facts	1.032s
ok  	github.com/novox/mesh-controller/internal/identity	4.952s
ok  	github.com/novox/mesh-controller/internal/inventory	81.932s
ok  	github.com/novox/mesh-controller/internal/lease	17.595s
ok  	github.com/novox/mesh-controller/internal/licences	4.722s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.008s
ok  	github.com/novox/mesh-controller/internal/link	52.800s
ok  	github.com/novox/mesh-controller/internal/lint	1.953s
ok  	github.com/novox/mesh-controller/internal/outward	1.035s
ok  	github.com/novox/mesh-controller/internal/overlay	1.026s
ok  	github.com/novox/mesh-controller/internal/secrets	1.455s
ok  	github.com/novox/mesh-controller/internal/store	3.516s
ok  	github.com/novox/mesh-controller/internal/testbus	1.173s
ok  	github.com/novox/mesh-controller/internal/token	1.015s
**Merge check** at `e168b601` - `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 g14 as `build-1791542265088884237` (`builds --log build-1791542265088884237`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 52 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 files asking for a setting without saying whether it is trusted: 0 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-09T08:07: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-09T08:07:39Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-delivery, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.031s ok github.com/novox/mesh-controller/cmd/mesh-controller 193.726s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.023s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.029s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.025s ok github.com/novox/mesh-controller/examples/route-proxy 1.164s ok github.com/novox/mesh-controller/internal/artifacts 1.058s ok github.com/novox/mesh-controller/internal/broker 2.648s ok github.com/novox/mesh-controller/internal/builder 2.259s ok github.com/novox/mesh-controller/internal/catalogue 4.534s ok github.com/novox/mesh-controller/internal/conditions 2.375s ok github.com/novox/mesh-controller/internal/envfile 1.032s ok github.com/novox/mesh-controller/internal/facts 1.032s ok github.com/novox/mesh-controller/internal/identity 4.952s ok github.com/novox/mesh-controller/internal/inventory 81.932s ok github.com/novox/mesh-controller/internal/lease 17.595s ok github.com/novox/mesh-controller/internal/licences 4.722s ok github.com/novox/mesh-controller/internal/licences/adapters 1.008s ok github.com/novox/mesh-controller/internal/link 52.800s ok github.com/novox/mesh-controller/internal/lint 1.953s ok github.com/novox/mesh-controller/internal/outward 1.035s ok github.com/novox/mesh-controller/internal/overlay 1.026s ok github.com/novox/mesh-controller/internal/secrets 1.455s ok github.com/novox/mesh-controller/internal/store 3.516s ok github.com/novox/mesh-controller/internal/testbus 1.173s ok github.com/novox/mesh-controller/internal/token 1.015s ```
mesh-admin merged commit 03dac87d3a into main 2026-10-09 10:56:04 +00:00
mesh-admin deleted branch feat/a-node-names-the-account-its-agents-run-as 2026-10-09 10:56:04 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#164