mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-05 06:59:42 +02:00
Pane B's SplitTerminalPane.connect() only opened a WebSocket and waited for live output — ws-routes.ts's terminal socket sends nothing on connect, only future 'terminal' events — so it stayed blank until the target session happened to produce new output. It looked intermittent rather than always-broken because a resize sent by _sendResize() often nudges the session's real tmux window to a new size, and tmux repaints its current screen on resize; that incidental repaint was what usually populated the pane. When Pane B's computed dimensions already matched the session's last-known size, Session.resize() skipped the resize as a no-op and the pane stayed empty. Fetch the existing scrollback (?full=1) before opening the socket, same as the primary pane does. Pane A never told its own session's PTY/tmux about a size change at all, relying purely on the passive 300ms-debounced ResizeObserver in terminal-ui.js. openSplitPane() now force-resizes Pane A immediately on entering split (mirroring closeSplitPane()'s existing symmetric call), and the divider-drag handler force-resizes it once at drag end (matching the codebase's established trailing-edge debounce convention rather than flooding a resize per mousemove). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>