Repository navigation
cmux-next agent pane: the minimap lights where you are and the message it previews - #22879
Conversation
…ll, and holds its card during a scrub - ScrollMap compared the layout (which counts the composer's dock space) with the viewport above the dock, so a chat a little shorter than its pane showed a map whose bar filled the rail. The transcript now says whether it scrolls, the way its bottom fade already decides. - A scrub dismisses the preview card and no longer reopens it on each mark crossed; hovering after the drag opens it again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15ba9-9614-7832-8e39-d8ca0407c193&host=cosmic-gray
… previews Leo: the hover preview did not highlight its message, and the map should show where you are, at the bottom too (ChatGPT's rail does both). - Both rails: the previewed prompt's tick stays lit while the pointer or focus is on its card. Before, leaving the rail for the card put it back to rest. - Full map: the marks under the view bar draw as current, brighter than the rest, and stay so while the pointer is on the rail. The bar's covered marks are recomputed on its own scroll frame and render only when they change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15ba9-9614-7832-8e39-d8ca0407c193&host=cosmic-gray
|
Bead |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Unclear: CI failed on
Not re-run automatically: Written by red: web / Web status; base red: the same failure on the base dea0d5a; does not block Tour of |
…ity while hovering the map Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15ba9-9614-7832-8e39-d8ca0407c193&host=cosmic-gray
|
owner: 01a15ba9-9614-7832-8e39-d8ca0407c193 |
|
Merging under the base-red rule. Every red here is red on base too:
Not run: the base bundle red stops this PR's webview tests (jsdom and browser) before they run, so the new tests are unverified in CI. The independent review passed (code read only). |
|
|
|
Shipped in:
|
|
Shipped in:
|
…23285) check-scrollbars (SCROLLBARS-THIN) fails cmux-next checks on feat-cmux-next: the thread minimap's list (#22879) and the Apps Discover chips hid their scrollbars with scrollbar-width and ::-webkit-scrollbar, which turn WebKit's overlay scroller into a custom one. They now keep the shared thin overlay scroller, hidden until the user scrolls. That takes the check from 13 hits to 10, back under its ceiling. Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-aabc-7850-af29-f0655b1d2a1a&host=cosmic-gray Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…e left edge) (#23735) * test(webviews): the agent chat ships with no thread minimap (red) The default arm of thread-minimap-layout is full since #22784, so every agent chat draws the full-height ScrollMap (a dash per message and a view box) down the transcript's left edge, and the compact rail's list shows a second scroller since #23285. These tests fail until the default is off and the list stops scrolling on its own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16027-a80b-79c0-ab31-500e58883d27&host=cosmic-gray * fix(webviews): the agent chat draws no thread minimap by default Leo on the nightly (2026-10-21): a column of dashes and a thumb box down the left edge of the chat, and a second scroller. That is the full-height ScrollMap, the default arm since #22784 (lit band #22879), and the compact rail's own list, which shows a scroller since #23285 dropped its hiding. - thread-minimap-layout gets an off arm, and off is the default: no map, no rail, nothing at the left edge. Previous and Next Turn and the bookmarked-prompt steps still work. full and compact stay selectable from cmux.experiments for dogfood. - The compact rail's list is overflow: hidden: it still scrolls from script and focus (band follow, scrub, Tab) but never draws a scroller, so the transcript keeps its one shared thin scroller (SCROLLBARS-THIN). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16027-a80b-79c0-ab31-500e58883d27&host=cosmic-gray * style(webviews): format the minimap experiment and its test Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
The thread minimap now shows where you are and which message it is previewing, as ChatGPT's rail does. It also hides on chats that don't scroll. This follows up #22784 with Leo's feedback and #22784's review.
Changes
scrolls, using the same test as its bottom fade.Tests
test/thread-scroll-map-rail.test.tsxcovers three things: current marks at the top and the bottom, the previewed prompt staying lit while focus is on its card's bookmark, and no map on a chat that fits its pane.test/thread-bookmarks.test.tsxpasses the newscrollsprop.Observed / Not run
scripts/web-lint.shandprepush-gate.pypassed.Changelog
Agent session: cosmic-gray
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
The thread minimap now lights the messages on screen in your current view and keeps the previewed message highlighted while you read its preview, and it no longer appears on chats that don't scroll.
scrolls, the same test its bottom fade uses, where ScrollMap previously compared the full layout with the viewport.Written for commit bab3c97. Summary will update on new commits.