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:
B.D. Murphy
2026-10-01 07:15:24 -07:00
parent 507ed95424
commit 893dc57574

View File

@@ -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