Skip to content

Session Info: no scrollbar, as Claude Code's panel; it still scrolls - #33118

Merged
teamleaderleo merged 3 commits into
feat-cmux-nextfrom
lane/si-overlay-scroller
Nov 3, 2026
Merged

teamleaderleo merged 3 commits into
feat-cmux-nextfrom
lane/si-overlay-scroller

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

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__body hides 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.sh lists it as an exception with its reason, plus the gallery's comparison frame.
  • Native (AgentPaneSessionInfoContent.swift): the list's NSScrollView sets hasVerticalScroller = false (and drops followThin). The edge-fade mask is unchanged.
  • The thumb inset the old comments mention (Session Info: keep a section's drag handle clear of the scrollbar #31331) is the grip's room. PR Session Info: the section drag grip sits left of the title #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.sh and prepush-gate.py pass. check-scrollbars.sh reports 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
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.sh now lists the session info CSS and gallery files as known exceptions with reasons.

Written for commit f8530f0. Summary will update on new commits.

View guided diff Turn on auto-fix

teamleaderleo and others added 3 commits November 3, 2026 05:21
Leo, 2026-11-03: "i mean there's literally no scrollbar in claude code it's just scrollable".
Web: the body hides its scrollbar in both engines (as the session rail's list) and keeps its edge
fades. Native: the list's scroll view has no vertical scroller. Gallery: scroller-none (chosen,
with a play that scrolls it and checks it keeps no scrollbar width) and scroller-thumb (before).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-7a7568197607c3cdfb81
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review f8530f0: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr33118 -f ref=lane/si-overlay-scroller -f platform=macos -f backend_mode=local

Gallery before/after for f8530f0: 16 states rendered, 16 images differ, 1698 more touched states not rendered. Images are in the run's artifact, not on this public PR; the independent review of this head reads them on its own, so the PR needs no hand-made screenshots of these states.

gh run download 41586338678 -R manaflow-ai/cmux -n gallery-advisory-33118-f8530f019efa40b18cf57a602bd821fc2fd7bef1 (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.background-activity/duration-columns Apple System Colors Light unchanged 0% own sessionInfo.css
agent-pane.background-activity/duration-columns Apple System Colors unchanged 0% own sessionInfo.css
agent-pane.background-activity/pinned-live-tail-light Apple System Colors Light unchanged 0% own sessionInfo.css
agent-pane.background-activity/pinned-live-tail-light Apple System Colors unchanged 0% own sessionInfo.css
agent-pane.background-activity/pinned-live-tail-dark Apple System Colors Light unchanged 0% own sessionInfo.css
agent-pane.background-activity/pinned-live-tail-dark Apple System Colors unchanged 0% own sessionInfo.css
agent-pane.background-activity/after-latest-message-light Apple System Colors Light unchanged 0% own sessionInfo.css
agent-pane.background-activity/after-latest-message-light Apple System Colors unchanged 0% own sessionInfo.css
agent-pane.background-activity/after-latest-message-dark Apple System Colors Light unchanged 0% own sessionInfo.css
agent-pane.background-activity/after-latest-message-dark Apple System Colors unchanged 0% own sessionInfo.css
agent-pane.background-activity/compact-pill-light Apple System Colors Light unchanged 0% own sessionInfo.css
agent-pane.background-activity/compact-pill-light Apple System Colors unchanged 0% own sessionInfo.css
agent-pane.background-activity/compact-pill-dark Apple System Colors Light unchanged 0% own sessionInfo.css
agent-pane.background-activity/compact-pill-dark Apple System Colors unchanged 0% own sessionInfo.css
agent-pane.background-activity/side-panel-light Apple System Colors Light unchanged 0% own sessionInfo.css
agent-pane.background-activity/side-panel-light Apple System Colors unchanged 0% own sessionInfo.css
agent-pane.chat-inspector/scroller-none Apple System Colors Light new 0% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/scroller-none Apple System Colors new 0% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/scroller-thumb Apple System Colors Light new 0% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/scroller-thumb Apple System Colors new 0% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/full Apple System Colors changed 0.046% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/full Apple System Colors Light changed 0.0153% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/compact-more Apple System Colors changed 1.94% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/compact-more Apple System Colors Light changed 0.0383% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/compact-more-open Apple System Colors changed 0.0714% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/compact-more-open Apple System Colors Light changed 0.0621% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/compact-folded Apple System Colors changed 0.0441% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/compact-folded Apple System Colors Light changed 0.0204% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/compact-capped Apple System Colors Light changed 0.0241% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/compact-capped Apple System Colors changed 0.0107% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/workflow-running Apple System Colors changed 0.0064% own SessionInfo.gallery.tsx
agent-pane.chat-inspector/workflow-running Apple System Colors Light changed 0.0063% own SessionInfo.gallery.tsx

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

Not verified: macOS jobs did not run: compile and app tests were skipped on f8530f019e; ci-status is green without them.

CI passes on f8530f019e (run 41586338706 attempt 1).
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped (the macos job needs both to succeed). Re-run CI once they pass, before merging.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base 9f04908; does not block

Shipped in:

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 3, 2026

@teamleaderleo teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review (claude-opus-5-5 medium subagent): SHIP at f8530f0

Review (subagent claude-opus-5-5 medium): SHIP at f8530f0

Visual verdict: no images attached; code verdict only [follow-up].

Checked: the web body hides its scrollbar in both engines and keeps overflow-y auto and the edge fades. The native edge fades run from SessionInfoClipView's geometry callbacks, not the scroller, so dropping followThin and the scroller is safe, and AppKit still scrolls by wheel and keyboard. The Swift test uses the real APIs and its geometry holds. The bun test (11/11 in session-info/) and the gallery play are sound, and check-scrollbars adds no hits in the changed files.

Follow-ups: [follow-up] the scroller-thumb comparison shows no thumb in older WebKit that lacks scrollbar-width, and only while scrolling under overlay scrollbars.

@blacksmith-sh

blacksmith-sh Bot commented Nov 3, 2026

Copy link
Copy Markdown

Found 6 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp44hk8bcm/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmpeu2ghbcq/summary-fail.json (live):/summary-fail.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo teamleaderleo added the leo-named-fix An obvious fix to something Leo named: lands on push, review runs in parallel label Nov 3, 2026
@teamleaderleo
teamleaderleo merged commit 8359e2e into feat-cmux-next Nov 3, 2026
215 of 225 checks passed
@teamleaderleo
teamleaderleo deleted the lane/si-overlay-scroller branch November 3, 2026 06:28

This branch was previously deployed

1 inactive deployment
ci-routing-agent — f8530f01 Deployed Nov 3, 2026 by teamleaderleo via namespace autofix #12976
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

leo-named-fix An obvious fix to something Leo named: lands on push, review runs in parallel risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant