Bug Description
When switching back to an existing terminal tab in the dashboard (e.g., clicking on a builder tab that's been running), the terminal displays garbled/chaff output — scattered characters, repeated "thinking" text, partial lines, and rendering artifacts.
This appears to happen when xterm.js reconnects to a tmux-backed terminal and replays the scrollback buffer.
Steps to Reproduce
- Start Tower and activate a project
- Open a builder terminal
- Let it run for a while (generating output)
- Switch to another tab (Dashboard or another terminal)
- Switch back to the original terminal tab
- Observe garbled rendering
Expected Behavior
Terminal should render cleanly when revisiting, showing the current state of the terminal without rendering artifacts.
Actual Behavior
Terminal shows scattered characters, repeated partial words (e.g., "thinking" appearing dozens of times), broken line formatting, and visual garbage throughout the scrollback area.
Environment
- macOS (Darwin 24.6.0)
- Codev v2.0.0-rc.58
- React dashboard with xterm.js + tmux-backed terminals via node-pty
Bug Description
When switching back to an existing terminal tab in the dashboard (e.g., clicking on a builder tab that's been running), the terminal displays garbled/chaff output — scattered characters, repeated "thinking" text, partial lines, and rendering artifacts.
This appears to happen when xterm.js reconnects to a tmux-backed terminal and replays the scrollback buffer.
Steps to Reproduce
Expected Behavior
Terminal should render cleanly when revisiting, showing the current state of the terminal without rendering artifacts.
Actual Behavior
Terminal shows scattered characters, repeated partial words (e.g., "thinking" appearing dozens of times), broken line formatting, and visual garbage throughout the scrollback area.
Environment