Skip to content

fix(web): no text selection on the app chrome - #346

Merged
kinqsradio merged 3 commits into
mainfrom
fix/no-chrome-selection
Nov 8, 2026
Merged

kinqsradio merged 3 commits into
mainfrom
fix/no-chrome-selection

Conversation

@kinqsradio

Copy link
Copy Markdown
Member

Summary

  • Dragging across the app's chrome (sidebar, headings, labels, rows) selected text like a web page. The root (html, body, #root) now sets user-select: none (plus -webkit-user-select for WKWebView) and cursor: default.
  • Text people copy opts back in with user-select: text: transcript messages, markdown, code, tool output and commands, diffs, file previews, PR body, comments, review text, check names, patches, error text, copyable paths and ids, the terminal host, and every input, textarea and contenteditable. Inner elements that set none themselves (diff line numbers) stay unselectable.
  • Link and button cursors are untouched. Find in thread uses CSS highlights, which do not depend on selection.

Not in this PR

  • No design change.

Parity rows

none

Frames built

none

Testing

  • src/styles/selection.test.ts (root rule, WebKit spelling, the opt-in list, no pointer overrides).
  • Playwright e2e/selection.spec.ts: a drag across a settings page selects nothing (fails without the stylesheet); a drag over a message selects its text; the composer stays selectable and editable.
  • npm run -s check, style tests, Transcript.test.tsx, pane-resize e2e: pass.
  • Not checked: the desktop shell (WKWebView) in a real window, and the composer cite flow in the real-service e2e.

Co-authors

none

AI usage

  • Written by hand, with no AI
  • Harness and version: Claude Code 2.1.318
  • Models: claude-sonnet-5-5 (implementation)
  • Effort: medium
  • Human role: asked for the change; the lead session decided scope and reviews before merge
  • Sources: none

Checklist

  • No design change
  • Checked in the desktop app

@github-actions github-actions Bot added the area: web web: React UI label Nov 8, 2026
@github-actions

github-actions Bot commented Nov 8, 2026

Copy link
Copy Markdown

UI preview

This pull request changes the web app but has no Frames built line.

Add one to the description so the screens can be shown here: the ids of the screens you built and the design version, for example Frames built: pr-list-failed, pr-detail-running @ v56. A pull request that draws nothing says Frames built: none. This is a request, not a check: nothing is blocked.

@kinqsradio
kinqsradio merged commit 2798d4b into main Nov 8, 2026
25 checks passed
@kinqsradio
kinqsradio deleted the fix/no-chrome-selection branch November 8, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: web web: React UI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant