Skip to content

Structure the sidebar into configurable regions - #2395

Open
brsbl wants to merge 1 commit into
mainfrom
bb/sidebar-structure-thr_3zy8th6zyc
Open

Structure the sidebar into configurable regions#2395
brsbl wants to merge 1 commit into
mainfrom
bb/sidebar-structure-thr_3zy8th6zyc

Conversation

@brsbl

@brsbl brsbl commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

What was wrong

The sidebar was one implicit stream: bb-owned Extensions participated in plugin-page ordering through a reserved fake plugin id, top-level regions had no durable structure, and the Custom-mode loose-thread bucket still used the obsolete “Unorganized” name. That made independent section ordering/hiding and stable boundaries impossible.

What changed

  • Introduced three explicit top-level regions—New thread / Extensions, Plugin pages, and Thread list—with full sidebar-border seams only between visible, non-empty neighbors.
  • Added client-local, normalized order and visibility preferences plus a Sidebar sections group in Display options. Thread list is permanently unhideable; the other two regions hide and restore independently.
  • Moved Extensions beside New thread and removed its reserved plugin-order key and plugin-row menu behavior.
  • Renamed the desktop Custom-mode loose-thread header and delete-section dialog copy to Threads.
  • Added focused persistence, recovery, keyboard-order, divider, Extensions, and compatibility regressions. No server, daemon, wire, or plugin-SDK contract changes.

Screenshots

Before — merge base 42d2c1bec

Before — merge base 42d2c1bec

After — PR head c781d323e

After — PR head c781d323e

How you verified

  • pnpm exec turbo run typecheck --force — 76/76 tasks passed on Node 22.22.1.
  • pnpm exec turbo run lint --force — passed with zero errors (181 existing React compiler warnings).
  • Focused Phase 1 suite — 7 files, 37 tests passed.
  • @bb/app full suite — 434 files, 3,362 passed / 3 skipped.
  • @bb/desktop — 35 files, 231 tests passed.
  • Repo-wide forced tests ran across 74 tasks excluding the independently reproduced base-failing @bb/provider-parity; 70 passed. Load-sensitive server and integration failures passed in isolation. Remaining unrelated baseline defects were the macOS /tmp vs /private/tmp assertion in @bb/plugin-build and the recorded Claude fork replay producing no events.
  • Google Chrome for Testing 151: default three-region/two-seam layout, each hide state, persistence, reorder, Display options, light/dark, and 390 / 768 / 1440 / 3440 viewports; no runtime exceptions.
  • Safari 26.5.2: settled load, hard reload, Display options, Thread-list no-hide contract, reorder, and persisted reload all passed.

Fixes # — no linked issue.

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