From ab1efaa74b5ec01fdb83aabcb00af7c01ab6ea36 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 5 Nov 2026 21:39:57 +0100 Subject: [PATCH] mesh-sdk: no Placement domain; the captured seat copies follow the moved seats (issue 1966) Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i --- go/seatdef/seatdef.go | 2 +- .../seats/mesh-module-assigner.json | 66 +++++++++++++++++-- .../seatlisttest/seats/mesh-wants.json | 8 ++- .../seats/node-container-runtime.json | 2 +- .../seatlisttest/seats/node-environment.json | 2 +- .../seats/node-package-manager.json | 2 +- .../seats/node-service-manager.json | 2 +- 7 files changed, 71 insertions(+), 13 deletions(-) diff --git a/go/seatdef/seatdef.go b/go/seatdef/seatdef.go index 1e4fc41..cfa8e13 100644 --- a/go/seatdef/seatdef.go +++ b/go/seatdef/seatdef.go @@ -43,7 +43,7 @@ const ( ) // Domains are the glossary's domains that own a seat, by their headings (hq 00-META/glossary.md, ADR 0244). -var Domains = []string{"Module", "Config", "Core", "Placement", "Provisioning", "Identity and access", "Delivery", +var Domains = []string{"Module", "Config", "Core", "Provisioning", "Identity and access", "Delivery", "Health and repair", "Data", "Connectivity", "Operator and conversation"} // Definition is one seat's contract. diff --git a/go/seatlist/seatlisttest/seats/mesh-module-assigner.json b/go/seatlist/seatlisttest/seats/mesh-module-assigner.json index 8e18a70..4e49210 100644 --- a/go/seatlist/seatlisttest/seats/mesh-module-assigner.json +++ b/go/seatlist/seatlisttest/seats/mesh-module-assigner.json @@ -3,13 +3,13 @@ "seat": "mesh-module-assigner", "scope": "mesh", "grain": "whole", - "domain": "Placement", + "domain": "Core", "decision": "novox/hq ADR 0567, ADR 0634, ADR 0635", "description": "The seat that places modules on nodes (ADR 0567): the state of placement and the proposals that change it. Renamed from mesh-placement (ADR 0634 ยง9).", "verbs": [ { - "name": "placement", - "description": "Read placement: one node's key, the nodes one module is placed on, or every key, each with its revision, and how full the state is against its cap. With history, one node's or one module's changes in order: a revision the state keeps whole, an older one as the proposal's changes from its placement-changed event.", + "name": "assignments", + "description": "Read the assignments: one node's key, the nodes one module is placed on, or every key, each with its revision, and how full the state is against its cap. With history, one node's or one module's changes in order: a revision the state keeps whole, an older one as the proposal's changes from its placement-changed event.", "optional": true, "input": { "properties": { @@ -188,7 +188,7 @@ }, "states": [ { - "name": "placement", + "name": "assignments", "template": "state", "key-forms": [ { @@ -276,7 +276,7 @@ } ], "history": 64, - "description": "placements, one key per node and one per module placed on it, written only on the operator's Approve of a proposal by compare-and-set at the revision it was laid over" + "description": "assignments, one key per node and one per module placed on it, written only on the operator's Approve of a proposal by compare-and-set at the revision it was laid over" }, { "name": "proposals", @@ -514,7 +514,7 @@ } }, "tunnel": { - "type": "object", + "$ref": "#/defs/FoundTunnel", "description": "the tunnel found on the node when it was adopted" }, "peer-names": { @@ -526,6 +526,60 @@ } } }, + "FoundTunnel": { + "type": "object", + "description": "a tunnel found on the machine when it was adopted: everything but its private key", + "properties": { + "interface": { + "type": "string" + }, + "unit": { + "type": "string" + }, + "config": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "mtu": { + "type": "integer" + }, + "address": { + "type": "string" + }, + "range": { + "type": "string" + }, + "public-key": { + "type": "string" + }, + "peers": { + "type": "array", + "items": { + "$ref": "#/defs/FoundTunnelPeer" + } + } + }, + "required": [ + "interface" + ] + }, + "FoundTunnelPeer": { + "type": "object", + "description": "one peer of a found tunnel", + "properties": { + "public-key": { + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "public-key" + ] + }, "Placement": { "type": "object", "description": "one node's placement assembled", diff --git a/go/seatlist/seatlisttest/seats/mesh-wants.json b/go/seatlist/seatlisttest/seats/mesh-wants.json index 236ed60..a883452 100644 --- a/go/seatlist/seatlisttest/seats/mesh-wants.json +++ b/go/seatlist/seatlisttest/seats/mesh-wants.json @@ -3,7 +3,7 @@ "seat": "mesh-wants", "scope": "mesh", "grain": "whole", - "domain": "Placement", + "domain": "Delivery", "decision": "novox/hq ADR 0565, ADR 0634, ADR 0635", "description": "The seat that says what each node should run and whether each module's new builds wait for a person (ADR 0565, ADR 0539).", "verbs": [ @@ -97,7 +97,11 @@ }, "backup": { "type": "string", - "description": "again or skip" + "description": "again or skip", + "enum": [ + "again", + "skip" + ] }, "words": { "type": "string" diff --git a/go/seatlist/seatlisttest/seats/node-container-runtime.json b/go/seatlist/seatlisttest/seats/node-container-runtime.json index 1b1bf02..8346a78 100644 --- a/go/seatlist/seatlisttest/seats/node-container-runtime.json +++ b/go/seatlist/seatlisttest/seats/node-container-runtime.json @@ -3,6 +3,6 @@ "seat": "node-container-runtime", "scope": "node", "grain": "seat-list", - "domain": "Placement", + "domain": "Core", "decision": "novox/hq ADR 0166, ADR 0207" } diff --git a/go/seatlist/seatlisttest/seats/node-environment.json b/go/seatlist/seatlisttest/seats/node-environment.json index 75bb5d3..6a73957 100644 --- a/go/seatlist/seatlisttest/seats/node-environment.json +++ b/go/seatlist/seatlisttest/seats/node-environment.json @@ -3,6 +3,6 @@ "seat": "node-environment", "scope": "node", "grain": "seat-list", - "domain": "Placement", + "domain": "Core", "decision": "novox/hq ADR 0203" } diff --git a/go/seatlist/seatlisttest/seats/node-package-manager.json b/go/seatlist/seatlisttest/seats/node-package-manager.json index 034e878..b5fec3a 100644 --- a/go/seatlist/seatlisttest/seats/node-package-manager.json +++ b/go/seatlist/seatlisttest/seats/node-package-manager.json @@ -3,6 +3,6 @@ "seat": "node-package-manager", "scope": "node", "grain": "seat-list", - "domain": "Placement", + "domain": "Core", "decision": "novox/hq ADR 0207" } diff --git a/go/seatlist/seatlisttest/seats/node-service-manager.json b/go/seatlist/seatlisttest/seats/node-service-manager.json index 695bc00..c46eeff 100644 --- a/go/seatlist/seatlisttest/seats/node-service-manager.json +++ b/go/seatlist/seatlisttest/seats/node-service-manager.json @@ -3,7 +3,7 @@ "seat": "node-service-manager", "scope": "node", "grain": "seat-list", - "domain": "Placement", + "domain": "Core", "decision": "novox/hq ADR 0177", "verbs": [ {