Design 47 says what a node composes from: placement, its config layers, and the node record (issue 1126) #482

Merged
mesh-tools merged 11 commits from feat/1126-nodes-compose into main 2026-10-26 21:11:13 +00:00
Showing only changes of commit 5bb109e36e - Show all commits
@@ -703,7 +703,12 @@ backup holder backs up nothing, and the have says so.
public halves of its sealing and serving keys, the certificate issued for its internal name, its outward links
and networks, and its node-engine's contract. Written at start and when an observed fact changes, only when it
differs (ADR 0555 §3). Whether the hub took its found tunnel over, and which node enrolled under a carried
peer's key, are read from the placement and the records together, never written.
peer's key, are read from the placement and the records together, never written. Every node's account reads
every node's `<node>.node`: a grant the grants part's composer gives and the controller's frozen copy does not.
Since the take-over the grants part's list is the one the bus loads; after a `hand-back` the controller's list
holds, without that read, and nodes keep applying while composing their own fails loudly until the next
`take-over`. mesh-sdk's composer test holds the copy to every grant of the controller's golden plus exactly that
read and the bucket-creation advisories of issue 1790.
- **Composed again on events, never on a timer.** A changed input at the same fingerprint (a setting or given
value, a secret rotated or moved, a credential issued, a provider's contribution, a peer added to the hub) is
composed again when its event is heard, and applied as a revision of what runs (ADR 0547 §2).