C11: mesh-conditions says findings-asked, resyncs one observer, and defines the finding bodies

The event findings-asked (ask, at, by, module; 7 days, 16 MiB), resync with an optional module and callers
operator, healers and sessions, and the section bodies: the finding with its layout whole, finding-written,
finding-cleared and findings-stated. The state findings is its owner's alone. Whether findings-views is a
state of this definition waits on a question.

Builds: design 47 G §383, §384, §390, §434, §437, §439

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
2026-11-11 10:42:51 +01:00
parent e84b1e3712
commit 41690f7c3f
2 changed files with 267 additions and 5 deletions
@@ -0,0 +1,23 @@
[
{
"name": "the keeper asks one observer to state its findings",
"of": "event:findings-asked",
"subject": "mesh.seat.mesh-conditions.event.findings-asked",
"given": {
"ask": "a-20261111t100000",
"at": "2026-11-11T10:00:00Z",
"by": "jochen",
"module": "mesh-host"
}
},
{
"name": "the keeper asks every observer",
"of": "event:findings-asked",
"subject": "mesh.seat.mesh-conditions.event.findings-asked",
"given": {
"ask": "a-20261111t100100",
"at": "2026-11-11T10:01:00Z",
"by": "mesh-conditions"
}
}
]
@@ -84,15 +84,26 @@
},
{
"name": "resync",
"description": "Read every observer's findings again and raise and clear what differs from the open conditions: the recovery of a keeper that missed a change.",
"description": "Ask the observers to state their findings again, every one or the one named, and raise and clear what differs from the open conditions: the recovery of a keeper that missed a change. Each call is written in the hand-act log of the seat mesh-hand-acts (design 47 G 390).",
"input": {
"properties": {},
"type": "object"
"type": "object",
"properties": {
"module": {
"type": "string",
"description": "ask this observer alone; none asks all"
}
},
"additionalProperties": false
},
"answer": {
"type": "object",
"description": "what was raised and cleared again"
}
},
"callers": [
"operator",
"healers",
"sessions"
]
}
],
"events": [
@@ -113,6 +124,40 @@
"body": {
"$ref": "#/defs/ConditionEvent"
}
},
{
"name": "findings-asked",
"keep": {
"max-age-days": 7,
"max-mib": 16
},
"body": {
"type": "object",
"description": "the keeper asks every observer, or one, to state its findings (design 47 G 384, 390)",
"properties": {
"ask": {
"type": "string",
"description": "the ask's id"
},
"at": {
"type": "string",
"format": "date-time"
},
"by": {
"type": "string",
"description": "who asked: the keeper, or the person or session that called resync"
},
"module": {
"type": "string",
"description": "to ask one observer; none asks all"
}
},
"required": [
"ask",
"at",
"by"
]
}
}
],
"family": {
@@ -363,6 +408,14 @@
"at": {
"type": "string",
"format": "date-time"
},
"owner": {
"type": "string",
"description": "the module the finding is about, when not the observer"
},
"waiting-on": {
"type": "string",
"description": "what it waits on: a person, a part or a call"
}
},
"required": [
@@ -380,7 +433,7 @@
"description": "one finding of the observer that wrote it"
}
],
"description": "every observer's findings, one key per finding; a key written raises or changes the condition of the same key, a key deleted clears it"
"description": "every observer's findings, one key per finding, kept in the observer's own state and read only by its owner's read tool; the keeper hears each change as the observer's events finding-written, finding-cleared and findings-stated (design 47 G 383, 434)"
}
],
"defs": {
@@ -643,5 +696,191 @@
"change"
]
}
},
"bodies": {
"Finding": {
"type": "object",
"description": "one finding as an observer says it: the layout whole, plus scope, id and since (design 47 G 437, 439)",
"properties": {
"kind": {
"type": "string"
},
"scope": {
"type": "string",
"description": "the key's first part: <scope>.<id>.<kind> (ADR 0564)"
},
"id": {
"type": "string",
"description": "the key's second part"
},
"at": {
"type": "string",
"format": "date-time"
},
"since": {
"type": "string",
"format": "date-time",
"description": "since when the finding stands"
},
"severity": {
"type": "string",
"enum": [
"urgent",
"warning"
]
},
"summary": {
"type": "string",
"description": "one line"
},
"headline": {
"type": "string"
},
"explanation": {
"type": "string"
},
"subject": {
"$ref": "#/defs/Subject"
},
"evidence": {
"type": "array",
"description": "newest first, at most 10",
"items": {
"$ref": "#/defs/Evidence"
}
},
"source": {
"type": "string",
"description": "the row, probe or event that saw it"
},
"observer": {
"type": "string",
"description": "the module that wrote it"
},
"owner": {
"type": "string",
"description": "the module the finding is about, when not the observer"
},
"waiting-on": {
"type": "string",
"description": "what it waits on: a person, a part or a call"
},
"actions": {
"type": "array",
"items": {
"$ref": "#/defs/Action"
}
},
"needs": {
"type": "string"
},
"resolver": {
"type": "string",
"description": "self, operator, agent or healer:<name>"
},
"ref": {
"type": "string",
"description": "the key's last part when it is not the kind"
},
"run": {
"type": "string",
"description": "what of its own saw it last"
}
},
"required": [
"kind",
"scope",
"id",
"at",
"since",
"severity",
"summary",
"subject",
"source",
"observer"
]
},
"FindingWritten": {
"$ref": "#/bodies/Finding"
},
"FindingCleared": {
"type": "object",
"description": "an observer no longer observes a finding",
"properties": {
"kind": {
"type": "string"
},
"scope": {
"type": "string"
},
"id": {
"type": "string"
},
"at": {
"type": "string",
"format": "date-time"
},
"why": {
"type": "string"
}
},
"required": [
"kind",
"scope",
"id",
"at",
"why"
]
},
"FindingsStated": {
"type": "object",
"description": "every finding an observer observes now, at its start and when asked (design 47 G 384, 439)",
"properties": {
"at": {
"type": "string",
"format": "date-time"
},
"asked": {
"type": "string",
"description": "the ask it answers; none at a start"
},
"findings": {
"type": "array",
"items": {
"$ref": "#/bodies/Finding"
}
},
"pending": {
"type": "array",
"description": "the keys the observer cannot judge yet since its start, with their since and bound",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"since": {
"type": "string",
"format": "date-time"
},
"bound": {
"type": "string",
"description": "a duration such as 5m"
}
},
"required": [
"key",
"since",
"bound"
]
}
}
},
"required": [
"at",
"findings",
"pending"
]
}
}
}