mirror of
https://github.com/coder/coder.git
synced 2026-06-02 20:48:20 +00:00
12f87acad6
## Add terminal panel to chat sidebar Extract the reusable terminal runtime from `TerminalPage` into `modules/terminal/` and wire it into the agents chat right sidebar as a new **Terminal** tab. ### Changes - **`modules/terminal/WorkspaceTerminal.tsx`** — Shared xterm + websocket terminal component (container-sized, no route dependency) - **`modules/terminal/WorkspaceTerminalAlerts.tsx`** — Moved from `TerminalPage/` to shared module - **`pages/AgentsPage/TerminalPanel.tsx`** — Sidebar wrapper around `WorkspaceTerminal` - **`pages/AgentsPage/AgentDetailView.tsx`** — Terminal tab added (gated on `hasWorkspace`) - **`pages/TerminalPage/TerminalPage.tsx`** — Slimmed to page-shell using shared component ### Demo [dogfood-terminal-demo.webm](https://github.com/user-attachments/assets/359200dc-f8e4-4a9a-b00b-923f142dc228) ### Behavior - Terminal tab appears only when the chat has a workspace with a connected agent - Connects via the existing workspace agent PTY websocket - Resizes correctly on panel width changes, expand/collapse, and viewport resize - `fitAddon.fit()` guarded against pre-renderer crashes (fixes proxy access) - Tab switching unmounts/remounts cleanly (reconnects via session token) - No changes to Git or Desktop panel behavior --- _Generated with [`mux`](https://github.com/coder/mux) • Model: `anthropic:claude-opus-4-6` • Thinking: `xhigh`_