Add in-session preview panel: browser, files, and interactive terminal#1761
Open
Douglasymlai wants to merge 7 commits into
Open
Add in-session preview panel: browser, files, and interactive terminal#1761Douglasymlai wants to merge 7 commits into
Douglasymlai wants to merge 7 commits into
Conversation
…to chooser A plain terminal tab now opens an interactive login shell (main-process node-pty) starting in the project folder, with scrollback replay across tab switches and PTY disposal on tab close. Agent terminal streams (started servers, background scripts) are listed in the chooser under a "From this project" section and open as read-only terminal tabs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The global `* { font-family: 'Inter' }` rule matched xterm's glyph spans
directly, rendering them proportionally on the monospace cell grid xterm
measured — text drifted and overlapped. Scope the design system's
`font-mono` stack (SFMono-Regular, Menlo) onto the terminal screen with
higher specificity, neutralize the legacy `.xterm span` letter-spacing
hack, and share font size/line-height constants between both surfaces.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Use the same code stack as `.markdown-body code` — ui-monospace (the system default code font) first, then SF Mono / Menlo / Consolas / Liberation Mono fallbacks — in both the xterm measurement option and the scoped CSS that shields glyphs from the global Inter rule. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issue
Relates to #1319 (terminal window + browser URL textbox portions of that request). The human-in-the-loop confirmation flow described in #1319 is out of scope for this PR.
Description
Adds a unified preview panel to the session page, with support for three tab kinds: Browser, Files, and Terminal.
<webview>-based browsing with an address bar (back/forward/reload/open-externally), backed by an always-mounted layer so guests (and their navigation history) survive panel close and project switches.node-ptyin the main process) — it behaves like the desktop terminal, with the user's actual login shell, prompt, PATH, and full program support (vim, htop, etc.), not a simulated console. The shell keeps running across tab switches and is torn down when its tab closes or the app quits.ui-monospace→ SF Mono/Menlo/Consolas/Liberation Mono fallbacks), scoped to override the app's global Inter rule that was otherwise stretching/misaligning glyphs on xterm's monospace grid.Testing Evidence (REQUIRED)
npm run type-check,npm run lint,npx prettier --check, and the full unit test suite (including new suites for the preview panel, terminal tab, and browser URL handling) all pass locally.Note: This PR includes frontend/UI changes but does not yet have an attached screenshot/recording — please add one (or confirm the reviewer should pull the branch to verify visually) before merge.
What is the purpose of this pull request?
Contribution Guidelines Acknowledgement