Spec 21 §4.8: reuse the in-flight agent-comm mailbox as the node transport
A parallel session is building an agent-comm stdio MCP server with an append-only NAS mailbox (infra/agent_bridge/, uncommitted). Rather than proposing a second channel, spec 21 now maps the task/result/requirement envelopes onto its message kinds and adopts its sanitization rules as system rules. Also states the boundary the parallel work should not cross: a mailbox is a transport, not a scheduler. It carries tasks; leases and heartbeats must not become 'a file in a folder'.
This commit is contained in:
@@ -240,6 +240,27 @@ producing wrong output is not.
|
||||
It cannot accept: translation, TTS on CUDA, anything needing an authenticated UI, anything
|
||||
requiring concurrent LLM + local TTS.
|
||||
|
||||
### 4.8 Transport (proposed; a parallel session is already building one)
|
||||
|
||||
The envelopes in §4.5–4.6 need a transport between a node and the controller. A parallel
|
||||
session in this repository is already building one: an `agent-comm` stdio MCP server with an
|
||||
append-only inbox/outbox mailbox on a NAS share (`infra/agent_bridge/`,
|
||||
`infra/oldbox-agent-communication-prompt.md`, in flight and uncommitted as of 2026-10-01).
|
||||
|
||||
If that lands, the recommendation is:
|
||||
|
||||
- **Reuse it for node↔controller messaging** rather than inventing a second channel.
|
||||
- The task envelope (§4.5) becomes message `kind: instruction`; the result envelope (§4.6)
|
||||
becomes `kind: report`, correlated by `task_id`.
|
||||
- Requirement records (§5.2) become `kind: requirement` + `kind: ack`.
|
||||
- The node report (§8.2) is the `evidence` payload, sanitized — it already contains no secrets.
|
||||
- Its security rules become system rules: **sanitized text/JSON only, atomic writes, no
|
||||
secrets in any message, no unauthenticated network listener.**
|
||||
|
||||
One correction this document adds to that in-flight work: a mailbox is a *transport*, not a
|
||||
scheduler. It carries tasks; it does not decide who may run what. That remains the controller's
|
||||
job, and leases/heartbeats must not be implemented as "a file in a folder".
|
||||
|
||||
---
|
||||
|
||||
## 5. WS3 — How changes are managed across products
|
||||
|
||||
Reference in New Issue
Block a user