K4, K5 (node-engine waits): the seat says wait-held and wait-ended, and the have carries its wait

defs.Wait has the fields of a wait (owner, step compose or kept-build, node, on, bound, since, clock-from, words, reason)
and, in the have, ask-at and act; wait-held.<node>.<module> and wait-ended.<node>.<module> are kept last per subject on
the stream running is kept on; the have's value gains wait, waits stays. Generated code waits for K21.

Builds: design 47 G §498, §499, §541, §556, §560, §629

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
2026-11-11 20:31:03 +01:00
parent 7d730a4a75
commit a5cf2c5df1
3 changed files with 135 additions and 0 deletions
+27
View File
@@ -131,5 +131,32 @@
"stopped": true,
"at": "2026-11-11T09:00:00Z"
}
},
{
"name": "a kept build's wait is held",
"of": "event:wait-held",
"subject": "mesh.seat.node-engine.event.wait-held.ace.postgres",
"given": {
"owner": "node-engine",
"step": "kept-build",
"node": "ace",
"on": "the kept build of postgres",
"bound": "60m",
"since": "2026-11-11T10:00:00Z",
"clock-from": "2026-11-11T10:00:00Z",
"words": "waiting for the kept build of postgres on ace",
"reason": "node away"
}
},
{
"name": "a hold of the composition ends",
"of": "event:wait-ended",
"subject": "mesh.seat.node-engine.event.wait-ended.ace.postgres",
"given": {
"owner": "node-engine",
"step": "compose",
"since": "2026-11-11T10:00:00Z",
"reason": "restore point missing"
}
}
]
+23
View File
@@ -515,5 +515,28 @@
"contract": 3,
"at": "2026-11-05T12:00:00Z"
}
},
{
"name": "a have that waits for the recovery module, with its wait, ask-at and act (design 47 G 560, 629)",
"of": "state:have/<node>.<module>",
"given": {
"v": 1,
"fp": "0123456789ab",
"phase": "held",
"detail": "waiting for a restore point",
"wait": {
"owner": "node-engine",
"step": "compose",
"on": "the recovery module's ended",
"bound": "90m",
"since": "2026-11-11T10:00:00Z",
"clock-from": "2026-11-11T10:00:00Z",
"words": "waiting for the point of postgres's data",
"reason": "recovery wait",
"ask-at": "2026-11-11T10:00:00Z",
"act": "a-20261111t100000"
},
"health": "waits"
}
}
]
+85
View File
@@ -904,6 +904,28 @@
"body": {
"$ref": "#/defs/Running"
}
},
{
"name": "wait-held",
"subject": "wait-held.<node>.<module>",
"keep": {
"max-age-days": 0,
"last-per-subject": true
},
"body": {
"$ref": "#/defs/Wait"
}
},
{
"name": "wait-ended",
"subject": "wait-ended.<node>.<module>",
"keep": {
"max-age-days": 0,
"last-per-subject": true
},
"body": {
"$ref": "#/defs/Wait"
}
}
],
"family": {
@@ -1008,6 +1030,9 @@
},
"handed": {
"$ref": "#/defs/AccountsHanded"
},
"wait": {
"$ref": "#/defs/Wait"
}
},
"required": [
@@ -2986,6 +3011,66 @@
"node",
"processes"
]
},
"Wait": {
"type": "object",
"description": "a hold or wait a node-engine says, the fields of the seat mesh-wants' wait (design 47 G 498, 512, 629); in the have it also carries ask-at and act (design 47 G 560)",
"properties": {
"owner": {
"type": "string",
"description": "the seat holding the wait: node-engine"
},
"step": {
"type": "string",
"enum": [
"compose",
"kept-build"
],
"description": "compose: a hold of the composition (a restore point missing, an entry missing, parts that differ, a recovery that waits); kept-build: waiting for a kept build (design 47 G 499, 541)"
},
"node": {
"type": "string",
"description": "the node waited on: the build node for a kept build; the subject's <node> is the node that says it"
},
"on": {
"type": "string",
"description": "what it waits on"
},
"bound": {
"type": "string",
"description": "a duration such as 30m"
},
"since": {
"type": "string",
"format": "date-time"
},
"clock-from": {
"type": "string",
"format": "date-time",
"description": "the time the bound counts from (design 47 G 266, 269, 498)"
},
"words": {
"type": "string",
"description": "the wait said in words"
},
"reason": {
"type": "string",
"description": "why it holds, such as restore point missing, entry-missing, parts-differ, node away or build no longer kept (design 47 G 541, 499)"
},
"ask-at": {
"type": "string",
"format": "date-time",
"description": "in the have: the time of the first ask of the recovery module for this wait (design 47 G 560)"
},
"act": {
"type": "string",
"description": "in the have: the act the recovery module answered accepted with (design 47 G 560)"
}
},
"required": [
"step",
"since"
]
}
}
}