Skip to content

feat: re-introduce split-pane TUI as a polished feature #7

Description

@ronishrohan

Background

The /split beta feature was removed in commit 8d917ba because the TUI had several layout issues:

  • Streaming content appeared underneath the input area during active streaming
  • Subagents UI was misaligned in split mode
  • Typing / in split mode broke the layout further
  • Theme picker and other popups were transparent/overlapping in split mode
  • All menus/popups behaved incorrectly in split mode

What to re-implement

  • /split command to open two side-by-side chat panes
  • Ctrl+K to toggle focus between panes
  • /split left, /split right, /split close
  • Proper popup/overlay rendering that doesn't break in split layout
  • Auto-scroll that works correctly in both panes
  • Fix streaming content placement (should appear above input, not below)

Key files to restore/rework

  • src/ui/ink-terminal.tsx — SplitChatView, SplitPaneView, SplitPaneSummary, setSplitPane, clearViewport
  • src/interactive-session-controller.ts — handleSplitCommand, focusSplitSide, closeSplit, syncSplitPane
  • src/task-ui-bridge.ts — onRuntimeUpdate for cross-pane UI sync
  • src/ui/components/prompt-input.tsx — onSplitToggle, Ctrl+K binding
  • src/commands.ts — /split command definition

Design notes

  • Fix all menu/popup layering issues before shipping (no transparent backgrounds, no overlap with content)
  • Fix autoscroll on new messages to work like industry-standard CLIs
  • Ensure streaming content renders above the input area during active turns
  • Add a visible [beta] label in the UI when split is active

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions