From 7ebdfb32781bb542996d6d92fff9606fa373cf83 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 05:33:20 +0100 Subject: [PATCH] Answer A-166: the runner keeps when, the health works out the age Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 6492891c..9d6f13b1 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -619,3 +619,7 @@ names the principle that settles it, and is cited as "design 47 G A-n". mesh-sdk's seat server (`conn.AnswerSeat`) and the tool runner's `serveSeats` read `seatdef.EffectiveCallers` and refuse a caller outside them, the unproven one included, before the holder runs; a holder keeps no caller check of its own. +- **A-166** (A-164, §76, §495; principles 1 and 7) The runner keeps a state `consumers` (history 1, a key per + consumer) holding the time its oldest unacknowledged message was delivered, written when a message is delivered or + acknowledged; `runner_health` works the age out as now minus that time when it is read, so nothing is read on a + timer.