Mod panes on desktop: no element can show code that's selectable and scrolls sideways

Status Open
Reported on v2.1.287
Maintainer reply None cached
Activity 0 comments · opened Oct 4, 2026

What we're building: a desktop mod that shows everything Claude changed in one prompt as a single diff, in a pane styled like the built-in diff panel: file tree, side by side, syntax colours, changed-word highlights, expandable unchanged lines. It snapshots files before and after each prompt, so it also covers edits made through shell commands, other repos and files outside git. Each prompt's diff is saved and opens from a "View changes" link under that reply, in later sessions too. The desktop app has no per-prompt view today, and terminal /diff's turn views cover fewer cases.

What blocks us: reviewing code needs text you can select and copy, and long lines that scroll sideways. On the desktop, no element a mod can use gives both:

| Option | What it gives | Why it falls short |
|---|---|---|
| Text | real text, custom colours | Proportional UI font with no font option, and leading spaces collapse, so code can't align. Not selectable on desktop. |
| Code | monospace text | Fixed look: unified diff only, the engine's colours, no highlights, 10k characters per block. Not selectable on desktop. Long lines wrap or get cut. |
| Svg (what we use) | monospace, full control of colours and layout | Drawn as an image, so it can't be selected. Scaled to its slot's width, so wide lines shrink instead of scrolling. |
| Svg with isInteractive | selection and copy work | Scrolling the pane over these frames glitches: one trackpad scroll moves only 5–6 lines. Each frame starts 150px tall on a white background, and doesn't scroll sideways. |

Around these:

  • Box overflow is only visible or hidden, so there's no scrollable region. Clients get no drag events, so drag-to-pan isn't possible either. We fall back to ‹ › pan buttons.
  • A pane draw over about 256 KB freezes the pane permanently and drops all later draws, so we draw only what's near the window. An error instead of a freeze would help.
  • A file tree can't stay in view beside scrolling content: #99449.

Ask (any one of these would unblock us):

  1. isInteractive frames that scroll smoothly with the pane, size to their content, default to a transparent background, and scroll wide content sideways. Selection already works there, so this may be the smallest change.
  2. A monospace option for Text (e.g. font: "mono"), plus text selection for Text and Code in panes.
  3. A scrollable Box (overflow: "scroll" or overflowX), or an Svg wider than its slot scrolling instead of shrinking.

---
Footnote: a native per-prompt diff on desktop. It would be great to see this built in: one diff per prompt across every file it touched, covering shell-command edits, other repos and files outside git, with each prompt's diff saved and reachable from a link under its reply, including in later sessions. Terminal /diff's turn views are a starting point.

Claude Code 2.1.287, macOS desktop app.

View original on GitHub ↗