No client names a holder: each reader keeps its own constant, held to its manifest (ADR 0625 section 4, issue 1966)

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
This commit is contained in:
2026-11-05 18:37:28 +01:00
parent 2020b87df0
commit e1eb98fcbc
2 changed files with 31 additions and 2 deletions
+6 -2
View File
@@ -19,6 +19,10 @@ import (
"route-proxy/contract"
)
// placementRead is the seat mesh-module-assigner's state placement as this module's manifest reads it (`reads`); no seat's
// client names a holder (novox/hq ADR 0625 §4), so the name is kept here and held to the manifest by TestTheReadIsTheManifests.
const placementRead = "mesh-delivery-assigner.placement"
// keptStates is every state route-proxy keeps, as both its halves write them: the routes and the refusals this
// proxy writes, readable by others, and the bound entries the provider helper writes.
func keptStates() []announce.State {
@@ -74,8 +78,8 @@ func followOnce(path string, held *table) error {
}
}
// Who is inside first, so the first table is served to the machines it is meant for.
if err := followInside(conn.Read(meshmoduleassignerclient.PlacementRead), held); err != nil {
log.Printf("cannot follow %s, so an internal name is served to this machine alone: %v", meshmoduleassignerclient.PlacementRead, err)
if err := followInside(conn.Read(placementRead), held); err != nil {
log.Printf("cannot follow %s, so an internal name is served to this machine alone: %v", placementRead, err)
}
if err := followPlans(conn.Read(meshprovisionerclient.PlansRead), newPlanned(account.Node, say), held, say); err != nil {
conn.Close()
@@ -0,0 +1,25 @@
package main
import (
"encoding/json"
"os"
"slices"
"testing"
)
// The state the proxy follows to know who is inside is one its manifest reads.
func TestTheReadIsTheManifests(t *testing.T) {
raw, err := os.ReadFile("../../module.json")
if err != nil {
t.Fatal(err)
}
var m struct {
Reads []string `json:"reads"`
}
if err := json.Unmarshal(raw, &m); err != nil {
t.Fatal(err)
}
if !slices.Contains(m.Reads, placementRead) {
t.Errorf("the proxy follows %s, its manifest reads %v", placementRead, m.Reads)
}
}