cmux-next: remove the dead SessionSidebar (not shipped since #17504)

Merged
TE
15d ago
+61-1745

Summary

SessionSidebar has not shipped since #17504 (2026-10-06): no product code imports it. Only its gallery entry, its tests and the dev-only prototype page (prototype/WorkspaceShell.tsx, /agent-pane/prototype.html) used it, yet lanes kept fixing it (#23002, #23012, gallery plays). The coordinator decided to delete it, so lanes stop fixing dead code.

Removed:

  • SessionSidebar.tsx and SessionSidebar.gallery.tsx
  • the tests that only rendered it: chats-sidebar-empty, session-sidebar-preview, sidebar-rail-css, session-list-grouping, and its cases in chat-rows-open-on-press, row-focus, selected-row-accent, subtle-elevation and gallery-agent-pane-entries
  • the sessionList.ts helpers only it used: sidebarSections, groupByProject, filterSessions, sortByRecency, visibleSessions, groupMark
  • 72 styles.css rules whose classes nothing renders any more
  • the dead :scope>.acpmux-sidebar lookup in summary/cardState.ts (nothing renders that class)
  • its ui-rules.pending.json line; the layers and type-scale baselines are lowered to match

The prototype stays. Its History drawer is now a plain list of the history chats: an "Open" mark for chats already in a tab, the selected chat marked current, and a click opens that chat.

Changelog

none

Test

This removes code with no user-visible change, so there is no red-first test.

  • vp check --no-fmt: clean. check-layers.sh and check-type-scale.sh: pass.
  • The edited browser tests (row-focus, selected-row-accent, subtle-elevation, chat-rows-open-on-press): 56 pass. prototype-stack-switch-motion: pass. gallery-agent-pane-entries: 11 pass.
  • prototype.html?history in Chromium: 20 rows, the Open marks and the current marker show, a click opens the chat and closes the drawer, and there are no page errors.

Observed / Not run

  • Observed: the runs above. An independent review subagent grepped every removed class, export and selector across webviews/, the Swift app and cmux-tui/frontends/web, and passed it. scripts/web-lint.sh and prepush-gate.py pass.
  • Left for a follow-up: sidebarPreview.ts. The native Debug setting agentPane.debug.sidebarPreviewVariant and layout.sidebarPreviewVariant still write it, but nothing reads it any more. Removing it means removing the Swift tunable, the page event and the module together. 21 sidebar.* strings are now unreferenced; the catalogs are untouched.

No capture: dead code removal; the shipped app has no visible change.

Agent session: huge-blue

🤖 Generated with Claude Code


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


Summary by cubic

Removes SessionSidebar, which has not shipped since #17504. No product code renders it; only its gallery entry, tests, and the dev-only prototype did.

  • Deletes the component, its gallery entry, and the tests that only rendered it (chats-sidebar-empty, session-sidebar-preview, sidebar-rail-css, session-list-grouping, and the sidebar cases in chat-rows-open-on-press, row-focus, selected-row-accent, subtle-elevation, gallery-agent-pane-entries).
  • Drops the sessionList helpers only it used (sidebarSections, groupByProject, filterSessions, sortByRecency, visibleSessions, groupMark), 72 unused styles.css rules (including its entrance transition), the dead sidebar lookup in summary/cardState.ts, and its ui-rules.pending.json entry; the layers and type-scale baselines are lowered to match.
  • The prototype's History drawer now renders its own plain list, marking chats already open in a tab and the selected chat; a click opens the chat and closes the drawer.
  • sidebarPreview.ts stays because the native Debug setting still writes it; removing it is left as a follow-up.