K3 (running healthy): running says the health of the build that runs

The node-engine seat's Running gains healthy, a nullable boolean so that a false survives the wire and a running
said by a node-engine of before G, with none, is told apart and reads as healthy; stopped is said only when the
have no longer holds the module. Two fixtures read healthy true and false; the one without it still decodes.
Generated code waits for K21.

Builds: design 47 G §520

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
2026-11-11 15:51:53 +01:00
parent 3ccc3cc3cb
commit 5e8dce621b
2 changed files with 38 additions and 3 deletions
+28
View File
@@ -92,6 +92,34 @@
"at": "2026-11-09T20:01:00Z"
}
},
{
"name": "running says the build that runs is healthy",
"of": "event:running",
"subject": "mesh.seat.node-engine.event.running.ace.nats",
"given": {
"v": 1,
"node": "ace",
"module": "nats",
"fingerprint": "src2:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"manifest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"healthy": true,
"at": "2026-11-11T09:00:00Z"
}
},
{
"name": "running says the build that runs turned unhealthy, still running",
"of": "event:running",
"subject": "mesh.seat.node-engine.event.running.ace.nats",
"given": {
"v": 1,
"node": "ace",
"module": "nats",
"fingerprint": "src2:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"manifest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"healthy": false,
"at": "2026-11-11T09:05:00Z"
}
},
{
"name": "running says a module stopped on the node, with no fingerprint",
"of": "event:running",
+10 -3
View File
@@ -2883,7 +2883,7 @@
},
"Running": {
"type": "object",
"description": "a module running healthy on a node at a build: what the node-engines of other nodes and the grants part decide a seat's pass from (ADR 0660 §2), kept last per subject with no age limit",
"description": "a module's build running on a node, and its health: what the node-engines of other nodes and the grants part decide a seat's pass from (ADR 0660 §2), and the assigner reads a provider's and a canary's health and a put's end from (design 47 G 520); said again on the same subject each time healthy changes and for every module the have holds at the engine's start, kept last per subject with no age limit",
"properties": {
"v": {
"type": "integer",
@@ -2905,14 +2905,21 @@
"type": "string",
"description": "the digest of that build's manifest, the indexer's manifest of it, read by digest from the catalog half"
},
"healthy": {
"type": [
"boolean",
"null"
],
"description": "the health of the build that runs, as the node-engine's have holds it from the module's declared check (ADR 0240); a running with none, said by a node-engine of before design 47 G, reads as healthy (design 47 G 520). SeatsToPassOn reads none of it: an unhealthy holder still holds its seat"
},
"at": {
"type": "string",
"description": "when it was seen running healthy, RFC 3339",
"description": "when it was said, RFC 3339",
"format": "date-time"
},
"stopped": {
"type": "boolean",
"description": "true when the module no longer runs on the node: no fingerprint or manifest then (design 47 G 365, 404); mesh-sdk's SeatsToPassOn counts such a module as not running there"
"description": "true when the have no longer holds the module on the node, never for an unhealthy build: no fingerprint or manifest then (design 47 G 365, 404, 520); mesh-sdk's SeatsToPassOn counts such a module as not running there"
}
},
"required": [