From 62296459cfd6eb3dd82e22d24b4e496785543119 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 21:38:55 +0100 Subject: [PATCH] G D-7: the node-engine bootstrap copy is laid again from mesh-contracts 3658ceb, byte for byte MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Builds: design 47 G §203, §427, A-3 (.work/47-G/dev2-ledger.md) Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- go/seatlist/bootstrap/node-engine.json | 134 +++++++++++++++++- .../seatlisttest/seats/node-engine.json | 134 +++++++++++++++++- go/testdata/beside/CAPTURED | 2 +- .../seats/node-engine/seat.json.captured | 134 +++++++++++++++++- 4 files changed, 397 insertions(+), 7 deletions(-) diff --git a/go/seatlist/bootstrap/node-engine.json b/go/seatlist/bootstrap/node-engine.json index ddab4d6c..19a8dd52 100644 --- a/go/seatlist/bootstrap/node-engine.json +++ b/go/seatlist/bootstrap/node-engine.json @@ -715,7 +715,7 @@ }, { "name": "first-views", - "description": "The node-engine's first views of the owners' states it follows (design 47 G 422, 204): per owner and state, the tool it asks, the revision its picture holds and why it is behind, when it asked and was answered, how many asks and whether its condition is raised; served by mesh-sdk's runtime as the view's read tool.", + "description": "The node-engine's first views of the owners' states it follows (design 47 G 422, 204): per owner and state, the tool it asks, the revision its picture holds and why it is behind, when it asked and was answered, how many asks and whether its condition is raised; served by mesh-sdk's runtime as the view's read tool; its entries and its kept wants beside (design 47 G 698).", "class": "read", "input": { "type": "object", @@ -724,7 +724,9 @@ "answer": { "type": "object", "required": [ - "first-views" + "first-views", + "entries", + "wants" ], "properties": { "first-views": { @@ -733,6 +735,65 @@ "type": "object" }, "description": "one status per owner and state followed, as mesh-sdk's views runtime keeps it" + }, + "entries": { + "type": "array", + "description": "one row per entry the node-engine keeps of a module's build by its fingerprint: when it asked the indexer's entry and where that stands (design 47 G 698)", + "items": { + "type": "object", + "required": [ + "fingerprint", + "state", + "since" + ], + "properties": { + "fingerprint": { + "type": "string", + "description": "the build's fingerprint" + }, + "state": { + "type": "string", + "enum": [ + "asked", + "answered", + "not-found" + ], + "description": "asked of the indexer, answered, or not found by it" + }, + "since": { + "type": "string", + "format": "date-time", + "description": "since when it stands in that state, RFC 3339" + } + } + } + }, + "wants": { + "type": "array", + "description": "the wants the node-engine keeps (design 47 G 683, 698)", + "items": { + "type": "object", + "required": [ + "module", + "fingerprint", + "kept-since" + ], + "properties": { + "module": { + "type": "string", + "description": "the module the want is of" + }, + "fingerprint": { + "type": "string", + "description": "the fingerprint wanted" + }, + "kept-since": { + "type": "string", + "format": "date-time", + "description": "since when the want is kept, RFC 3339" + } + } + } } } } @@ -816,6 +877,75 @@ } } }, + { + "name": "entry-again", + "description": "Ask the indexer's entry of a build again now, by hand (design 47 G 683, 698): a hand act, its caller and why kept; the answer says what was asked and the verb that reads it.", + "class": "act", + "input": { + "type": "object", + "required": [ + "fingerprint", + "why" + ], + "properties": { + "fingerprint": { + "type": "string", + "description": "the build's fingerprint, as first-views' entries name it" + }, + "why": { + "type": "string", + "description": "why it is asked again, in plain words" + } + } + }, + "answer": { + "type": "object", + "required": [ + "asked", + "read" + ], + "properties": { + "asked": { + "type": "object", + "description": "the hand ask written", + "required": [ + "v", + "fingerprint", + "why", + "by", + "at" + ], + "properties": { + "v": { + "type": "integer", + "description": "the layout's version" + }, + "fingerprint": { + "type": "string", + "description": "the build's fingerprint" + }, + "why": { + "type": "string", + "description": "why it was asked again" + }, + "by": { + "type": "string", + "description": "the caller the runtime proved" + }, + "at": { + "type": "string", + "format": "date-time", + "description": "when it was asked, RFC 3339" + } + } + }, + "read": { + "type": "string", + "description": "the verb that reads the status, first-views" + } + } + } + }, { "name": "process-builds", "description": "The build each process on this node was started with (design 47 *The revision view*): per service and container the fingerprint the node-engine handed it in MESH_FINGERPRINT, or why it is unknown, and when it started. Narrowed by module. Reads only.", diff --git a/go/seatlist/seatlisttest/seats/node-engine.json b/go/seatlist/seatlisttest/seats/node-engine.json index ddab4d6c..19a8dd52 100644 --- a/go/seatlist/seatlisttest/seats/node-engine.json +++ b/go/seatlist/seatlisttest/seats/node-engine.json @@ -715,7 +715,7 @@ }, { "name": "first-views", - "description": "The node-engine's first views of the owners' states it follows (design 47 G 422, 204): per owner and state, the tool it asks, the revision its picture holds and why it is behind, when it asked and was answered, how many asks and whether its condition is raised; served by mesh-sdk's runtime as the view's read tool.", + "description": "The node-engine's first views of the owners' states it follows (design 47 G 422, 204): per owner and state, the tool it asks, the revision its picture holds and why it is behind, when it asked and was answered, how many asks and whether its condition is raised; served by mesh-sdk's runtime as the view's read tool; its entries and its kept wants beside (design 47 G 698).", "class": "read", "input": { "type": "object", @@ -724,7 +724,9 @@ "answer": { "type": "object", "required": [ - "first-views" + "first-views", + "entries", + "wants" ], "properties": { "first-views": { @@ -733,6 +735,65 @@ "type": "object" }, "description": "one status per owner and state followed, as mesh-sdk's views runtime keeps it" + }, + "entries": { + "type": "array", + "description": "one row per entry the node-engine keeps of a module's build by its fingerprint: when it asked the indexer's entry and where that stands (design 47 G 698)", + "items": { + "type": "object", + "required": [ + "fingerprint", + "state", + "since" + ], + "properties": { + "fingerprint": { + "type": "string", + "description": "the build's fingerprint" + }, + "state": { + "type": "string", + "enum": [ + "asked", + "answered", + "not-found" + ], + "description": "asked of the indexer, answered, or not found by it" + }, + "since": { + "type": "string", + "format": "date-time", + "description": "since when it stands in that state, RFC 3339" + } + } + } + }, + "wants": { + "type": "array", + "description": "the wants the node-engine keeps (design 47 G 683, 698)", + "items": { + "type": "object", + "required": [ + "module", + "fingerprint", + "kept-since" + ], + "properties": { + "module": { + "type": "string", + "description": "the module the want is of" + }, + "fingerprint": { + "type": "string", + "description": "the fingerprint wanted" + }, + "kept-since": { + "type": "string", + "format": "date-time", + "description": "since when the want is kept, RFC 3339" + } + } + } } } } @@ -816,6 +877,75 @@ } } }, + { + "name": "entry-again", + "description": "Ask the indexer's entry of a build again now, by hand (design 47 G 683, 698): a hand act, its caller and why kept; the answer says what was asked and the verb that reads it.", + "class": "act", + "input": { + "type": "object", + "required": [ + "fingerprint", + "why" + ], + "properties": { + "fingerprint": { + "type": "string", + "description": "the build's fingerprint, as first-views' entries name it" + }, + "why": { + "type": "string", + "description": "why it is asked again, in plain words" + } + } + }, + "answer": { + "type": "object", + "required": [ + "asked", + "read" + ], + "properties": { + "asked": { + "type": "object", + "description": "the hand ask written", + "required": [ + "v", + "fingerprint", + "why", + "by", + "at" + ], + "properties": { + "v": { + "type": "integer", + "description": "the layout's version" + }, + "fingerprint": { + "type": "string", + "description": "the build's fingerprint" + }, + "why": { + "type": "string", + "description": "why it was asked again" + }, + "by": { + "type": "string", + "description": "the caller the runtime proved" + }, + "at": { + "type": "string", + "format": "date-time", + "description": "when it was asked, RFC 3339" + } + } + }, + "read": { + "type": "string", + "description": "the verb that reads the status, first-views" + } + } + } + }, { "name": "process-builds", "description": "The build each process on this node was started with (design 47 *The revision view*): per service and container the fingerprint the node-engine handed it in MESH_FINGERPRINT, or why it is unknown, and when it started. Narrowed by module. Reads only.", diff --git a/go/testdata/beside/CAPTURED b/go/testdata/beside/CAPTURED index 9553d04d..5df55f8a 100644 --- a/go/testdata/beside/CAPTURED +++ b/go/testdata/beside/CAPTURED @@ -11,7 +11,7 @@ Only what go/catalogue's tests read is captured (R4b, issue 1379). Refreshed 202 repositories; before that it was mesh-controller's copy, which still held two modules that had left the catalogue. mesh-catalog b5dbfbb784507e211372a7c9640d91f7d6dadd84 modules/*/module.json, modules/*/files/**, modules/*/templates/**, predefined.json -mesh-contracts b76e52d30a98a43e07e28c6f7c5b2f9a754cbfbb the seat files of the eight bootstrapped seats held there (seats/, health-and-repair/seats/, operator-and-conversation/seats/), as seat.json.captured (milestone 47/G) +mesh-contracts 3658ceb1b68c21e6a3b4a8eca2e35a6e7d82b53b the seat files of the eight bootstrapped seats held there (seats/, health-and-repair/seats/, operator-and-conversation/seats/), as seat.json.captured (milestone 47/G) mesh-delivery 5bf848144283055a1ef37441eeda0e439fb6ad7e contracts/seats/mesh-catalog and mesh-delivery-checker, as seat.json.captured (go/seatlist's bootstrap test; milestone 47/G) mesh-host cdcba9ca73755854d21e4e657d7e46c32b9b5265 internal/apply/placement_guard.go diff --git a/go/testdata/beside/mesh-contracts/seats/node-engine/seat.json.captured b/go/testdata/beside/mesh-contracts/seats/node-engine/seat.json.captured index ddab4d6c..19a8dd52 100644 --- a/go/testdata/beside/mesh-contracts/seats/node-engine/seat.json.captured +++ b/go/testdata/beside/mesh-contracts/seats/node-engine/seat.json.captured @@ -715,7 +715,7 @@ }, { "name": "first-views", - "description": "The node-engine's first views of the owners' states it follows (design 47 G 422, 204): per owner and state, the tool it asks, the revision its picture holds and why it is behind, when it asked and was answered, how many asks and whether its condition is raised; served by mesh-sdk's runtime as the view's read tool.", + "description": "The node-engine's first views of the owners' states it follows (design 47 G 422, 204): per owner and state, the tool it asks, the revision its picture holds and why it is behind, when it asked and was answered, how many asks and whether its condition is raised; served by mesh-sdk's runtime as the view's read tool; its entries and its kept wants beside (design 47 G 698).", "class": "read", "input": { "type": "object", @@ -724,7 +724,9 @@ "answer": { "type": "object", "required": [ - "first-views" + "first-views", + "entries", + "wants" ], "properties": { "first-views": { @@ -733,6 +735,65 @@ "type": "object" }, "description": "one status per owner and state followed, as mesh-sdk's views runtime keeps it" + }, + "entries": { + "type": "array", + "description": "one row per entry the node-engine keeps of a module's build by its fingerprint: when it asked the indexer's entry and where that stands (design 47 G 698)", + "items": { + "type": "object", + "required": [ + "fingerprint", + "state", + "since" + ], + "properties": { + "fingerprint": { + "type": "string", + "description": "the build's fingerprint" + }, + "state": { + "type": "string", + "enum": [ + "asked", + "answered", + "not-found" + ], + "description": "asked of the indexer, answered, or not found by it" + }, + "since": { + "type": "string", + "format": "date-time", + "description": "since when it stands in that state, RFC 3339" + } + } + } + }, + "wants": { + "type": "array", + "description": "the wants the node-engine keeps (design 47 G 683, 698)", + "items": { + "type": "object", + "required": [ + "module", + "fingerprint", + "kept-since" + ], + "properties": { + "module": { + "type": "string", + "description": "the module the want is of" + }, + "fingerprint": { + "type": "string", + "description": "the fingerprint wanted" + }, + "kept-since": { + "type": "string", + "format": "date-time", + "description": "since when the want is kept, RFC 3339" + } + } + } } } } @@ -816,6 +877,75 @@ } } }, + { + "name": "entry-again", + "description": "Ask the indexer's entry of a build again now, by hand (design 47 G 683, 698): a hand act, its caller and why kept; the answer says what was asked and the verb that reads it.", + "class": "act", + "input": { + "type": "object", + "required": [ + "fingerprint", + "why" + ], + "properties": { + "fingerprint": { + "type": "string", + "description": "the build's fingerprint, as first-views' entries name it" + }, + "why": { + "type": "string", + "description": "why it is asked again, in plain words" + } + } + }, + "answer": { + "type": "object", + "required": [ + "asked", + "read" + ], + "properties": { + "asked": { + "type": "object", + "description": "the hand ask written", + "required": [ + "v", + "fingerprint", + "why", + "by", + "at" + ], + "properties": { + "v": { + "type": "integer", + "description": "the layout's version" + }, + "fingerprint": { + "type": "string", + "description": "the build's fingerprint" + }, + "why": { + "type": "string", + "description": "why it was asked again" + }, + "by": { + "type": "string", + "description": "the caller the runtime proved" + }, + "at": { + "type": "string", + "format": "date-time", + "description": "when it was asked, RFC 3339" + } + } + }, + "read": { + "type": "string", + "description": "the verb that reads the status, first-views" + } + } + } + }, { "name": "process-builds", "description": "The build each process on this node was started with (design 47 *The revision view*): per service and container the fingerprint the node-engine handed it in MESH_FINGERPRINT, or why it is unknown, and when it started. Narrowed by module. Reads only.",