L3: the node trusts the vault's key, serves the node seat node-engine and keeps its acts on the bus (issue 774, ADR 0561), rebased onto L2 #168

Merged
mesh-tools merged 14 commits from feat/774-vault-mints-l2 into main 2026-10-29 07:44:19 +00:00
2 changed files with 5 additions and 5 deletions
Showing only changes of commit 9120f94aa4 - Show all commits
+2 -2
View File
@@ -452,7 +452,7 @@ func nodeAgent(ctx context.Context, opts options, signer ed25519.PublicKey, trus
return
}
var ag *agent.Agent
// The kept release-5 declaration is no longer read once every module the catalogue places here has a have of its
// The kept release-5 declaration is no longer read once every module the seat's placement puts here has a have of its
// own (ADR 0550 §2: its signature is the controller's, trusted no more after the lease write).
if retired, why := placedAllHave(linked, session, node); retired && !keptRetired.Swap(true) {
say("the kept declaration is no longer read: " + why)
@@ -742,7 +742,7 @@ func busyModules() []string {
return out
}
// keptRetired says the kept declaration is read no more: every module the catalogue places on this node has a have of
// keptRetired says the kept declaration is read no more: every module the seat's placement puts on this node has a have of
// its own (placedAllHave), so what runs is the agent's alone (ADR 0550 §2, design 47's L3 s9).
var keptRetired atomic.Bool
+3 -3
View File
@@ -235,8 +235,8 @@ func followTrust(ctx context.Context, session *link.Session, trust *meshTrust, s
}
}
// placedAllHave says whether every module the catalogue places on node has a have of its own, read from the bus: then
// the kept declaration is read no more (keptRetired). A node the catalogue does not place, or whose placement or haves
// placedAllHave says whether every module the seat mesh-placement places on node has a have of its own, read from the
// bus: then the kept declaration is read no more (keptRetired). A node the seat does not place, or whose placement or haves
// cannot be read, keeps reading it.
func placedAllHave(ctx context.Context, session *link.Session, node string) (bool, string) {
key, err := delivery.PlacementKey(node)
@@ -260,7 +260,7 @@ func placedAllHave(ctx context.Context, session *link.Session, node string) (boo
// allHave says whether has finds a have for every module p places, and why not.
func allHave(p delivery.Placement, has func(module string) (bool, error)) (bool, string) {
if len(p.Modules) == 0 {
return false, "the catalogue places no module here"
return false, "the seat mesh-placement places no module here"
}
for _, m := range p.Modules {
ok, err := has(m.Module)