cmux-next: remove the dead SessionSidebar (not shipped since #17504)
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.tsxandSessionSidebar.gallery.tsx- the tests that only rendered it:
chats-sidebar-empty,session-sidebar-preview,sidebar-rail-css,session-list-grouping, and its cases inchat-rows-open-on-press,row-focus,selected-row-accent,subtle-elevationandgallery-agent-pane-entries - the
sessionList.tshelpers only it used:sidebarSections,groupByProject,filterSessions,sortByRecency,visibleSessions,groupMark - 72
styles.cssrules whose classes nothing renders any more - the dead
:scope>.acpmux-sidebarlookup insummary/cardState.ts(nothing renders that class) - its
ui-rules.pending.jsonline; 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.shandcheck-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?historyin 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 andcmux-tui/frontends/web, and passed it.scripts/web-lint.shandprepush-gate.pypass. - Left for a follow-up:
sidebarPreview.ts. The native Debug settingagentPane.debug.sidebarPreviewVariantandlayout.sidebarPreviewVariantstill write it, but nothing reads it any more. Removing it means removing the Swift tunable, the page event and the module together. 21sidebar.*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
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 inchat-rows-open-on-press,row-focus,selected-row-accent,subtle-elevation,gallery-agent-pane-entries). - Drops the
sessionListhelpers only it used (sidebarSections,groupByProject,filterSessions,sortByRecency,visibleSessions,groupMark), 72 unusedstyles.cssrules (including its entrance transition), the dead sidebar lookup insummary/cardState.ts, and itsui-rules.pending.jsonentry; 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.tsstays because the native Debug setting still writes it; removing it is left as a follow-up.