Repository navigation
Closed as duplicate
Closed as duplicate
Copy link
Description
Describe the bug
Summary
On macOS, terminal rendering can become corrupted after normal pane switching or window state changes. I see garbled glyphs, stale terminal lines drawn in the wrong place, and sometimes background terminal content ghosting into the chat view.
This is not specific to one CLI. I reproduced it with Claude CLI, Codex CLI, OpenCode, and also inside Superset own conversation UI when a background terminal was running.
Actual behavior
- Text in terminal panes becomes unreadable with wrong glyph shapes.
- Sometimes parts of a hidden or background terminal are painted over the chat area.
- Toggling fullscreen fixes it right away, but the problem comes back later.
- The problem looks like a renderer or compositor issue, not a shell encoding issue.
Expected behavior
- Hidden or background terminal panes should never paint outside their own pane.
- Switching tabs, switching panes, or resizing the window should not corrupt terminal text.
- Fullscreen should not be needed as a recovery step.
Repro notes
Environment I checked locally:
- Superset.app
1.5.5 - Electron
40.8.5 - macOS
- xterm
6.1.0-beta.195 @xterm/addon-webgl0.20.0-beta.194@xterm/addon-ligatures0.11.0-beta.195
What i usually do:
- Open a workspace with one or more terminal panes.
- Run a long lived CLI session like Claude CLI, Codex CLI, or OpenCode.
- Switch between terminal and chat panes, or use the app in a non fullscreen window for a while.
- At some point the terminal text becomes garbled, or a background terminal line is drawn over the chat view.
- If i toggle fullscreen on and off, the rendering becomes normal again.
Related findings
- I could not find an open issue for this exact symptom.
#1873looks related because it also mentions terminal reattach problems and blank space after switching.- xterm has an open issue here:
xtermjs/xterm.js#3303about WebGL and ligature rendering artifacts. One comment there says manualclearTextureAtlas()makes the issue go away.
I also checked the current source:
apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/helpers.tsalways tries to loadLigaturesAddonand thenWebglAddon.apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/v1-terminal-cache.tsreattaches the cached wrapper and callsxterm.refresh(...), but it does not clear or recreate the WebGL texture atlas on reattach or resize.apps/desktop/src/lib/electron-app/factories/app/setup.tsalready has a macOS specific workaround with this comment:occluded window throttling can corrupt GPU compositor layers.
Proposed fix
I think this is likely in the overlap between Superset terminal lifecycle and xterm WebGL rendering on macOS.
Possible directions:
- Clear the WebGL texture atlas on reattach and resize, then force refresh.
- Recreate or dispose the WebGL addon when a cached terminal is detached and attached again.
- Add a safe DOM renderer fallback or a setting to disable WebGL and maybe ligatures on macOS.
If useful, i can try a follow up patch after maintainers confirm which direction they want.
Metadata
Metadata
Assignees
Labels
No labels
Activity
fix(desktop): clear WebGL texture atlas on terminal reattach and resize
dorukardahan commentedon Apr 16, 2026
i am closing the linked draft PR #3506 to avoid overlap with #3322, which is already working on terminal repaint recovery after focus and visibility changes.
my repro in this issue is still useful because it also shows terminal content ghosting into the chat view, and fullscreen fixes it right away on my mac.
if #3322 does not fully fix this case, i can open a narrower follow up PR later.
fix(desktop): raise Chromium WebGL context cap to 256 (#3834)
Kitenite commentedon May 6, 2026
Related reports (cross-referenced during issue triage — same area, may or may not share a root cause):
fix(desktop): raise Chromium WebGL context cap to 256 (ParadevAI#3834)
Kitenite commentedon Jul 11, 2026
Closing as a duplicate of #5605, the consolidated tracker for stale
terminal-renderingissues from the July 2026 stale-issue sweep (no activity since 2026-06-01). If this still applies on a current build, comment on #5605 and we'll reopen.