Crates: terminal (session, VT grid, links), terminal-pty (desktop/server PTY), editors/terminal (view). Design in LSP and Terminal.
- View backend: xterm.js first via JS Interop Boundary (
packages/js/xterm, with the WebGL addon); a Rust renderer overalacritty_terminal’s grid later — the grid already exists for links/search, so the native path is “just drawing” and can share the Graph View’s text renderer. - Sessions are first-class: shown in multiple panels, survive panel moves (state lives outside the panel, per
dioxus-workbenchguidance), listed in the palette. - Links → graph:
path:line:col, URLs, rustc/Julia/Go errors → click opens the node; “open trace as graph” hands a stack trace to Indexing. - Commands: “new terminal here” on any
Directorynode; “run selection” from the Code Editor. - Remote: web/mobile get a PTY inside
apiover a websocket — gated on the security list in Platform Matrix.