From f4d0d58619798f63d19dfebaf8cf51f07c9f1e65 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 20:24:46 +0100 Subject: [PATCH] K14 (owner forms): a finding's owner and waiting-on are one of three forms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit owner and waiting-on carry the pattern of the three forms (session who@node, a seat's name, forge:) in the layout and the state value, and the fixtures read two forms. mesh-sdk's writer is what refuses another. Generated code waits for K21. Builds: design 47 G §678, §540, §451 Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- .../mesh-conditions/fixtures/states.json | 42 +++++++++++++++++++ .../seats/mesh-conditions/seat.json | 12 ++++-- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/health-and-repair/seats/mesh-conditions/fixtures/states.json b/health-and-repair/seats/mesh-conditions/fixtures/states.json index 0cac1dd..f8b2682 100644 --- a/health-and-repair/seats/mesh-conditions/fixtures/states.json +++ b/health-and-repair/seats/mesh-conditions/fixtures/states.json @@ -113,5 +113,47 @@ ], "at": "2026-10-26T20:19:41.474823121Z" } + }, + { + "name": "a finding owned by a session and waiting on a seat (design 47 G 678)", + "of": "state:findings/", + "given": { + "v": 1, + "key": "module.mesh-host.ace.directory-used-as-found", + "kind": "directory-used-as-found", + "subject": { + "scope": "module", + "id": "mesh-host.ace", + "machine": "ace" + }, + "severity": "warning", + "summary": "a directory waits for a hand", + "source": "health-report", + "observer": "mesh-delivery-watchman", + "at": "2026-11-11T10:00:00Z", + "owner": "jochen@shanks", + "waiting-on": "node-engine" + } + }, + { + "name": "a finding owned by a seat and waiting on a commit's author (design 47 G 678, 540)", + "of": "state:findings/", + "given": { + "v": 1, + "key": "module.mesh-host.ace.directory-used-as-found", + "kind": "directory-used-as-found", + "subject": { + "scope": "module", + "id": "mesh-host.ace", + "machine": "ace" + }, + "severity": "warning", + "summary": "a directory waits for a hand", + "source": "health-report", + "observer": "mesh-delivery-watchman", + "at": "2026-11-11T10:00:00Z", + "owner": "node-engine", + "waiting-on": "forge:jochen" + } } ] diff --git a/health-and-repair/seats/mesh-conditions/seat.json b/health-and-repair/seats/mesh-conditions/seat.json index 0591b4a..e4fc40a 100644 --- a/health-and-repair/seats/mesh-conditions/seat.json +++ b/health-and-repair/seats/mesh-conditions/seat.json @@ -411,11 +411,13 @@ }, "owner": { "type": "string", - "description": "the module the finding is about, when not the observer" + "pattern": "^([a-z0-9][a-z0-9._-]*@[a-z0-9][a-z0-9-]*|[a-z][a-z0-9-]*|forge:[A-Za-z0-9._-]+)$", + "description": "who the finding is about, when not the observer: a session who@node (^[a-z0-9][a-z0-9._-]*@[a-z0-9][a-z0-9-]*$), a seat's name (^[a-z][a-z0-9-]*$) or a commit's author forge: (^forge:[A-Za-z0-9._-]+$); another is refused (design 47 G 678)" }, "waiting-on": { "type": "string", - "description": "what it waits on: a person, a part or a call" + "pattern": "^([a-z0-9][a-z0-9._-]*@[a-z0-9][a-z0-9-]*|[a-z][a-z0-9-]*|forge:[A-Za-z0-9._-]+)$", + "description": "what it waits on: a session who@node (^[a-z0-9][a-z0-9._-]*@[a-z0-9][a-z0-9-]*$), a seat's name (^[a-z][a-z0-9-]*$) or a commit's author forge: (^forge:[A-Za-z0-9._-]+$); another is refused (design 47 G 678)" } }, "required": [ @@ -819,11 +821,13 @@ }, "owner": { "type": "string", - "description": "the module the finding is about, when not the observer" + "pattern": "^([a-z0-9][a-z0-9._-]*@[a-z0-9][a-z0-9-]*|[a-z][a-z0-9-]*|forge:[A-Za-z0-9._-]+)$", + "description": "who the finding is about, when not the observer: a session who@node (^[a-z0-9][a-z0-9._-]*@[a-z0-9][a-z0-9-]*$), a seat's name (^[a-z][a-z0-9-]*$) or a commit's author forge: (^forge:[A-Za-z0-9._-]+$); another is refused (design 47 G 678)" }, "waiting-on": { "type": "string", - "description": "what it waits on: a person, a part or a call" + "pattern": "^([a-z0-9][a-z0-9._-]*@[a-z0-9][a-z0-9-]*|[a-z][a-z0-9-]*|forge:[A-Za-z0-9._-]+)$", + "description": "what it waits on: a session who@node (^[a-z0-9][a-z0-9._-]*@[a-z0-9][a-z0-9-]*$), a seat's name (^[a-z][a-z0-9-]*$) or a commit's author forge: (^forge:[A-Za-z0-9._-]+$); another is refused (design 47 G 678)" }, "actions": { "type": "array",