JetBrains / JetBrains/thinkrail

Cannot select a substring of a chat message (from user) to copy

Open Beginner friendly
#494 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
467
Forks
37
Avg merge
1d 52m
Merged PRs (30d)
143

Description

## Description

In the Pi chat panel, users can click the copy button on a message to copy the entire message, but cannot click and drag to select any part of the message text (user bubbles) to copy a snippet.

Because `body` has `user-select: none` in `apps/web/src/index.css` and content is expected to opt back in (`.tr-prose-chat`, `data-selectable`, etc.), chat message containers (`USER_BUBBLE` / `USER_BUBBLE_BASE` / `PlainUserTurn` and assistant message wrappers in `apps/web/src/chat/turns.tsx`) currently do not include `.tr-prose-chat` or `data-selectable` (or `user-select: text`). As a result, message text inherits `user-select: none` and cannot be selected.

## Steps to reproduce

1. Open a workspace and open or start a chat session.
2. Send a message or wait for an assistant response.
3. Try clicking and dragging the cursor over words or lines within the message bubble to highlight/select a portion of the text.

## Expected behavior

Users can click and drag to highlight/select any part of a user or assistant chat message and copy the selected text, while preserving whole-message copy via the copy button.

## Actual behavior

No text selection occurs when dragging over the message text; the cursor cannot select substrings within the message.

## Environment

- OS: macOS 26.6.2 (Darwin arm64)
- Bun version (`bun --version`): 1.4.2
- Node version (`node --version`): v26.8.2
- ThinkRail version / commit: 6a836d3fe (upstream/main)

---
🤖 Generated by AI agent

Contributor guide

Open the contributing guide

Research direction

Start with apps/web/src/index.css to confirm the global user-select rule, then inspect the USER_BUBBLE, USER_BUBBLE_BASE, PlainUserTurn, and assistant message wrappers in apps/web/src/chat/turns.tsx. Verify the relevant containers opt into text selection without disrupting the existing copy-button behavior. Done means users can select and copy substrings from both user and assistant messages.

Written by the indexing model from the issue text.

Assessment

Tech stack
css, typescript
Domain
frontend, web-dev
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
86/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.