diff --git a/docs/prds/0070-per-host-orchestrator.md b/docs/prds/0070-per-host-orchestrator.md index 618e6180..86aed0c5 100644 --- a/docs/prds/0070-per-host-orchestrator.md +++ b/docs/prds/0070-per-host-orchestrator.md @@ -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**.