A unit or a service in an account's own service manager now names that account in the health statement (account), and so does the account resource a module puts in a group.
Why: on 2026-10-08 the controller's gate could not tell openrazer's daemon unit, failing only because the running session lacks the new group, from a broken unit. It failed the send at its bound, put the build back and stalled every other walk (hq issue 318). With the account named, the controller reads relogin needed plus a unit in that same account's manager as a wait for a person (hq ADR 0254).
Test: cmd/mesh-host/units_test.go (a failed user unit and a liveness-judged user service name the account; the system manager's names none). merge-check.sh passes locally.
Merge order of the delivery group fix/318-a-wait-for-a-person-is-not-a-failure: this first, then mesh-controller, then mesh-lab, then hq. A controller before this engine is harmless: no unit names an account, so the gate judges as before.
A unit or a service in an account's own service manager now names that account in the health statement (`account`), and so does the account resource a module puts in a group.
Why: on 2026-10-08 the controller's gate could not tell openrazer's daemon unit, failing only because the running session lacks the new group, from a broken unit. It failed the send at its bound, put the build back and stalled every other walk (hq issue 318). With the account named, the controller reads *relogin needed* plus a unit in that same account's manager as a wait for a person (hq ADR 0254).
Test: `cmd/mesh-host/units_test.go` (a failed user unit and a liveness-judged user service name the account; the system manager's names none). `merge-check.sh` passes locally.
Merge order of the delivery group `fix/318-a-wait-for-a-person-is-not-a-failure`: this first, then mesh-controller, then mesh-lab, then hq. A controller before this engine is harmless: no unit names an account, so the gate judges as before.
mesh/merge-gate pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did without (4 of 4 compose)
composed together: pass — every machine composes with the change as it did without (4 of 4 compose)
Machines
mesh-host on ace: passed — healthy 3 times over 2m27s
mesh-host on novox: judging — carried by plan-1791463298682194218
mesh-host on the rest running it: sent
Transitions
2026-10-08 11:42 (new) → proposed (announced): novox/mesh-host#55's head announced
2026-10-08 11:45 proposed → checked (checked): the verdict names this commit
2026-10-08 11:45 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed
2026-10-08 11:52 rejected → proposed (recheck): TestNatsAnEnrolmentWithNoReplyAddressIsNotAnswered failed once with 'consumer is already bound to a subscription' in internal/link, which this change does not touch; it passes five times in a row under -race locally
2026-10-08 11:55 proposed → checked (checked): the verdict names this commit
2026-10-08 11:55 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
2026-10-08 12:41 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 12:41 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 12:45 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-host@9d8398206e5b` — **delivered** since 2026-10-08T12:45:44Z
**Delivery plan** — builds mesh-host → ace, g14, novox, shanks; no bus step
- tier 0: mesh-host
- ace: receives mesh-host
- g14: receives mesh-host
- novox: receives mesh-host
- shanks: receives mesh-host
**Group** `fix/318-a-wait-for-a-person-is-not-a-failure`, in order: novox/hq@01e48196f747 → novox/mesh-controller@51d7bbfdc88c → novox/mesh-host@9d8398206e5b → novox/mesh-lab@1455d9560e1c
- novox/mesh-controller@51d7bbfdc88c before novox/mesh-host@9d8398206e5b: built by, over engine before controller
- composed together: pass — every machine composes with the change as it did without (4 of 4 compose)
**Machines**
- mesh-host on ace: passed — healthy 3 times over 2m27s
- mesh-host on novox: judging — carried by plan-1791463298682194218
- mesh-host on the rest running it: sent
**Transitions**
- 2026-10-08 11:42 (new) → proposed (announced): novox/mesh-host#55's head announced
- 2026-10-08 11:45 proposed → checked (checked): the verdict names this commit
- 2026-10-08 11:45 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed
- 2026-10-08 11:52 rejected → proposed (recheck): TestNatsAnEnrolmentWithNoReplyAddressIsNotAnswered failed once with 'consumer is already bound to a subscription' in internal/link, which this change does not touch; it passes five times in a row under -race locally
- 2026-10-08 11:55 proposed → checked (checked): the verdict names this commit
- 2026-10-08 11:55 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
- 2026-10-08 12:41 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 12:41 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 12:45 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/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-host)
mesh/repo-check: FAIL — its merge-check.sh failed: --- FAIL: TestNatsAnEnrolmentWithNoReplyAddressIsNotAnswered (0.00s)
Delivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step
tier 0: mesh-host
ace: receives mesh-host
g14: receives mesh-host
novox: receives mesh-host
shanks: receives mesh-host
Run by the build seat on g14 as build-1791459769829780753 (builds --log build-1791459769829780753).
--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 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-08T11:31:31Z 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-08T11:31:31Z
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 1 module(s) in 1 tier(s): mesh-host
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-host/cmd/mesh-bootstrap 1.027s
ok github.com/novox/mesh-host/cmd/mesh-host 5.305s
ok github.com/novox/mesh-host/examples 1.031s
ok github.com/novox/mesh-host/internal/accounts 1.028s
ok github.com/novox/mesh-host/internal/apply 3.173s
ok github.com/novox/mesh-host/internal/bootstrap 2.369s
ok github.com/novox/mesh-host/internal/bundle 1.015s
ok github.com/novox/mesh-host/internal/declaration 1.047s
ok github.com/novox/mesh-host/internal/firewall 2.021s
ok github.com/novox/mesh-host/internal/identity 2.112s
ok github.com/novox/mesh-host/internal/image 1.015s
ok github.com/novox/mesh-host/internal/inventory 1.039s
--- FAIL: TestNatsAnEnrolmentWithNoReplyAddressIsNotAnswered (0.00s)
asking_nats_test.go:124: consumer is already bound to a subscription
FAIL
FAIL github.com/novox/mesh-host/internal/link 9.735s
ok github.com/novox/mesh-host/internal/liveness 3.112s
ok github.com/novox/mesh-host/internal/network 1.275s
ok github.com/novox/mesh-host/internal/outward 1.124s
ok github.com/novox/mesh-host/internal/profile 1.500s
ok github.com/novox/mesh-host/internal/reachable 1.029s
ok github.com/novox/mesh-host/internal/store 2.150s
ok github.com/novox/mesh-host/internal/system 1.016s
ok github.com/novox/mesh-host/internal/tunnel 1.016s
ok github.com/novox/mesh-host/internal/units 1.010s
ok github.com/novox/mesh-host/internal/upgrade 1.079s
ok github.com/novox/mesh-host/internal/witness 1.534s
ok github.com/novox/mesh-host/packaging 1.013s
ok github.com/novox/mesh-host/validate 1.010s
FAIL
**Merge check** at `9d839820`
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-host)
- `mesh/repo-check`: **FAIL** — its merge-check.sh failed: --- FAIL: TestNatsAnEnrolmentWithNoReplyAddressIsNotAnswered (0.00s)
**Delivery plan** — builds mesh-host → ace, g14, novox, shanks; no bus step
- tier 0: mesh-host
- ace: receives mesh-host
- g14: receives mesh-host
- novox: receives mesh-host
- shanks: receives mesh-host
Run by the build seat on g14 as `build-1791459769829780753` (`builds --log build-1791459769829780753`).
```
--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 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-08T11:31:31Z 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-08T11:31:31Z
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 1 module(s) in 1 tier(s): mesh-host
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-host/cmd/mesh-bootstrap 1.027s
ok github.com/novox/mesh-host/cmd/mesh-host 5.305s
ok github.com/novox/mesh-host/examples 1.031s
ok github.com/novox/mesh-host/internal/accounts 1.028s
ok github.com/novox/mesh-host/internal/apply 3.173s
ok github.com/novox/mesh-host/internal/bootstrap 2.369s
ok github.com/novox/mesh-host/internal/bundle 1.015s
ok github.com/novox/mesh-host/internal/declaration 1.047s
ok github.com/novox/mesh-host/internal/firewall 2.021s
ok github.com/novox/mesh-host/internal/identity 2.112s
ok github.com/novox/mesh-host/internal/image 1.015s
ok github.com/novox/mesh-host/internal/inventory 1.039s
--- FAIL: TestNatsAnEnrolmentWithNoReplyAddressIsNotAnswered (0.00s)
asking_nats_test.go:124: consumer is already bound to a subscription
FAIL
FAIL github.com/novox/mesh-host/internal/link 9.735s
ok github.com/novox/mesh-host/internal/liveness 3.112s
ok github.com/novox/mesh-host/internal/network 1.275s
ok github.com/novox/mesh-host/internal/outward 1.124s
ok github.com/novox/mesh-host/internal/profile 1.500s
ok github.com/novox/mesh-host/internal/reachable 1.029s
ok github.com/novox/mesh-host/internal/store 2.150s
ok github.com/novox/mesh-host/internal/system 1.016s
ok github.com/novox/mesh-host/internal/tunnel 1.016s
ok github.com/novox/mesh-host/internal/units 1.010s
ok github.com/novox/mesh-host/internal/upgrade 1.079s
ok github.com/novox/mesh-host/internal/witness 1.534s
ok github.com/novox/mesh-host/packaging 1.013s
ok github.com/novox/mesh-host/validate 1.010s
FAIL
```
mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-host)
mesh/repo-check: PASS — its merge-check.sh passed
Delivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step
tier 0: mesh-host
ace: receives mesh-host
g14: receives mesh-host
novox: receives mesh-host
shanks: receives mesh-host
Run by the build seat on novox as build-1791460355735796183 (builds --log build-1791460355735796183).
--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 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-08T11:31:31Z 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-08T11:31:31Z
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 1 module(s) in 1 tier(s): mesh-host
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-host/cmd/mesh-bootstrap 1.014s
ok github.com/novox/mesh-host/cmd/mesh-host 7.399s
ok github.com/novox/mesh-host/examples 1.019s
ok github.com/novox/mesh-host/internal/accounts 1.057s
ok github.com/novox/mesh-host/internal/apply 24.415s
ok github.com/novox/mesh-host/internal/bootstrap 2.811s
ok github.com/novox/mesh-host/internal/bundle 1.020s
ok github.com/novox/mesh-host/internal/declaration 1.060s
ok github.com/novox/mesh-host/internal/firewall 1.869s
ok github.com/novox/mesh-host/internal/identity 1.564s
ok github.com/novox/mesh-host/internal/image 1.024s
ok github.com/novox/mesh-host/internal/inventory 1.024s
ok github.com/novox/mesh-host/internal/link 10.364s
ok github.com/novox/mesh-host/internal/liveness 2.508s
ok github.com/novox/mesh-host/internal/network 1.090s
ok github.com/novox/mesh-host/internal/outward 1.013s
ok github.com/novox/mesh-host/internal/profile 1.468s
ok github.com/novox/mesh-host/internal/reachable 1.012s
ok github.com/novox/mesh-host/internal/store 1.958s
ok github.com/novox/mesh-host/internal/system 1.012s
ok github.com/novox/mesh-host/internal/tunnel 1.018s
ok github.com/novox/mesh-host/internal/units 1.008s
ok github.com/novox/mesh-host/internal/upgrade 2.788s
ok github.com/novox/mesh-host/internal/witness 30.985s
ok github.com/novox/mesh-host/packaging 1.009s
ok github.com/novox/mesh-host/validate 1.008s
**Merge check** at `9d839820`
- `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-host)
- `mesh/repo-check`: **PASS** — its merge-check.sh passed
**Delivery plan** — builds mesh-host → ace, g14, novox, shanks; no bus step
- tier 0: mesh-host
- ace: receives mesh-host
- g14: receives mesh-host
- novox: receives mesh-host
- shanks: receives mesh-host
Run by the build seat on novox as `build-1791460355735796183` (`builds --log build-1791460355735796183`).
```
--- the gate: mesh-host
mesh-host: ok
long-running resources without health: 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-08T11:31:31Z 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-08T11:31:31Z
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 1 module(s) in 1 tier(s): mesh-host
--- its merge-check.sh (go toolchain)
ok github.com/novox/mesh-host/cmd/mesh-bootstrap 1.014s
ok github.com/novox/mesh-host/cmd/mesh-host 7.399s
ok github.com/novox/mesh-host/examples 1.019s
ok github.com/novox/mesh-host/internal/accounts 1.057s
ok github.com/novox/mesh-host/internal/apply 24.415s
ok github.com/novox/mesh-host/internal/bootstrap 2.811s
ok github.com/novox/mesh-host/internal/bundle 1.020s
ok github.com/novox/mesh-host/internal/declaration 1.060s
ok github.com/novox/mesh-host/internal/firewall 1.869s
ok github.com/novox/mesh-host/internal/identity 1.564s
ok github.com/novox/mesh-host/internal/image 1.024s
ok github.com/novox/mesh-host/internal/inventory 1.024s
ok github.com/novox/mesh-host/internal/link 10.364s
ok github.com/novox/mesh-host/internal/liveness 2.508s
ok github.com/novox/mesh-host/internal/network 1.090s
ok github.com/novox/mesh-host/internal/outward 1.013s
ok github.com/novox/mesh-host/internal/profile 1.468s
ok github.com/novox/mesh-host/internal/reachable 1.012s
ok github.com/novox/mesh-host/internal/store 1.958s
ok github.com/novox/mesh-host/internal/system 1.012s
ok github.com/novox/mesh-host/internal/tunnel 1.018s
ok github.com/novox/mesh-host/internal/units 1.008s
ok github.com/novox/mesh-host/internal/upgrade 2.788s
ok github.com/novox/mesh-host/internal/witness 30.985s
ok github.com/novox/mesh-host/packaging 1.009s
ok github.com/novox/mesh-host/validate 1.008s
```
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.
A unit or a service in an account's own service manager now names that account in the health statement (
account), and so does the account resource a module puts in a group.Why: on 2026-10-08 the controller's gate could not tell openrazer's daemon unit, failing only because the running session lacks the new group, from a broken unit. It failed the send at its bound, put the build back and stalled every other walk (hq issue 318). With the account named, the controller reads relogin needed plus a unit in that same account's manager as a wait for a person (hq ADR 0254).
Test:
cmd/mesh-host/units_test.go(a failed user unit and a liveness-judged user service name the account; the system manager's names none).merge-check.shpasses locally.Merge order of the delivery group
fix/318-a-wait-for-a-person-is-not-a-failure: this first, then mesh-controller, then mesh-lab, then hq. A controller before this engine is harmless: no unit names an account, so the gate judges as before.Delivery
novox/mesh-host@9d8398206e5b— delivered since 2026-10-08T12:45:44ZDelivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step
Group
fix/318-a-wait-for-a-person-is-not-a-failure, in order: novox/hq@01e48196f7 → novox/mesh-controller@51d7bbfdc8 → novox/mesh-host@9d8398206e → novox/mesh-lab@1455d9560eMachines
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.Merge check at
9d839820mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-host)mesh/repo-check: FAIL — its merge-check.sh failed: --- FAIL: TestNatsAnEnrolmentWithNoReplyAddressIsNotAnswered (0.00s)Delivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step
Run by the build seat on g14 as
build-1791459769829780753(builds --log build-1791459769829780753).Merge check at
9d839820mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: mesh-host)mesh/repo-check: PASS — its merge-check.sh passedDelivery plan — builds mesh-host → ace, g14, novox, shanks; no bus step
Run by the build seat on novox as
build-1791460355735796183(builds --log build-1791460355735796183).