Let the first controller keep and deliver again what a consumer gives up on (hq issue 330, ADR 0264) #60

Merged
mesh-admin merged 2 commits from fix/330-a-message-given-up-on-is-kept into main 2026-10-08 18:21:04 +00:00
Contributor

The installer's first user list (examples/foundation-first-node-nats.lock) must be what the controller composes for itself (mesh-controller's TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose). mesh-controller#159 grants the controller four more publish subjects for hq ADR 0264 (dead letters): $JS.ACK.DEAD_LETTER_NOTICES.controller.>, mesh.events.dead.>, mesh.again.> and mesh.seat.*.accept.>. This carries them.

The controller's repo-check failed on exactly this test without it (it reads this file from the checkout beside it).

merge-check.sh: passed locally.

Delivery group: fix/330-a-message-given-up-on-is-kept with mesh-controller, mesh-tools, mesh-lab and hq.

The installer's first user list (`examples/foundation-first-node-nats.lock`) must be what the controller composes for itself (mesh-controller's `TestTheInstallersFirstUserListIsWhatTheControllerWouldCompose`). mesh-controller#159 grants the controller four more publish subjects for hq ADR 0264 (dead letters): `$JS.ACK.DEAD_LETTER_NOTICES.controller.>`, `mesh.events.dead.>`, `mesh.again.>` and `mesh.seat.*.accept.>`. This carries them. The controller's repo-check failed on exactly this test without it (it reads this file from the checkout beside it). merge-check.sh: passed locally. Delivery group: `fix/330-a-message-given-up-on-is-kept` with mesh-controller, mesh-tools, mesh-lab and hq.
mesh-admin added 1 commit 2026-10-08 15:53:01 +00:00
Let the first controller keep and deliver again what a consumer gives up on (hq issue 330)
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)
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request
ccbfa9b58a
The installer's user list must be what the controller composes, or it is
refused on its first copy into DEAD_LETTERS (ADR 0264).
Author
Contributor

Delivery novox/mesh-host@a31659ed0328 — delivered since 2026-10-08T18:53:47Z

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/330-a-message-given-up-on-is-kept, in order: novox/hq@26ff767a7b → novox/mesh-controller@909062e729 → novox/mesh-host@a31659ed03 → novox/mesh-lab@54db7c3458 → novox/mesh-tools@c401bbff2d

Machines

  • mesh-host on ace: passed — healthy 3 times over 2m27s
  • mesh-host on g14: judging — carried by release-1791484851793714907
  • mesh-host on shanks: judging — carried by release-1791484851793714907
  • mesh-host on the rest running it: sent

Transitions

  • 2026-10-08 16:38 (new) → proposed (announced): novox/mesh-host#60's head announced
  • 2026-10-08 16:42 proposed → checked (checked): the verdict names this commit
  • 2026-10-08 16:42 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-08 18:21 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 18:21 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 18:53 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@a31659ed0328` — **delivered** since 2026-10-08T18:53:47Z **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/330-a-message-given-up-on-is-kept`, in order: novox/hq@26ff767a7b89 → novox/mesh-controller@909062e7294d → novox/mesh-host@a31659ed0328 → novox/mesh-lab@54db7c3458f7 → novox/mesh-tools@c401bbff2d7a - novox/mesh-controller@909062e7294d before novox/mesh-host@a31659ed0328: built by, over engine before controller - novox/mesh-controller@909062e7294d before novox/mesh-tools@c401bbff2d7a: built by **Machines** - mesh-host on ace: passed — healthy 3 times over 2m27s - mesh-host on g14: judging — carried by release-1791484851793714907 - mesh-host on shanks: judging — carried by release-1791484851793714907 - mesh-host on the rest running it: sent **Transitions** - 2026-10-08 16:38 (new) → proposed (announced): novox/mesh-host#60's head announced - 2026-10-08 16:42 proposed → checked (checked): the verdict names this commit - 2026-10-08 16:42 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-08 18:21 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 18:21 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 18:53 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 ccbfa9b5

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

--- 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-08T15:52:40Z 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:52:40Z

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.016s
ok  	github.com/novox/mesh-host/cmd/mesh-host	5.356s
ok  	github.com/novox/mesh-host/examples	1.019s
ok  	github.com/novox/mesh-host/internal/accounts	1.016s
ok  	github.com/novox/mesh-host/internal/apply	4.559s
ok  	github.com/novox/mesh-host/internal/bootstrap	1.536s
ok  	github.com/novox/mesh-host/internal/bundle	1.033s
ok  	github.com/novox/mesh-host/internal/declaration	1.072s
ok  	github.com/novox/mesh-host/internal/firewall	1.702s
ok  	github.com/novox/mesh-host/internal/identity	1.108s
ok  	github.com/novox/mesh-host/internal/image	1.039s
ok  	github.com/novox/mesh-host/internal/inventory	1.032s
ok  	github.com/novox/mesh-host/internal/link	10.367s
ok  	github.com/novox/mesh-host/internal/liveness	2.079s
ok  	github.com/novox/mesh-host/internal/network	1.055s
ok  	github.com/novox/mesh-host/internal/outward	1.041s
ok  	github.com/novox/mesh-host/internal/profile	1.503s
ok  	github.com/novox/mesh-host/internal/reachable	1.049s
ok  	github.com/novox/mesh-host/internal/store	1.221s
ok  	github.com/novox/mesh-host/internal/system	1.044s
ok  	github.com/novox/mesh-host/internal/tunnel	1.041s
ok  	github.com/novox/mesh-host/internal/units	1.034s
ok  	github.com/novox/mesh-host/internal/upgrade	1.142s
ok  	github.com/novox/mesh-host/internal/witness	4.772s
ok  	github.com/novox/mesh-host/packaging	1.029s
ok  	github.com/novox/mesh-host/validate	1.032s
**Merge check** at `ccbfa9b5` - `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 ace as `build-1791474820734341327` (`builds --log build-1791474820734341327`). ``` --- 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-08T15:52:40Z 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:52:40Z 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.016s ok github.com/novox/mesh-host/cmd/mesh-host 5.356s ok github.com/novox/mesh-host/examples 1.019s ok github.com/novox/mesh-host/internal/accounts 1.016s ok github.com/novox/mesh-host/internal/apply 4.559s ok github.com/novox/mesh-host/internal/bootstrap 1.536s ok github.com/novox/mesh-host/internal/bundle 1.033s ok github.com/novox/mesh-host/internal/declaration 1.072s ok github.com/novox/mesh-host/internal/firewall 1.702s ok github.com/novox/mesh-host/internal/identity 1.108s ok github.com/novox/mesh-host/internal/image 1.039s ok github.com/novox/mesh-host/internal/inventory 1.032s ok github.com/novox/mesh-host/internal/link 10.367s ok github.com/novox/mesh-host/internal/liveness 2.079s ok github.com/novox/mesh-host/internal/network 1.055s ok github.com/novox/mesh-host/internal/outward 1.041s ok github.com/novox/mesh-host/internal/profile 1.503s ok github.com/novox/mesh-host/internal/reachable 1.049s ok github.com/novox/mesh-host/internal/store 1.221s ok github.com/novox/mesh-host/internal/system 1.044s ok github.com/novox/mesh-host/internal/tunnel 1.041s ok github.com/novox/mesh-host/internal/units 1.034s ok github.com/novox/mesh-host/internal/upgrade 1.142s ok github.com/novox/mesh-host/internal/witness 4.772s ok github.com/novox/mesh-host/packaging 1.029s ok github.com/novox/mesh-host/validate 1.032s ```
jschoubben added 1 commit 2026-10-08 16:38:13 +00:00
Carry no seat queue grant for the first controller
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)
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group fix/330-a-message-given-up-on-is-kept merged: every member is merged
a31659ed03
The controller no longer delivers a seat's ask again (review of hq issue 330).
Author
Contributor

Merge check at a31659ed

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

--- 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-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 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.018s
ok  	github.com/novox/mesh-host/cmd/mesh-host	6.748s
ok  	github.com/novox/mesh-host/examples	1.025s
ok  	github.com/novox/mesh-host/internal/accounts	1.054s
ok  	github.com/novox/mesh-host/internal/apply	26.573s
ok  	github.com/novox/mesh-host/internal/bootstrap	3.235s
ok  	github.com/novox/mesh-host/internal/bundle	1.015s
ok  	github.com/novox/mesh-host/internal/declaration	1.057s
ok  	github.com/novox/mesh-host/internal/firewall	1.836s
ok  	github.com/novox/mesh-host/internal/identity	1.683s
ok  	github.com/novox/mesh-host/internal/image	1.012s
ok  	github.com/novox/mesh-host/internal/inventory	1.013s
ok  	github.com/novox/mesh-host/internal/link	10.412s
ok  	github.com/novox/mesh-host/internal/liveness	2.655s
ok  	github.com/novox/mesh-host/internal/network	1.059s
ok  	github.com/novox/mesh-host/internal/outward	1.017s
ok  	github.com/novox/mesh-host/internal/profile	1.487s
ok  	github.com/novox/mesh-host/internal/reachable	1.015s
ok  	github.com/novox/mesh-host/internal/store	2.435s
ok  	github.com/novox/mesh-host/internal/system	1.015s
ok  	github.com/novox/mesh-host/internal/tunnel	1.019s
ok  	github.com/novox/mesh-host/internal/units	1.012s
ok  	github.com/novox/mesh-host/internal/upgrade	1.747s
ok  	github.com/novox/mesh-host/internal/witness	32.394s
ok  	github.com/novox/mesh-host/packaging	1.013s
ok  	github.com/novox/mesh-host/validate	1.012s
**Merge check** at `a31659ed` - `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-1791477504123434868` (`builds --log build-1791477504123434868`). ``` --- 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-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 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.018s ok github.com/novox/mesh-host/cmd/mesh-host 6.748s ok github.com/novox/mesh-host/examples 1.025s ok github.com/novox/mesh-host/internal/accounts 1.054s ok github.com/novox/mesh-host/internal/apply 26.573s ok github.com/novox/mesh-host/internal/bootstrap 3.235s ok github.com/novox/mesh-host/internal/bundle 1.015s ok github.com/novox/mesh-host/internal/declaration 1.057s ok github.com/novox/mesh-host/internal/firewall 1.836s ok github.com/novox/mesh-host/internal/identity 1.683s ok github.com/novox/mesh-host/internal/image 1.012s ok github.com/novox/mesh-host/internal/inventory 1.013s ok github.com/novox/mesh-host/internal/link 10.412s ok github.com/novox/mesh-host/internal/liveness 2.655s ok github.com/novox/mesh-host/internal/network 1.059s ok github.com/novox/mesh-host/internal/outward 1.017s ok github.com/novox/mesh-host/internal/profile 1.487s ok github.com/novox/mesh-host/internal/reachable 1.015s ok github.com/novox/mesh-host/internal/store 2.435s ok github.com/novox/mesh-host/internal/system 1.015s ok github.com/novox/mesh-host/internal/tunnel 1.019s ok github.com/novox/mesh-host/internal/units 1.012s ok github.com/novox/mesh-host/internal/upgrade 1.747s ok github.com/novox/mesh-host/internal/witness 32.394s ok github.com/novox/mesh-host/packaging 1.013s ok github.com/novox/mesh-host/validate 1.012s ```
mesh-admin merged commit 29a7de7699 into main 2026-10-08 18:21:04 +00:00
mesh-admin deleted branch fix/330-a-message-given-up-on-is-kept 2026-10-08 18:21:04 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-host#60