What it does: (1) each node's engine writes its own declared packages (bucket mesh-host_packages, key ) only when a composition changes them, and the node seat answers packages beside the controller mirror and their difference; pacman reads it and names its source (the last unkept controller read before the lease write, per mesh-grants.grants_lease_check). Deviation said: the read is named mesh-host.packages (the engine's module bucket, as disk-load reads mesh-host.data), not node-engine.packages. (2) mesh-provisioner composes a node once over one read with a bounded take-in cache and reads its own states from the watched copy with write-through; per-phase timings in provisioner_compose. Measured on captured novox inputs: 11.7 s -> 0.49 s per compose, identical plans over nine runs. (3) pacman keeps one mirror list for the mesh on the bus, ranked inside the write that opens a weekly round; each node writes /etc/pacman.d/mirrorlist from it through the root helper, and a round's run starts only once the file holds the round's list; reflector's timer is disabled.
Quick vs thorough: thorough for all three (the slow reader's third instance; the decided per-node packages; the decided mirror list). Test counts unchanged in every repository. Local reproduction: unit and integration of every changed module, go vet -tags integration of all 134 go.mod files, offline build with -mod=readonly. Review: reviewerP@shanks, two rounds (round 1: the opener upgraded before its file was written; round 2: a committed binary removed).
This member: modules/mesh-grants pins mesh-sdk b2a27ed5 only, so the grants part gives each node's engine the read of its own key in the controller's mirror; no code change.
Reviewed-by: reviewerP@shanks at b18c62f671
Pushed-by: lead-47@shanks
Delivery group feat/node-packages (mesh-sdk, mesh-host, mesh-catalog, mesh-delivery), one check, one Approve. Issues 1953 (design 47 L5), 1954 (L6), 1876. Decisions: ADR 0565 clauses 1, 6, 14, 15; ADR 0570; ADR 0580; ADR 0585.
What it does: (1) each node's engine writes its own declared packages (bucket mesh-host_packages, key <node>) only when a composition changes them, and the node seat answers `packages` beside the controller mirror and their difference; pacman reads it and names its source (the last unkept controller read before the lease write, per mesh-grants.grants_lease_check). Deviation said: the read is named mesh-host.packages (the engine's module bucket, as disk-load reads mesh-host.data), not node-engine.packages. (2) mesh-provisioner composes a node once over one read with a bounded take-in cache and reads its own states from the watched copy with write-through; per-phase timings in provisioner_compose. Measured on captured novox inputs: 11.7 s -> 0.49 s per compose, identical plans over nine runs. (3) pacman keeps one mirror list for the mesh on the bus, ranked inside the write that opens a weekly round; each node writes /etc/pacman.d/mirrorlist from it through the root helper, and a round's run starts only once the file holds the round's list; reflector's timer is disabled.
Quick vs thorough: thorough for all three (the slow reader's third instance; the decided per-node packages; the decided mirror list). Test counts unchanged in every repository. Local reproduction: unit and integration of every changed module, go vet -tags integration of all 134 go.mod files, offline build with -mod=readonly. Review: reviewerP@shanks, two rounds (round 1: the opener upgraded before its file was written; round 2: a committed binary removed).
This member: modules/mesh-grants pins mesh-sdk b2a27ed5 only, so the grants part gives each node's engine the read of its own key in the controller's mirror; no code change.
Reviewed-by: reviewerP@shanks at b18c62f671e15f42e2c8c0d29b8464ddc6a2a049
Pushed-by: lead-47@shanks
https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
The node seat's verb packages compares the engine's key with the controller's mirror until the lease write; the grants part composes the engine's read of its own node's mirror key only from this mesh-sdk.
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Deliverynovox/mesh-delivery@b18c62f671e1 — merged since 2026-11-01T17:02:49Z
Source — source.main moved to novox/mesh-delivery@7d1b8864cc. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
composed together: pass — the checker's verdict at the members' heads (0388ac1f351b)
Transitions
2026-11-01 15:33 (new) → proposed (announced): novox/mesh-delivery#132's head announced
2026-11-01 15:33 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
2026-11-01 17:02 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-delivery@b18c62f671e1` — **merged** since 2026-11-01T17:02:49Z
**Source** — source.main moved to novox/mesh-delivery@7d1b8864cc08. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `feat/node-packages`: novox/mesh-catalog@5ccce4967a98, novox/mesh-delivery@b18c62f671e1, novox/mesh-host@74ecda8ea2cf, novox/mesh-sdk@b2a27ed5cec4
- composed together: pass — the checker's verdict at the members' heads (0388ac1f351b)
**Transitions**
- 2026-11-01 15:33 (new) → proposed (announced): novox/mesh-delivery#132's head announced
- 2026-11-01 15:33 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
- 2026-11-01 17:02 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
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.
Delivery group feat/node-packages (mesh-sdk, mesh-host, mesh-catalog, mesh-delivery), one check, one Approve. Issues 1953 (design 47 L5), 1954 (L6), 1876. Decisions: ADR 0565 clauses 1, 6, 14, 15; ADR 0570; ADR 0580; ADR 0585.
What it does: (1) each node's engine writes its own declared packages (bucket mesh-host_packages, key ) only when a composition changes them, and the node seat answers
packagesbeside the controller mirror and their difference; pacman reads it and names its source (the last unkept controller read before the lease write, per mesh-grants.grants_lease_check). Deviation said: the read is named mesh-host.packages (the engine's module bucket, as disk-load reads mesh-host.data), not node-engine.packages. (2) mesh-provisioner composes a node once over one read with a bounded take-in cache and reads its own states from the watched copy with write-through; per-phase timings in provisioner_compose. Measured on captured novox inputs: 11.7 s -> 0.49 s per compose, identical plans over nine runs. (3) pacman keeps one mirror list for the mesh on the bus, ranked inside the write that opens a weekly round; each node writes /etc/pacman.d/mirrorlist from it through the root helper, and a round's run starts only once the file holds the round's list; reflector's timer is disabled.Quick vs thorough: thorough for all three (the slow reader's third instance; the decided per-node packages; the decided mirror list). Test counts unchanged in every repository. Local reproduction: unit and integration of every changed module, go vet -tags integration of all 134 go.mod files, offline build with -mod=readonly. Review: reviewerP@shanks, two rounds (round 1: the opener upgraded before its file was written; round 2: a committed binary removed).
This member: modules/mesh-grants pins mesh-sdk b2a27ed5 only, so the grants part gives each node's engine the read of its own key in the controller's mirror; no code change.
Reviewed-by: reviewerP@shanks at
b18c62f671Pushed-by: lead-47@shanks
https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
Delivery
novox/mesh-delivery@b18c62f671e1— merged since 2026-11-01T17:02:49ZSource — source.main moved to novox/mesh-delivery@7d1b8864cc. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
feat/node-packages: novox/mesh-catalog@5ccce4967a, novox/mesh-delivery@b18c62f671, novox/mesh-host@74ecda8ea2, novox/mesh-sdk@b2a27ed5ceTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.