Step 1 of ADR 0246 (a seat's new verb is promised before it is required) for two verbs on node-service-manager, hq issue 332 (the service manager cannot clear or explain a failed unit).
wanted-by {unit, scope}: read-only; the manager's reverse dependencies and every enable link naming the unit in the scope's configuration directories, each said dangling or not. Replaces systemctl list-dependencies --reverse, systemctl show -p WantedBy, reading ~/.config/systemd/user/*.wants.
Both are Optional, so the systemd module running today (nine verbs) still holds the seat, and the holder serving eleven (mesh-catalog, next) is accepted. Read back from the store's seat row they stay optional.
Test: TestResetFailedAndWantedByAreOptionalVerbsOfTheServiceManager; the seat's verb list in TestTheServiceManagerSeatServesTheUnitVerbs. merge-check.sh passed locally.
Step 3 (require both) is a later pull request, once the systemd module serving them is delivered everywhere.
Step 1 of ADR 0246 (a seat's new verb is promised before it is required) for two verbs on `node-service-manager`, hq issue 332 (the service manager cannot clear or explain a failed unit).
- `reset-failed {unit, scope}`: clears one unit's failed record. Replaces `systemctl reset-failed`.
- `wanted-by {unit, scope}`: read-only; the manager's reverse dependencies and every enable link naming the unit in the scope's configuration directories, each said dangling or not. Replaces `systemctl list-dependencies --reverse`, `systemctl show -p WantedBy`, reading `~/.config/systemd/user/*.wants`.
Both are `Optional`, so the systemd module running today (nine verbs) still holds the seat, and the holder serving eleven (mesh-catalog, next) is accepted. Read back from the store's seat row they stay optional.
Test: `TestResetFailedAndWantedByAreOptionalVerbsOfTheServiceManager`; the seat's verb list in `TestTheServiceManagerSeatServesTheUnitVerbs`. `merge-check.sh` passed locally.
Step 3 (require both) is a later pull request, once the systemd module serving them is delivered everywhere.
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…
A failed unit whose file is gone stays raised until its record is reset,
and nothing could say which unit or enable link still asks for it. Both
verbs are optional until the systemd module serves them (ADR 0246 step 1).
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
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 3m26s
build-agent on the rest running it: sent
route-proxy on ace: passed — healthy 3 times over 3m34s
route-proxy on the rest running it: sent
Transitions
2026-10-08 15:22 (new) → proposed (announced): novox/mesh-controller#158's head announced
2026-10-08 15:26 proposed → checked (checked): the verdict names this commit
2026-10-08 15:26 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-08 15:31 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 15:31 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 15:46 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@1acce7132e65` — **delivered** since 2026-10-08T15:46:27Z
**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
**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 3m26s
- build-agent on the rest running it: sent
- route-proxy on ace: passed — healthy 3 times over 3m34s
- route-proxy on the rest running it: sent
**Transitions**
- 2026-10-08 15:22 (new) → proposed (announced): novox/mesh-controller#158's head announced
- 2026-10-08 15:26 proposed → checked (checked): the verdict names this commit
- 2026-10-08 15:26 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-08 15:31 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 15:31 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 15:46 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`.
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-1791472921698311469 (builds --log build-1791472921698311469).
--- 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-08T15:20:36Z 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-08T15:20:36Z
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 157.570s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.012s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.017s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.011s
ok github.com/novox/mesh-controller/examples/route-proxy 1.142s
ok github.com/novox/mesh-controller/internal/artifacts 1.032s
ok github.com/novox/mesh-controller/internal/broker 2.411s
ok github.com/novox/mesh-controller/internal/builder 1.784s
ok github.com/novox/mesh-controller/internal/catalogue 3.951s
ok github.com/novox/mesh-controller/internal/conditions 2.185s
ok github.com/novox/mesh-controller/internal/envfile 1.056s
ok github.com/novox/mesh-controller/internal/facts 1.098s
ok github.com/novox/mesh-controller/internal/identity 4.006s
ok github.com/novox/mesh-controller/internal/inventory 69.197s
ok github.com/novox/mesh-controller/internal/lease 17.724s
ok github.com/novox/mesh-controller/internal/licences 3.657s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.090s
ok github.com/novox/mesh-controller/internal/link 43.734s
ok github.com/novox/mesh-controller/internal/lint 1.924s
ok github.com/novox/mesh-controller/internal/outward 1.080s
ok github.com/novox/mesh-controller/internal/overlay 1.062s
ok github.com/novox/mesh-controller/internal/secrets 1.422s
ok github.com/novox/mesh-controller/internal/store 3.251s
ok github.com/novox/mesh-controller/internal/testbus 1.217s
ok github.com/novox/mesh-controller/internal/token 1.016s
**Merge check** at `1acce713`
- `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-1791472921698311469` (`builds --log build-1791472921698311469`).
```
--- 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-08T15:20:36Z 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-08T15:20:36Z
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 157.570s
ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.012s
ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.017s
ok github.com/novox/mesh-controller/examples/redis-provisioner 1.011s
ok github.com/novox/mesh-controller/examples/route-proxy 1.142s
ok github.com/novox/mesh-controller/internal/artifacts 1.032s
ok github.com/novox/mesh-controller/internal/broker 2.411s
ok github.com/novox/mesh-controller/internal/builder 1.784s
ok github.com/novox/mesh-controller/internal/catalogue 3.951s
ok github.com/novox/mesh-controller/internal/conditions 2.185s
ok github.com/novox/mesh-controller/internal/envfile 1.056s
ok github.com/novox/mesh-controller/internal/facts 1.098s
ok github.com/novox/mesh-controller/internal/identity 4.006s
ok github.com/novox/mesh-controller/internal/inventory 69.197s
ok github.com/novox/mesh-controller/internal/lease 17.724s
ok github.com/novox/mesh-controller/internal/licences 3.657s
ok github.com/novox/mesh-controller/internal/licences/adapters 1.090s
ok github.com/novox/mesh-controller/internal/link 43.734s
ok github.com/novox/mesh-controller/internal/lint 1.924s
ok github.com/novox/mesh-controller/internal/outward 1.080s
ok github.com/novox/mesh-controller/internal/overlay 1.062s
ok github.com/novox/mesh-controller/internal/secrets 1.422s
ok github.com/novox/mesh-controller/internal/store 3.251s
ok github.com/novox/mesh-controller/internal/testbus 1.217s
ok github.com/novox/mesh-controller/internal/token 1.016s
```
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Step 1 of ADR 0246 (a seat's new verb is promised before it is required) for two verbs on
node-service-manager, hq issue 332 (the service manager cannot clear or explain a failed unit).reset-failed {unit, scope}: clears one unit's failed record. Replacessystemctl reset-failed.wanted-by {unit, scope}: read-only; the manager's reverse dependencies and every enable link naming the unit in the scope's configuration directories, each said dangling or not. Replacessystemctl list-dependencies --reverse,systemctl show -p WantedBy, reading~/.config/systemd/user/*.wants.Both are
Optional, so the systemd module running today (nine verbs) still holds the seat, and the holder serving eleven (mesh-catalog, next) is accepted. Read back from the store's seat row they stay optional.Test:
TestResetFailedAndWantedByAreOptionalVerbsOfTheServiceManager; the seat's verb list inTestTheServiceManagerSeatServesTheUnitVerbs.merge-check.shpassed locally.Step 3 (require both) is a later pull request, once the systemd module serving them is delivered everywhere.
Delivery
novox/mesh-controller@1acce7132e65— delivered since 2026-10-08T15:46:27ZDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Machines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
1acce713mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step
Run by the build seat on ace as
build-1791472921698311469(builds --log build-1791472921698311469).