Make the login shell's execute optional, so a machine may withhold it (hq ADR 0268) #169

Merged
mesh-admin merged 1 commits from withhold-login-shell-execute into main 2026-10-08 22:52:29 +00:00
Contributor

Security, operator's decision of 2026-10-09. node-login-shell.execute runs any command as the operator account, which has passwordless sudo, so any caller of the mesh's tools is root on that node. The operator withholds it on the control-node now; the other nodes keep it until a call to it needs a person's approval (hq research 039, hq #233). Decision record: hq ADR 0268 (PR to follow, linked in a comment).

What changes

  • execute on node-login-shell is marked optional (ADR 0246's mark). A holder that does not serve it on a machine still holds the seat there, and is not judged silent (probe D3, holdingNeedsAnAnswer). The mark survives a seat row read back from the store (optionalAsCompiled).
  • The per-machine choice is the holder's: mesh-catalog's zsh setting execute (mesh-catalog PR, same branch name).
  • The loginShellVerbs comment, which sat above backupVerbs, is moved to its function.

Trade, said: the seat now has no required verb, so a holder's silence on the bus is no longer judged on any node, the three that still serve execute included.

Tests that failed on main first

  • internal/catalogue/login_shell_execute_test.go TestTheLoginShellsExecuteIsOptionalSoAMachineMayWithholdIt (compiled, and read back from a stored row): on main, execute is required.
  • cmd/mesh-controller/holders_silent_test.go TestALoginShellWithholdingExecuteIsNotSilent: on main, the holder was expected to answer.

sh merge-check.sh passes locally (gofmt, vet, the full suite under -race). The catalogue's merge check passes with both this controller and main's as MESH_GATE.

Merge order: either order composes. This first is better: with only the catalogue merged and the control-node's setting at withhold, the self-check would raise seat.node-login-shell.<control-node>.silent until this lands. Do not merge without review.

**Security, operator's decision of 2026-10-09.** `node-login-shell.execute` runs any command as the operator account, which has passwordless sudo, so any caller of the mesh's tools is root on that node. The operator withholds it on the control-node now; the other nodes keep it until a call to it needs a person's approval (hq research 039, hq #233). Decision record: hq ADR 0268 (PR to follow, linked in a comment). **What changes** - `execute` on `node-login-shell` is marked optional (ADR 0246's mark). A holder that does not serve it on a machine still holds the seat there, and is not judged silent (probe D3, `holdingNeedsAnAnswer`). The mark survives a seat row read back from the store (`optionalAsCompiled`). - The per-machine choice is the holder's: mesh-catalog's zsh setting `execute` (mesh-catalog PR, same branch name). - The `loginShellVerbs` comment, which sat above `backupVerbs`, is moved to its function. **Trade, said:** the seat now has no required verb, so a holder's silence on the bus is no longer judged on any node, the three that still serve `execute` included. **Tests that failed on main first** - `internal/catalogue/login_shell_execute_test.go` `TestTheLoginShellsExecuteIsOptionalSoAMachineMayWithholdIt` (compiled, and read back from a stored row): on main, `execute is required`. - `cmd/mesh-controller/holders_silent_test.go` `TestALoginShellWithholdingExecuteIsNotSilent`: on main, the holder was expected to answer. `sh merge-check.sh` passes locally (gofmt, vet, the full suite under -race). The catalogue's merge check passes with both this controller and main's as `MESH_GATE`. **Merge order:** either order composes. This first is better: with only the catalogue merged and the control-node's setting at `withhold`, the self-check would raise `seat.node-login-shell.<control-node>.silent` until this lands. Do not merge without review.
mesh-admin added 1 commit 2026-10-08 22:11:05 +00:00
Make the login shell's execute optional, so a machine may withhold it
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 delivered
mesh/delivery-group group withhold-login-shell-execute merged: every member is merged
2073bfe2e6
execute runs any command as the operator account, which can become root
without a person. The operator withholds it on the control-node until a
call needs a person's approval (hq ADR 0268); the holder withholds it per
machine through its own setting. With execute required, that holder could
not hold the seat there and would be judged silent. ADR 0246's optional
mark lets it hold the seat without serving the verb.
Author
Contributor

Delivery novox/mesh-controller@2073bfe2e618 — delivered since 2026-10-08T23:07:34Z

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

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

Group withhold-login-shell-execute, in order: novox/mesh-controller@2073bfe2e6 → novox/mesh-catalog@cfe1dffa45

Machines

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

Transitions

  • 2026-10-08 22:11 (new) → proposed (announced): novox/mesh-controller#169's head announced
  • 2026-10-08 22:15 proposed → checked (checked): the verdict names this commit
  • 2026-10-08 22:15 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-08 22:45 ready → proposed (recheck): checked at 22:15Z before #168 merged; check against today's main before merging
  • 2026-10-08 22:51 proposed → checked (checked): the verdict names this commit
  • 2026-10-08 22:51 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-08 22:52 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-08 22:52 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-08 23:07 delivering → delivered (done): its walk is done: every machine of its deploy plan passed, or was left as its policy says

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@2073bfe2e618` — **delivered** since 2026-10-08T23:07:34Z **Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: mesh-controller - tier 1: build-agent - tier 2: route-proxy - ace: receives build-agent, route-proxy - g14: receives build-agent - novox: receives mesh-controller, build-agent, route-proxy - shanks: receives build-agent - build-agent keeps data (ADR 0233): what it holds is backed up before it moves - route-proxy provides route: its consumers are sent again after it - route-proxy keeps data (ADR 0233): what it holds is backed up before it moves **Group** `withhold-login-shell-execute`, in order: novox/mesh-controller@2073bfe2e618 → novox/mesh-catalog@cfe1dffa4591 - novox/mesh-controller@2073bfe2e618 before novox/mesh-catalog@cfe1dffa4591: built by - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Machines** - mesh-controller on novox: passed — healthy 3 times over 3m39s - mesh-controller on the rest running it: sent - build-agent on ace: passed — healthy 3 times over 3m30s - build-agent on the rest running it: sent - route-proxy on ace: passed — healthy 3 times over 3m14s - route-proxy on the rest running it: sent **Transitions** - 2026-10-08 22:11 (new) → proposed (announced): novox/mesh-controller#169's head announced - 2026-10-08 22:15 proposed → checked (checked): the verdict names this commit - 2026-10-08 22:15 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-08 22:45 ready → proposed (recheck): checked at 22:15Z before #168 merged; check against today's main before merging - 2026-10-08 22:51 proposed → checked (checked): the verdict names this commit - 2026-10-08 22:51 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-08 22:52 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-08 22:52 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-08 23:07 delivering → delivered (done): its walk is done: every machine of its deploy plan passed, or was left as its policy says The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Author
Contributor

Merge check at 2073bfe2

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

--- 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-08T21:34:01Z 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-08T21:34:01Z

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	170.210s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.015s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.019s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.015s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.121s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.038s
ok  	github.com/novox/mesh-controller/internal/broker	2.649s
ok  	github.com/novox/mesh-controller/internal/builder	1.921s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.443s
ok  	github.com/novox/mesh-controller/internal/conditions	2.241s
ok  	github.com/novox/mesh-controller/internal/envfile	1.061s
ok  	github.com/novox/mesh-controller/internal/facts	1.087s
ok  	github.com/novox/mesh-controller/internal/identity	4.393s
ok  	github.com/novox/mesh-controller/internal/inventory	74.132s
ok  	github.com/novox/mesh-controller/internal/lease	17.735s
ok  	github.com/novox/mesh-controller/internal/licences	4.027s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.085s
ok  	github.com/novox/mesh-controller/internal/link	51.084s
ok  	github.com/novox/mesh-controller/internal/lint	2.048s
ok  	github.com/novox/mesh-controller/internal/outward	1.090s
ok  	github.com/novox/mesh-controller/internal/overlay	1.079s
ok  	github.com/novox/mesh-controller/internal/secrets	1.499s
ok  	github.com/novox/mesh-controller/internal/store	3.394s
ok  	github.com/novox/mesh-controller/internal/testbus	1.248s
ok  	github.com/novox/mesh-controller/internal/token	1.018s
**Merge check** at `2073bfe2` - `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-1791497468196657561` (`builds --log build-1791497468196657561`). ``` --- 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-08T21:34:01Z 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-08T21:34:01Z 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 170.210s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.015s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.019s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.015s ok github.com/novox/mesh-controller/examples/route-proxy 1.121s ok github.com/novox/mesh-controller/internal/artifacts 1.038s ok github.com/novox/mesh-controller/internal/broker 2.649s ok github.com/novox/mesh-controller/internal/builder 1.921s ok github.com/novox/mesh-controller/internal/catalogue 4.443s ok github.com/novox/mesh-controller/internal/conditions 2.241s ok github.com/novox/mesh-controller/internal/envfile 1.061s ok github.com/novox/mesh-controller/internal/facts 1.087s ok github.com/novox/mesh-controller/internal/identity 4.393s ok github.com/novox/mesh-controller/internal/inventory 74.132s ok github.com/novox/mesh-controller/internal/lease 17.735s ok github.com/novox/mesh-controller/internal/licences 4.027s ok github.com/novox/mesh-controller/internal/licences/adapters 1.085s ok github.com/novox/mesh-controller/internal/link 51.084s ok github.com/novox/mesh-controller/internal/lint 2.048s ok github.com/novox/mesh-controller/internal/outward 1.090s ok github.com/novox/mesh-controller/internal/overlay 1.079s ok github.com/novox/mesh-controller/internal/secrets 1.499s ok github.com/novox/mesh-controller/internal/store 3.394s ok github.com/novox/mesh-controller/internal/testbus 1.248s ok github.com/novox/mesh-controller/internal/token 1.018s ```
Author
Contributor

Merge check at 2073bfe2

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

--- 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-08T22:41:56Z 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-08T22:41:56Z

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.045s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	211.628s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.019s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.029s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.020s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.152s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.054s
ok  	github.com/novox/mesh-controller/internal/broker	3.030s
ok  	github.com/novox/mesh-controller/internal/builder	3.607s
ok  	github.com/novox/mesh-controller/internal/catalogue	5.641s
ok  	github.com/novox/mesh-controller/internal/conditions	2.337s
ok  	github.com/novox/mesh-controller/internal/envfile	1.038s
ok  	github.com/novox/mesh-controller/internal/facts	1.038s
ok  	github.com/novox/mesh-controller/internal/identity	5.335s
ok  	github.com/novox/mesh-controller/internal/inventory	92.385s
ok  	github.com/novox/mesh-controller/internal/lease	17.721s
ok  	github.com/novox/mesh-controller/internal/licences	4.876s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.012s
ok  	github.com/novox/mesh-controller/internal/link	55.607s
ok  	github.com/novox/mesh-controller/internal/lint	2.447s
ok  	github.com/novox/mesh-controller/internal/outward	1.037s
ok  	github.com/novox/mesh-controller/internal/overlay	1.032s
ok  	github.com/novox/mesh-controller/internal/secrets	1.509s
ok  	github.com/novox/mesh-controller/internal/store	3.427s
ok  	github.com/novox/mesh-controller/internal/testbus	1.213s
ok  	github.com/novox/mesh-controller/internal/token	1.017s
**Merge check** at `2073bfe2` - `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-1791499521345529835` (`builds --log build-1791499521345529835`). ``` --- 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-08T22:41:56Z 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-08T22:41:56Z 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.045s ok github.com/novox/mesh-controller/cmd/mesh-controller 211.628s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.019s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.029s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.020s ok github.com/novox/mesh-controller/examples/route-proxy 1.152s ok github.com/novox/mesh-controller/internal/artifacts 1.054s ok github.com/novox/mesh-controller/internal/broker 3.030s ok github.com/novox/mesh-controller/internal/builder 3.607s ok github.com/novox/mesh-controller/internal/catalogue 5.641s ok github.com/novox/mesh-controller/internal/conditions 2.337s ok github.com/novox/mesh-controller/internal/envfile 1.038s ok github.com/novox/mesh-controller/internal/facts 1.038s ok github.com/novox/mesh-controller/internal/identity 5.335s ok github.com/novox/mesh-controller/internal/inventory 92.385s ok github.com/novox/mesh-controller/internal/lease 17.721s ok github.com/novox/mesh-controller/internal/licences 4.876s ok github.com/novox/mesh-controller/internal/licences/adapters 1.012s ok github.com/novox/mesh-controller/internal/link 55.607s ok github.com/novox/mesh-controller/internal/lint 2.447s ok github.com/novox/mesh-controller/internal/outward 1.037s ok github.com/novox/mesh-controller/internal/overlay 1.032s ok github.com/novox/mesh-controller/internal/secrets 1.509s ok github.com/novox/mesh-controller/internal/store 3.427s ok github.com/novox/mesh-controller/internal/testbus 1.213s ok github.com/novox/mesh-controller/internal/token 1.017s ```
mesh-admin merged commit cec797e996 into main 2026-10-08 22:52:29 +00:00
mesh-admin deleted branch withhold-login-shell-execute 2026-10-08 22:52:29 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#169