mesh-placement keyed per node and module, and memberships from mesh-grants' own state (issue 774) #125

Merged
mesh-tools merged 3 commits from feat/072-moves into main 2026-10-31 10:31:10 +00:00
Member

This repository:

  • Pin mesh-sdk at the group's head acbf80a in every delivery module the group touches (issue 774)
  • Read each membership's last value from mesh-grants' own state and say it on its subject without the assignments stream, so memberships keep flowing once nats_stream_remove takes the stream at the lease write (issue 774, research 072 row 33)
  • Read and write the seat mesh-placement's state as one key per module and node, converting each node's placement. once at the holder's start (issue 774, research 072 row 37)

Issue 774 (L3 of design 47: nothing is left with the controller), research 072 rows 11, 26, 33, 34 and 37.

Delivery group feat/072-moves, one check and one Approve: mesh-sdk acbf80ad, mesh-catalog 8439ec11, mesh-delivery a313c3e8, mesh-tools be2fc2e9, mesh-host 8bdfddab, mesh-control 7a169eae. Every member pins mesh-sdk acbf80ad, except the controller root, which stays on main's pin on purpose (the controller is deprecated; its change is kept minimal). route-proxy's contract is the published tag modules/route-proxy/contract/v0.1.0; these pins are set by hand one last time (ADR 0573; issue 1585 builds the automatic rebuild).

What it does: the seat mesh-placement keeps one key per node (<node>.node) and per module (<node>.<module>), the legacy placement.<node> mirrored while readers move; the ASSIGNMENTS stream is no longer declared and mesh-grants reads memberships from its own state; mesh-hand-acts copies the controller's hand acts once; route-proxy serves routes from the provisioner's plans through its own contract; the vault is the only issuer of bus accounts, the controller forwarding to it since the take-over (2026-10-27).

Quick fix vs thorough fix (review round 2): the reviewer found that the vault and the controller could both mint an account before the take-over. The take-over was recorded on 2026-10-27, and the operator ruled out a hand-back (2026-10-31), so the window cannot recur; no change. The manifest of mesh-grants claiming no seat mesh-grants (ADR 0547 §5) is noted on issue 774 for the controller's removal.

Before delivery: no membership is held back (grants_membership: 0 at pass 140611). Do not roll mesh-delivery back after the key conversion.

Tests: each repository's unit suite, go vet and go vet -tags integration are clean at these heads (review round 2, 2026-10-31 10:40).

Reviewed-by: rev-072@shanks at a313c3e843

**This repository:** - Pin mesh-sdk at the group's head acbf80a in every delivery module the group touches (issue 774) - Read each membership's last value from mesh-grants' own state and say it on its subject without the assignments stream, so memberships keep flowing once nats_stream_remove takes the stream at the lease write (issue 774, research 072 row 33) - Read and write the seat mesh-placement's state as one key per module and node, converting each node's placement.<node> once at the holder's start (issue 774, research 072 row 37) Issue 774 (L3 of design 47: nothing is left with the controller), research 072 rows 11, 26, 33, 34 and 37. **Delivery group `feat/072-moves`, one check and one Approve:** mesh-sdk acbf80ad, mesh-catalog 8439ec11, mesh-delivery a313c3e8, mesh-tools be2fc2e9, mesh-host 8bdfddab, mesh-control 7a169eae. Every member pins mesh-sdk acbf80ad, except the controller root, which stays on main's pin on purpose (the controller is deprecated; its change is kept minimal). route-proxy's contract is the published tag `modules/route-proxy/contract/v0.1.0`; these pins are set by hand one last time (ADR 0573; issue 1585 builds the automatic rebuild). **What it does:** the seat mesh-placement keeps one key per node (`<node>.node`) and per module (`<node>.<module>`), the legacy `placement.<node>` mirrored while readers move; the ASSIGNMENTS stream is no longer declared and mesh-grants reads memberships from its own state; mesh-hand-acts copies the controller's hand acts once; route-proxy serves routes from the provisioner's plans through its own contract; the vault is the only issuer of bus accounts, the controller forwarding to it since the take-over (2026-10-27). **Quick fix vs thorough fix (review round 2):** the reviewer found that the vault and the controller could both mint an account before the take-over. The take-over was recorded on 2026-10-27, and the operator ruled out a hand-back (2026-10-31), so the window cannot recur; no change. The manifest of mesh-grants claiming no seat `mesh-grants` (ADR 0547 §5) is noted on issue 774 for the controller's removal. **Before delivery:** no membership is held back (`grants_membership`: 0 at pass 140611). Do not roll mesh-delivery back after the key conversion. **Tests:** each repository's unit suite, `go vet` and `go vet -tags integration` are clean at these heads (review round 2, 2026-10-31 10:40). Reviewed-by: rev-072@shanks at a313c3e84380fd0fc78c49327ea4cc634e6f1048
mesh-tools added 3 commits 2026-10-31 09:59:50 +00:00
The holder writes a node's changed module keys, then its node key as the commit by compare-and-set at
the revision the proposal was laid over, then the placement.<node> mirror for readers not yet delivered.
Every reader assembles through mesh-sdk's PlacementKeys, which reads both forms.
Pin mesh-sdk at the group's head acbf80a in every delivery module the group touches (issue 774)
mesh/delivery merged: source.main moved to novox/mesh-delivery@f83835b4b6ad
mesh/delivery-group group feat/072-moves merged: every member is merged
mesh/check failed: shanks: the check of novox/mesh-controller#487 failed: go mod download in modules/route-proxy: go: git.novox.be/novox/mesh-controll…
a313c3e843
Author
Member

Delivery novox/mesh-delivery@a313c3e84380 — merged since 2026-10-31T10:31:12Z

Source — source.main moved to novox/mesh-delivery@f83835b4b6. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Group feat/072-moves: novox/mesh-catalog@8439ec117c, novox/mesh-controller@7a169eae76, novox/mesh-delivery@a313c3e843, novox/mesh-host@8bdfddab4a, novox/mesh-sdk@acbf80ad91, novox/mesh-tools@be2fc2e9b6

  • composed together: fail — the checker's verdict at the members' heads (10e5c18979c3): shanks

Transitions

  • 2026-10-31 09:59 (new) → proposed (announced): novox/mesh-delivery#125's head announced
  • 2026-10-31 09:59 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-10-31 10:31 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@a313c3e84380` — **merged** since 2026-10-31T10:31:12Z **Source** — source.main moved to novox/mesh-delivery@f83835b4b6ad. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `feat/072-moves`: novox/mesh-catalog@8439ec117cb9, novox/mesh-controller@7a169eae76ef, novox/mesh-delivery@a313c3e84380, novox/mesh-host@8bdfddab4aab, novox/mesh-sdk@acbf80ad910a, novox/mesh-tools@be2fc2e9b6ac - composed together: fail — the checker's verdict at the members' heads (10e5c18979c3): shanks **Transitions** - 2026-10-31 09:59 (new) → proposed (announced): novox/mesh-delivery#125's head announced - 2026-10-31 09:59 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-10-31 10:31 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-tools merged commit f83835b4b6 into main 2026-10-31 10:31:10 +00:00
mesh-tools deleted branch feat/072-moves 2026-10-31 10:31:10 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-delivery#125