feat(web): open a message as a right panel surface - #5209
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Needs human review This PR introduces a new user-facing feature (opening messages in the right panel surface), adding new components and extending the panel store with a new surface type. New capabilities warrant human review even when implementation follows existing patterns. You can customize Macroscope's approvability policy. Learn more. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 008baf4. Configure here.
This reverts commit 008baf4.
|
FYI: I removed attachment support, not because its a bad idea but because it implies a slighly larger component refactor and I didnt want to dilute the main suggestion here unless theres a baseline interest |

What Changed
Adds a "open message as a surface" feature. Exposed as a button next to the copy message button.
Why
Often the model gives a long report. I want to respond to one point immediately while continuing to formulate a response to the rest. Currently I copy the message into zed to do this, but way better if I can just pop it open as a surface.
I kept this intentionally minimal using only existing concepts
future ideas:
UI Changes
Before:



After:
Checklist
Note
Low Risk
UI-only extension of the existing right-panel surface pattern; no auth, API, or persistence schema beyond the versioned panel store already used for other surfaces.
Overview
Users can open a chat message in the right panel as a dedicated surface, alongside files, diff, and terminal—useful for reading long assistant replies while composing a response in the main thread.
Right panel model: Adds a
messagesurface kind andopenMessage(ref, messageId)inrightPanelStore, with per-message tab ids (message:messageId) and persistence bump. UI: Timeline rows expose an Open as surface control (panel icon) next to copy on user and assistant messages;ChatViewrendersMessageSurfacewhen that tab is active, resolving the message from timeline entries and showing an empty state if it was removed. Tabs:RightPanelTabslabels message surfaces as "Message" with aMessageSquareicon.User message text in the surface uses the same displayed text as the timeline (terminal context stripped via
deriveDisplayedUserMessageState).Reviewed by Cursor Bugbot for commit 21a5706. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add message surfaces to the right panel in the chat view
messagesurface kind torightPanelStorethat stores a message by ID, deduplicating on repeated opens and setting it as the active surface.OpenMessageSurfaceButton(panel-right icon) to user and assistant message action bars inMessagesTimeline, wiring toopenMessagein the store.MessageSurfacecomponent that renders the message content as markdown in the right panel, with a 'Message unavailable' fallback for missing messages.RightPanelTabsto show a message-bubble icon and 'Message' title for message surface tabs.Macroscope summarized 21a5706.