Repository navigation
Remove blank-tab creation from the side pane - #850
Conversation
Tabs now open only from content: threads, profiles, channel settings, channel menu panels and linked sessions. The plus action, the empty-pane toggle's blank tab and the channel/DM/tool picker are removed in Messages and Me. Todos and Terminal keep their channel launchers. The empty split toggle stays focusable but unavailable so closing the last tab keeps a stable focus target. Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
wesbillman
left a comment
There was a problem hiding this comment.
No changes requested from this source review. The removal is consistent across Messages and Me, while the inspected content-opening and tab-close paths retain their existing state and focus handling.
Star Lord automated source review via Wes’s account: head cea3498ea3b55018fa7a89a1a4bb7e5e0be70261, base 37dcd836fbcf1613ddd27cece5a99e04d601bd64. No tests or app execution performed; hosted CI, desktop/native behavior, and enlarged-text/tooltip appearance remain unverified.
wesbillman
left a comment
There was a problem hiding this comment.
Carl, an automated reviewer, commenting via Wes’s GitHub account.
No demonstrated production blocker. One non-blocking regression-coverage finding inline; recommend restoring those retained checks before merge. The content-only tab creation and focusable-disabled toggle implementation otherwise match the stated scope.
Reviewed head cea3498ea3b55018fa7a89a1a4bb7e5e0be70261 against base 37dcd836fbcf1613ddd27cece5a99e04d601bd64, with an independent keyboard/accessibility and assertion-preservation pass from Princess Donut.
Validation: current hosted CI is green (Windows native validation skipped). A separate local browser-fixture probe passed all four Messages/Me × Chromium/WebKit cases, covering both themes and widths 1440/800/390 at 200% interface size. It checked keyboard reachability, hover tooltip visibility, inert Enter/Space/pointer activation, and draft retention. Selected narrow/wide screenshots showed the disabled control and focus ring visible with its tooltip inside the viewport. This exercised the production frontend with modeled transport, not a native app or live relay; native/assistive-technology and human acceptance remain unverified. No tracked source changes.
Co-authored-by: Carl <carl@users.noreply.github.com> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
wesbillman
left a comment
There was a problem hiding this comment.
No changes requested in this test-only follow-up: the retained Close-button visibility, hover-only scrollbar, 4px track, and stable tab/header geometry assertions are restored around real content tabs, addressing the prior coverage finding. Production code is unchanged from the previously reviewed revision.
Star Lord automated source review via Wes’s account — head 0f28dcd90eb7b90f70c97b311c021cd69311711e, base 37dcd836fbcf1613ddd27cece5a99e04d601bd64. No tests or app execution performed; CI was still running at the snapshot, and native/packaged plus hands-on accessibility validation remain unverified.
Co-authored-by: Carl <carl@users.noreply.github.com> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
|
🤖 Updated this branch with current main (736975e), producing cf349c3, without rewriting commits. Previous reruns kept testing the older combined version. The workflow test and its five-second timeout are unchanged. On the updated branch, all 22 workflow tests and all 16 Messages/Me tab journeys passed locally across Chromium and WebKit. Mandatory push checks passed. New hosted checks are queued; this is not a claim that the CI timeout has been fixed. |
What this does
The side pane no longer has a way to create an empty tab. The plus button, the split toggle's "open a blank tab when empty" behavior, and the New tab picker (search for a channel, DM, or tool) are removed in both Messages and Me. Tabs now open only from content: threads, profiles, channel settings, channel menu panels such as Usage, and linked sessions.
This PR only removes. It doesn't add main-pane tabs, placement settings, or dragging; that's separate follow-up work.
Why it matters
Buzz should open things where you need them, from the thing you're looking at. A blank tab that asks you to go find something works against that. You end up searching inside a pane instead of following the content that brought you there. Removing it makes the side pane mean one thing: details and conversations you opened from somewhere.
What people lose: opening an arbitrary channel or DM beside the current one, and opening Todos or Terminal as a tab. Todos and Terminal still open from their own channel launchers. Tabs were only ever kept in memory, so nobody will see a leftover blank tab after updating.
New rule: Side-pane tabs are created only by opening content, never by an empty "new tab" action.
How it works
Prior work
This reverses the picker introduced in #413 and refined in #505 (@mahanti) and #675 (@loganj). Draft #570 (@jameskraus) edits the deleted picker file. It will conflict, so we should agree on sequencing.
Verification
All on this branch's head (base
37dcd836f):pnpm typecheck, changed-file Biome,git diff --check,pnpm design:check, and the browser CI discovery test pass.channel-tabs,me-workspace,todos,channel-usage-geometry, andsession-sharingbrowser files.message-navigationandscrollbar-polishpassed in both engines before the final removal of picker-only code. Hosted CI will rerun them on this head.Browser coverage changes
channel-tabs: opening tabs via the picker, New tab state, Add tab overflowchannel-tabs: picker-opened DM sendme-workspace: Me side-tab drafts and send via pickertodos: Todos opened as a picker tabscrollbar-polish: picker list scrollbarmessage-navigation: focus started from Add tabNot yet checked