Skip to content

Add sidebar Split lifecycle - #2473

Open
brsbl wants to merge 9 commits into
bb/sidebar-lifecycle-drafts-search-thr_2e2gbjx943from
bb/sidebar-splits-thr_2e2gbjx943
Open

Add sidebar Split lifecycle#2473
brsbl wants to merge 9 commits into
bb/sidebar-lifecycle-drafts-search-thr_2e2gbjx943from
bb/sidebar-splits-thr_2e2gbjx943

Conversation

@brsbl

@brsbl brsbl commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

What was wrong

The built-in sidebar could start only one new-thread composer. Creating a two-pane drafting workspace required a drag split, new-thread submission had no pane-local replacement path, and draft rows could not reopen their saved slot in a split. That left the primary creation control, per-pane draft lifecycle, and split workspace behavior disconnected.

What changed

  • Adds a trailing Columns2 Split action to the sidebar's New thread row. It appears on hover/focus, stays keyboard reachable, is absent on compact viewports, and replaces the current workspace with exactly two fresh blank panes focused on the left.
  • Registers thread.split as a Threads command for the command palette and Keyboard settings, with no default keybinding.
  • Keeps new-thread submission pane-local: the sent slot is discarded, the other pane is untouched, navigation follows the existing "Navigate to threads on creation" preference, and failed sends retain the composer.
  • Extends split-pane draft lifecycle and leave-toast handling, including one toast for a multi-pane replacement leave event.
  • Adds Open in split to draft-row action and context menus when the split workspace is available, reopening the draft's existing slot.
  • Reuses the existing split-layout persistence contract; there is no host-daemon wire change.
  • Advances @get-bb/plugin-sdk to 0.4.23 because the published command-id union now includes thread.split; 0.4.23 is the next version not already present on npm.

How you verified

  • Phase 4 focused regressions: 129 tests passed across RootCompose, split lifecycle, draft menus, toast, command, and layout operations.
  • Expanded app regressions: 212 tests passed; full @bb/app suite passed 3,440 tests in 441 files (3 skipped).
  • Server keybinding coverage: 8/8 passed. Host-daemon: 558 tests in 45 files passed. CLI: 476 tests in 50 files passed.
  • Turbo typecheck: 76/76 tasks passed.
  • Lint: zero errors; only the repository's existing 183 app and 19 mobile warnings remain.
  • Exact-head GitHub CI run 32964455949: all 13 checks passed, including app shards, server, integration, packages, npm version guard, and Ubuntu/macOS package smoke.
  • Chrome for Testing 151.0.7922.71: verified hover/focus affordance, Tab focus, exactly two independent panes with left focus, 1024px layout, compact removal, light/dark rendering, hard reload restore, and no new console errors (only existing unused plugin-style preload warnings).
  • Safari 26.5.2: verified keyboard access with macOS's Option-Tab control traversal, Enter activation, exactly two panes with one focused, hard reload restore, 700px compact removal, and persisted light/dark/system theme changes.
  • Full-repository test attempts reached 68 successful package tasks before reproducible baseline/environment failures outside this diff: provider fork-recording drift in @bb/provider-parity and bb-plugin-provider-claude-code, /tmp vs /private/tmp diagnostics in @bb/plugin-build, and host-load fixed-timeout failures in @bb/agent-runtime/server. Each changed package and focused changed path passed independently.

Before — parent PR head b971bd795

New thread hovered at the same route, fixture, and 1440×1024 viewport; no secondary action exists.

Before: New thread row without Split

After — PR head 03d59f8b0

The same state reveals the icon-only Split action without adding chrome at rest.

After: New thread row with Split on hover

After — two-pane result

Split replaces the workspace with two blank new-thread panes and focuses the left pane.

After: two blank split panes

After — responsive and dark

After: two panes at 1024px

After: two panes in dark mode

Fixes: N/A — Updated Sidebar Spec Phase 4 layer.

BB-Thread-ID: thr_2e2gbjx943

AGENT GENERATED

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant