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
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:
@@ -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**.
|
||||
|
||||
Reference in New Issue
Block a user