mesh-sdk: no Placement domain; the captured seat copies follow the moved seats (issue 1966)

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
This commit is contained in:
2026-11-05 21:39:57 +01:00
parent fd9bf5e30a
commit ab1efaa74b
7 changed files with 71 additions and 13 deletions
+1 -1
View File
@@ -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.
@@ -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",
@@ -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"
@@ -3,6 +3,6 @@
"seat": "node-container-runtime",
"scope": "node",
"grain": "seat-list",
"domain": "Placement",
"domain": "Core",
"decision": "novox/hq ADR 0166, ADR 0207"
}
@@ -3,6 +3,6 @@
"seat": "node-environment",
"scope": "node",
"grain": "seat-list",
"domain": "Placement",
"domain": "Core",
"decision": "novox/hq ADR 0203"
}
@@ -3,6 +3,6 @@
"seat": "node-package-manager",
"scope": "node",
"grain": "seat-list",
"domain": "Placement",
"domain": "Core",
"decision": "novox/hq ADR 0207"
}
@@ -3,7 +3,7 @@
"seat": "node-service-manager",
"scope": "node",
"grain": "seat-list",
"domain": "Placement",
"domain": "Core",
"decision": "novox/hq ADR 0177",
"verbs": [
{