cmux NEXT: remove the dead lone-tab solo row code
Leo (2026-11-03): "i think you guys are currently hiding it completely when there's only the one tab... but i think that's just too alien of a look"
#34327 made a pane's tab strip show at every tab count, so the pane always offers the row with its tabs shown. The code that existed only for a hidden lone tab (#33132, the page's solo layout in #33142, and the toolbar hole fill of #33261/#33407) no longer runs. This removes it; no behaviour changes.
Removed:
PaneTabRowSharing.setTabRowTabs(shown:),tabRowHoleFill, thetabs:andtoolbar:parameters ofofferTabRow, andNSView.paintTabRowHole(with tabs always shown the fill was always nil, so the toolbar plate was never painted). The protocol default,PaneTabRowForwardingand the AgentPaneView conformance lose them too.AgentPaneTabRow.tabsShown,holeFill,soloTabinofferedand thetabRowevent, andnativeHoles(tabs:). The window-rim hole from #33346 stays.TabStripModel.holdsOneTab,TabStripView.laidOutOneTab,layOutPaneIfOneTabChanged.- webviews:
soloTabin header/tabRow.ts, the[data-solo-tab]CSS, VirtualTranscript and ThreadMinimaptopInset, and header/underHeader.ts. Its record only decided whether the solo transcript could run up under the row; the lines it gated render on the same conditions as before #33142. The solo gallery variants and the one-tab case in thread-rail-foot-card.test.ts go too. - Tests: AgentPaneTabRowSoloTests, TabStripHoldsOneTabTests, the tabsShown and hole-fill cases in AgentPaneTabRowHolesTests, chat-header-solo-tab.test.ts, under-header-lines.test.ts (its App.tsx string check was already stale on base), and
theToolbarPaintsTheChatsHoleFill.
Test: theStripShowsAtOneHeightWhateverItsTabCount now checks what is on screen. At 0, 1 and 2 tabs, the strip and its + are shown inside the pane, there is one tab cell per tab, the centre of each tab and of + resolve to .strip, and a point past + resolves to .empty (the titlebar). The strip's frame stays the same across the counts.
Risk: low. This is a removal; only dead branches and their tests are deleted.
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 dead lone-tab solo row code. #34327 made a pane's tab strip show at every tab count, so the code that hid a lone tab and ran the transcript up under the row (#33132, #33142, #33261/#33407) no longer runs. Pure removal; no behavior change.
Removed
- Native:
setTabRowTabs(shown:), thetabs:/toolbar:offer parameters,tabRowHoleFillandpaintTabRowHole,holdsOneTabandlayOutPaneIfOneTabChanged, andsoloTabin thetabRowevent. The window-rim hole stays. - Web: the
soloTabflag,[data-solo-tab]CSS, transcript and minimaptopInset, and theunderHeadergating record. The lines it gated still render on their own conditions. - The dead tests for the above.
theStripShowsAtOneHeightWhateverItsTabCountnow asserts the strip, its +, and one tab cell per tab are on screen at 0, 1, and 2 tabs.