fix(ai): make reasoning text selectable after streaming completes#11635
fix(ai): make reasoning text selectable after streaming completes#11635rawsyntax wants to merge 1 commit into
Conversation
…rpdotdev#9702) Reasoning/thinking traces were rendered with `selectable: false` in `render_collapsible_text_block_section`, making it impossible for users to select or copy any of the reasoning text even after the stream finished. Swap the declaration order so `selectable` is derived from `is_streaming`: the text becomes selectable once the agent has stopped streaming, matching the existing height behaviour that already switches from 120 → 360 px when streaming ends. Co-Authored-By: Oz <oz-agent@warp.dev>
|
Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have the users @rawsyntax on file. In order for us to review and merge your code, each contributor must visit https://cla.warp.dev to read and agree to our CLA. Once you have done so, please comment |
|
This PR is not linked to an issue that is marked with Issue-state enforcement details:
To continue, link this PR to a same-repo issue such as Powered by Oz |
There was a problem hiding this comment.
This PR is not linked to an issue that is marked with ready-to-implement.
Issue-state enforcement details:
-
Associated same-repo issues checked: none
-
Required readiness label:
ready-to-implement
To continue, link this PR to a same-repo issue such as Closes #123 in the PR description, and make sure that issue has ready-to-implement.
Powered by Oz
|
@cla-bot check |
|
The cla-bot has been summoned, and re-checked this pull request! |
Description
Agent thinking/reasoning traces were rendered with
selectable: falseinsiderender_collapsible_text_block_section, making it impossible for users to select or copy any part of the reasoning content—even after the response had fully streamed in.The fix swaps the declaration order of
selectableandis_streamingso selectability derives from stream state: when the agent is done streaming,selectable = !is_streaming = true. This matches the existing height logic in the same function, which already switches the collapsible viewport from 120 px (streaming) to 360 px (complete).Linked Issue
Closes #9702
ready-to-specorready-to-implement.Note: Issue #9702 is labeled
enhancement/triaged(not yetready-to-implement). The fix is a targeted 3-line change to a hardcodedfalsethat the triage analysis identified as the root cause. Happy to hold off if the team prefers to label first.Testing
cargo fmt --check— cleancargo clippy -p warp --lib --tests --no-deps -- -D warnings— clean (0 warnings, finished in ~2m 40s)Manual smoke test requires the full app running (
./script/run) which needs internal build deps not present on this machine. A maintainer should verify the behaviour end-to-end: open a completed agent response with "Always show" thinking enabled and confirm the reasoning text is now selectable/copyable../script/runAgent Mode
CHANGELOG-IMPROVEMENT: Agent reasoning/thinking traces are now selectable and copyable once the response finishes streaming.