From 1fa531268b219afe1d0f2f32a58004db82429adb Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 06:07:36 +0100 Subject: [PATCH] Answer A-219: the gate takes the operator channel as an interface; only Act moves Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index a1103d43..3e1ddf5e 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -156,3 +156,8 @@ the principle that settles it, cited as "design 47 G A-n". seat's `entry`, and `FormChanges` compares it with the want's entry. - **A-218** (A-206, §696; principle 3) `pipeline-waits` is cleared when the node-engine seat's `running` says the awaited runner fingerprint healthy; A-206's `runner version` holds over §696's wording. +- **A-219** (refines A-198; §677; principle 7, one form for each thing) Only `Act` and `ActDigest` move into mesh-sdk's + `go/operatorask`; the ask's types stay the generated seat contract's. The gate in `go/process` takes the operator + channel's calls (ask, read the warrant, record) as an interface its caller passes, which `operatorchannelclient` + implements over the generated types, so no form is copied and no import cycle arises. The seat client's + `wait: held` lives with `process.Conn`'s call, as there is no `go/seats`.