Design 47 follows ADR 0547: node agents compose, the grants part composes who may say what, the bus node writes the user list, and the controller leaves build and delivery in three milestones (issue 1945) #478

Merged
mesh-tools merged 4 commits from fix/1945-user-list-follows-r into main 2026-10-26 07:51:14 +00:00
Member

ADR 0547 clause 12: design 47's text that names the controller as composer, signer, issuer of accounts or grants, or writer of the user list is amended to match the record (version 42, with its insights of 2026-10-25).

  • The grants part: memberships published from the first milestone by the operator's one grant; user list, assertions and grants in shadow until take-over, allowed only when the shadow and loaded lists' users are equal.
  • The vault hashes the bus accounts it is handed into bus-accounts.<user> in the first milestone, adopts the hashes it holds no value for once before take-over, and mints from the third.
  • Node agents compose from the second milestone; the bus node keeps able to follow the controller's list until the third, for hand-back.
  • The composition check reads grants and credentials from the grants part and the vault; the R6 row and the switch paragraph say what was released as history.
  • The assigner's acceptance test names its six rules (ADR 0547 §4 removes the seventh).

Rebased over hq #477 (its acceptance tests on wants and the as-is pointers are untouched). The earlier branch fix/1945-user-list-follows (0d713a4) is superseded by this one.

go test ./... at the root passes.

Review note left for later: the rule that refuses a list missing the controller's own user, or dropping more than half the users, cites no record; its source is to be traced.

Issue: 1945

Reviewed-by: review-hq547@shanks at f1c50d3e01

ADR 0547 clause 12: design 47's text that names the controller as composer, signer, issuer of accounts or grants, or writer of the user list is amended to match the record (version 42, with its insights of 2026-10-25). - The grants part: memberships published from the first milestone by the operator's one grant; user list, assertions and grants in shadow until `take-over`, allowed only when the shadow and loaded lists' users are equal. - The vault hashes the bus accounts it is handed into `bus-accounts.<user>` in the first milestone, adopts the hashes it holds no value for once before `take-over`, and mints from the third. - Node agents compose from the second milestone; the bus node keeps able to follow the controller's list until the third, for `hand-back`. - The composition check reads grants and credentials from the grants part and the vault; the R6 row and the switch paragraph say what was released as history. - The assigner's acceptance test names its six rules (ADR 0547 §4 removes the seventh). Rebased over hq #477 (its acceptance tests on wants and the as-is pointers are untouched). The earlier branch fix/1945-user-list-follows (0d713a4) is superseded by this one. `go test ./...` at the root passes. Review note left for later: the rule that refuses a list missing the controller's own user, or dropping more than half the users, cites no record; its source is to be traced. Issue: 1945 Reviewed-by: review-hq547@shanks at f1c50d3e018c1704e0188f5976420ea04b4c93aa
mesh-tools added 4 commits 2026-10-26 02:00:26 +00:00
Author
Member

Delivery novox/hq@f1c50d3e018c — merged since 2026-10-26T07:51:16Z

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

Transitions

  • 2026-10-26 02:00 (new) → proposed (announced): novox/hq#478's head announced
  • 2026-10-26 02:00 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-26 07:51 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/hq@f1c50d3e018c` — **merged** since 2026-10-26T07:51:16Z **Source** — source.main moved to novox/hq@585551722a4e. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-10-26 02:00 (new) → proposed (announced): novox/hq#478's head announced - 2026-10-26 02:00 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-26 07:51 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 585551722a into main 2026-10-26 07:51:14 +00:00
mesh-tools deleted branch fix/1945-user-list-follows-r 2026-10-26 07:51:15 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#478