feat(panel): collapse/expand message bubbles in side panel#228
Merged
Conversation
Adds a per-message chevron in the bubble header that toggles the bubble body (and any user-extras) via Alpine local state. A "Collapse all" / "Expand all" button in the side-panel header dispatches a window event that every bubble listens for, flipping all messages in sync. Tool-call and thinking groups keep their independent collapse state — they are NOT affected by either control. Collapsed bubbles dim to 0.7 opacity (full opacity on hover) so the transcript reads as a skim-friendly outline while the meta header (role, timestamp, chevron) stays visible. Closes #222 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6 tasks
upsetbit
added a commit
that referenced
this pull request
Jun 7, 2026
Adds a search bar pinned above the transcript in the session side panel. Implementation is client-side (no new RPC): all structured turns already live in the DOM after the initial Sessions.Get, so a simple debounced text walker over .bubble-body / .tool-entry-body / .thinking-body produces the match set fast enough. Search triggers expand on every collapsible group before scanning: - bubbles listen for the existing messages-toggle-all event (PR #228) - tool-group + thinking-group listen for a new transcript-expand-groups event - native <details class="tool-entry"> are forced open via .open = true Next / Prev cycle through matches; Enter advances, Shift+Enter goes back, Esc clears. The active match scrolls into view and gets the accent color; remaining matches use the warn color so the eye can spot them. Falls back to a "no matches" hint when the query has zero hits. Closes #224 Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds per-message collapse + a "Collapse all" / "Expand all" control in the side-panel header.
bubble-{user|assistant|tool}(the"single"group kind) gets a chevron in.bubble-meta. Clicking toggles the body locally via Alpinex-data.messages-toggle-allwindow event; each bubble listens and updates itscollapsedstate.Closes #220 dependency: this lands first so #224's in-transcript search can auto-expand matched bubbles via the same
collapsedflag.Closes #222.
Test plan
just build && ./bin/prosa-panelwithPROSA_PANEL_DEV_LOGIN=1.🤖 Generated with Claude Code
Need help on this PR? Tag
/codesmithwith what you need. Autofix is disabled.