docs(prd-0070): record remote-terminal resolution; track detail in #478
tracker-policy-pr / check-pr (pull_request) Successful in 19s
test / integration-docker (pull_request) Successful in 42s
test / unit (pull_request) Successful in 52s
test / integration-firecracker (pull_request) Successful in 3m32s
test / coverage (pull_request) Successful in 26s
test / publish-infra (pull_request) Has been skipped

Remote terminal is an orchestrator operation, not a data-plane one: the
agent PTY is exec_agent-sourced (ssh -t / container exec --tty / docker
exec), which the orchestrator owns — the gateway never holds a PTY. A
--remote flag publishes a running agent's session; local + remote clients
share it via a session multiplexer (one PTY, many clients),
operator-role-gated, so the split's "one authenticated remote door" holds
for terminals too. Detailed design (multiplexer location, input
arbitration, per-client rendering, always-on vs --remote) tracked in #478.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-24 21:14:20 -04:00
parent 195e0f249d
commit 3d3d8fd7e8
+11 -9
View File
@@ -462,11 +462,15 @@ launch, teardown, list, supervise approvals, policy — is a control-plane
operation, so the trusted control plane is the single remote entry point. Keep
it **out of the gateway**: the data plane is the more-exposed, agent-facing
unit, and a goal of the split is to shrink its surface and keep its image slim
(no iroh/Rust dependency). Agent-PTY-to-mobile streaming is a *data-plane*
stream and a separate concern; if it must reach the phone over the same
endpoint, **relay it through the orchestrator's iroh door** rather than opening
a second door in the gateway — one authenticated remote entry point, plane
split intact.
(no iroh/Rust dependency). Remote **terminal** access rides the same door and is likewise an orchestrator
operation, not a data-plane one: the agent PTY is `exec_agent`-sourced (`ssh
-t` / `container exec --tty` / `docker exec`), which the orchestrator owns — the
gateway never holds a PTY. A `--remote` flag publishes a running agent's
session; local and remote clients share it through a **session multiplexer**
(one PTY, many attached clients), operator-role-gated, so the split's "one
authenticated remote door" holds for terminals too. Detailed design —
multiplexer location, input arbitration, per-client rendering, always-on vs.
`--remote` — is tracked in **#478**.
## Sequencing
@@ -555,7 +559,5 @@ Keep the gateway **service one shared thing** throughout.
plane (add/remove routes/keys/proposals without a restart).
- **Identity-token delivery:** exactly how the per-bottle token is placed
where the agent can present it but not swap in another bottle's.
- **Agent-PTY-to-mobile streaming path:** relay it through the orchestrator's
iroh endpoint (default — one authenticated remote door, plane split intact),
or give the data-plane stream its own transport. Only matters once remote
terminal mirroring lands.
- **Remote terminal design** (multiplexer location, input arbitration,
per-client rendering, always-on vs. `--remote`) is tracked in **#478**.