docs(proposals): the Terminal tab, a shell in each coding agent's sandbox: Dean's decisions, the new-terminal rules, and the architecture
Summary
The Terminal tab's proposal and architecture, as Dean decided them on 2026-10-14. Docs only; no behavior change.
docs/proposals/terminal-tab.md: Dean's decisions and the round-3 "New terminal: the rules" table (approved: "Terminal - looks good to me"). A terminal belongs to one coding agent's sandbox, never the plan. It connects on demand and disconnects after 5 minutes without typing. There's no cap. A stopped sandbox resumes only on a click. GitHub stays live while a terminal is connected, and the agent is not told.docs/proposals/terminal-architecture.md: components, data flows, session-replay masking, where terminal output may and may not go, the two AGENTS.md lines Dean approved, risks, costs, and the PR breakdown the stack below follows.
Design show (static mocks on the app's compiled CSS): https://stage-w2158.conductor.show/ (round 3; earlier rounds linked from it).
This PR is the base of the terminal stack: web PRs 1ā3 (lease + lifecycle, tmux + routes, the WebSocket relay) and host PR 4 follow, and desktop PRs 5ā9 come from a parallel worker.
Evidence
- Platform-independent checks:
pnpm check:affected(docs only). - macOS Electron verification (
./scripts/verify.sh):not run. Docs only.
Visual evidence
Not applicable (docs). The mocks are linked above.
Invariants
-
./scripts/check.shgreen; renderer/UI PRs also./scripts/verify.shwith evidence inspected. (CI) - JSON Schema goldens unchanged.
- Every behavior change has, in this PR, the test that fails without it; no change-detector test added. (No behavior change.)
- Gateway envelope goldens unchanged.
- No new
astype assertion outside the allowlisted files. - No
Effect.runPromise/runSync/runForkoutside the runtime edges. - No new raw async primitives.
- No discarded Effect, Stream, or Layer.
- Test count unchanged.
- No hand-rolled file replaced.
- No
CLAUDE.md/AGENTS.mdsentence names a changed part. -
PRIVACY.mdunchanged. - Package deps unchanged.
š¤ Generated with Claude Code
Summary by cubic
Adds the proposal and architecture for a Terminal tab in each coding agent's sandbox, recording Dean's decisions from 2026-10-14. Docs only; no behavior change. The latest commits fix the host contract (PR 4) for the desktop PRs: the terminal acts, the refusals they answer, the MessagePort messages, and the connection states.
docs/proposals/terminal-tab.mdrecords the approved round-3 rules: a terminal belongs to one coding agent's sandbox, connects on demand, and disconnects after 5 minutes without typing. There is no cap; a stopped sandbox resumes only on a click.docs/proposals/terminal-architecture.mdcovers components, data flows, session-replay masking, where terminal bytes may and may not go, the two approvedAGENTS.mdlines, risks, costs, and the PR breakdown for the stack below.- This PR is the base of the terminal stack: web PRs 1ā3 (lease + lifecycle, tmux + routes, the WebSocket relay) and host PR 4 follow; desktop PRs 5ā9 come from a parallel worker.