C12: mesh-watchdogs says machine-away and machine-back

Subject parts name the machine, not the publisher; kept 90 days and 16 MiB.

Builds: design 47 G §389, §436

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
2026-11-11 10:43:02 +01:00
parent 41690f7c3f
commit 70b91f7a79
2 changed files with 100 additions and 0 deletions
@@ -0,0 +1,24 @@
[
{
"name": "a machine's presence expired",
"of": "event:machine-away",
"subject": "mesh.seat.mesh-watchdogs.event.machine-away.g14",
"given": {
"v": 1,
"machine": "g14",
"at": "2026-11-11T10:00:00Z",
"last-heard": "2026-11-11T09:58:00Z"
}
},
{
"name": "a machine heard again",
"of": "event:machine-back",
"subject": "mesh.seat.mesh-watchdogs.event.machine-back.g14",
"given": {
"v": 1,
"machine": "g14",
"at": "2026-11-11T10:30:00Z",
"last-heard": "2026-11-11T10:30:00Z"
}
}
]
@@ -159,6 +159,82 @@
}
}
],
"events": [
{
"name": "machine-away",
"subject": "machine-away.<machine>",
"keep": {
"max-age-days": 90,
"max-mib": 16
},
"body": {
"type": "object",
"description": "the watchman's presence key of a machine expired (ADR 0564 4); published by the holder of this seat alone for another machine (design 47 G 436)",
"properties": {
"v": {
"type": "integer",
"description": "the layout's version"
},
"machine": {
"type": "string",
"description": "the machine whose presence changed"
},
"at": {
"type": "string",
"format": "date-time"
},
"last-heard": {
"type": "string",
"format": "date-time",
"description": "when the machine was last heard"
}
},
"required": [
"v",
"machine",
"at",
"last-heard"
]
}
},
{
"name": "machine-back",
"subject": "machine-back.<machine>",
"keep": {
"max-age-days": 90,
"max-mib": 16
},
"body": {
"type": "object",
"description": "a machine is heard again after it was away",
"properties": {
"v": {
"type": "integer",
"description": "the layout's version"
},
"machine": {
"type": "string",
"description": "the machine whose presence changed"
},
"at": {
"type": "string",
"format": "date-time"
},
"last-heard": {
"type": "string",
"format": "date-time",
"description": "when the machine was last heard"
}
},
"required": [
"v",
"machine",
"at",
"last-heard"
]
}
}
],
"states": [
{
"name": "presence",