Session Info: no scrollbar, as Claude Code's panel; it still scrolls
Leo, 2026-11-03: "interestingly ive noticed that there's basically no thumb on the claude code session info section", then: "i mean there's literally no scrollbar in claude code it's just scrollable". Earlier: "the grabber is too close to the thumb scroll thing".
Session Info's scroll body now draws no scrollbar at all, as Claude Code's panel. It still scrolls by wheel, trackpad and keyboard, and the existing edge fades (#31741) still show that there is more. Nothing takes width at the right edge, so no thumb sits next to a section's grip or the trailing value column.
- Web (
sessionInfo.css):.acpmux-session-info__bodyhides its scrollbar in both engines (scrollbar-width: none,::-webkit-scrollbar { display: none }), the same way the session rail's list does (threadMinimap.css).check-scrollbars.shlists it as an exception with its reason, plus the gallery's comparison frame. - Native (
AgentPaneSessionInfoContent.swift): the list's NSScrollView setshasVerticalScroller = false(and dropsfollowThin). The edge-fade mask is unchanged. - The thumb inset the old comments mention (#31331) is the grip's room. PR #32930 moves the grip to the left of the title and rewrites those lines, so this PR leaves them alone to avoid a conflict.
Gallery (agent-pane.chat-inspector): scroller-none is the chosen variant. Its play waits until a busy body overflows, checks scrollbar-width: none and that clientWidth is the full inner width (no reserved gutter), then scrolls it and expects scrollTop > 0. scroller-thumb shows the old thin thumb for comparison.
References (cmux-design-references): claude/live/sidebar-session-info-draggable-sections, claude/live/session-info-environment-and-context-panel.
Spec: leo-workspace design/session-info.md gains the rule "The body scrolls with no scrollbar at all" (separate notes PR).
Tests
bun test src/agent-session/acpmux/session-info/sessionInfoScroller.test.ts: fails on base (the body keeps WebKit's scroller), passes on head.AgentPaneNativeSessionInfoTests.panelScrollsWithNoScrollbar: no vertical or horizontal scroller, the content width is the full frame, and the list scrolls.
Observed / Not run
- Observed: the new bun test is red on base CSS and green on head.
bun test src/agent-session/acpmux/session-info/passes (11/11).scripts/web-lint.shandprepush-gate.pypass.check-scrollbars.shreports no hits in the changed files; the hits it does report are already on base. - Not run: the Swift test runs on the fleet; the compile check is dispatched. No gallery capture yet, and no native capture.
Changelog
Changed: the Session Info panel scrolls with no scrollbar, as in Claude Code.
Agent session: agent session
🤖 Generated with Claude Code
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Removes the Session Info panel's scrollbar to match Claude Code, whose equivalent panel scrolls with no visible scrollbar. The body still scrolls by wheel, trackpad and keyboard, and its existing edge fades still indicate overflow. No scrollbar is drawn and none takes width, so nothing sits beside a section's grip or the trailing value column.
Applies to both engines: the web body hides its scrollbar via CSS (scrollbar-width: none and ::-webkit-scrollbar { display: none }), and the native list's scroll view drops its vertical scroller. The gallery's scroller-none variant is the chosen one; scroller-thumb shows the old thin thumb for comparison.
Tests
- New web test asserts the body hides its scrollbar and keeps no width for one; it's red on base and green on head.
- New native test asserts no vertical or horizontal scroller, full content width, and that the list still scrolls.
check-scrollbars.shnow lists the session info CSS and gallery files as known exceptions with reasons.