feat(web): add workspace-aware terminal panel layout#1690
feat(web): add workspace-aware terminal panel layout#1690justsomelegs wants to merge 4 commits intopingdotgg:mainfrom
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Needs human review This PR introduces a substantial new feature for terminal panel layout with multiple positioning options (bottom/right), workspace-spanning modes, and new settings. The ~1400 additions include 6 new files with new components, hooks, a portal system, and schema changes. New user-facing capabilities of this scope warrant human review. You can customize Macroscope's approvability policy. Learn more. |
What Changed
Added workspace-aware terminal layout options in the web app.
example.mp4
This PR:
bottomandrightChatViewand into the route/workspace layoutThreadTerminalPanelleftterminal position after trying it and deciding it was not a good fitWhy
The built-in terminal was previously hard-wired to a bottom drawer inside the chat area. That caused a few UX problems:
This approach keeps the bottom workspace-scoped terminal working while making the terminal placement a real workspace concern instead of a chat-only concern. It also reuses the shared sidebar primitive for the wide right rail so the panel behavior is much closer to the existing main-branch sidebar behavior instead of relying on a separate custom animation system.
UI Changes
Before:
After:
Checklist
Note
Add workspace-aware terminal panel with bottom and side layout support
ThreadTerminalDrawertoThreadTerminalPaneland addslayoutprop ('bottom'|'side'); side layout fills available height without a resize handle, bottom layout preserves draggable height clamped to workspace bounds.resolveWorkspacePanelsanduseWorkspacePanelControllerto centrally derive panel visibility, toggle states, and terminal dock target (bottom-inline,bottom-workspace,right, ornull).WorkspaceRightRail,WorkspaceSideSheet, andWorkspacePanelLayoutcomponents; the chat thread route mounts diff and terminal in a shared right rail with persisted widths.terminalPosition,terminalBottomScope, andterminalRightRailWidthMode— with UI controls in the General settings panel and legacy'left'position migrated to'bottom'.isTerminalFocusedand xterm CSS selectors to use.thread-terminal-panelinstead of.thread-terminal-drawer.gitCreateWorktreeMutationOptionsimport in ChatView.tsx will cause a TypeScript compile error.Macroscope summarized 2c154b3.