Skip to content

Add production right-sidebar split panes - #1601

Open
brsbl wants to merge 2 commits into
bb/rename-queued-to-follow-ups-thr_4rr623umv4from
bb/sidebar-split-panes-thr_4rr623umv4
Open

Add production right-sidebar split panes#1601
brsbl wants to merge 2 commits into
bb/rename-queued-to-follow-ups-thr_4rr623umv4from
bb/sidebar-split-panes-thr_4rr623umv4

Conversation

@brsbl

@brsbl brsbl commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add persistent split-pane layouts inside the thread right sidebar while preserving the existing unsplit surface
  • support tab tear-out, pane focus, move/swap, maximize/restore, close/recombine, and independent inner-divider resizing
  • keep browser, terminal, plugin, file-preview, Info, and Diff tabs bound to their own pane content
  • add a production Ladle story and focused layout/persistence coverage

Verification

  • pnpm exec vitest run ... — 7 files, 51 tests passed
  • pnpm exec turbo run typecheck --filter=@bb/app — passed
  • pnpm exec turbo run build --filter=@bb/app — passed
  • focused ESLint and git diff --check — passed
  • live Electron app at 1280×900 and 980×900 — verified tab tear-out, persisted split layout, inner and outer resize, focus, maximize/restore, close/recombine, and narrow layout

BB-Thread-ID: thr_4rr623umv4

AGENT GENERATED: by GPT-5

@bb-slop-cop

bb-slop-cop Bot commented Aug 14, 2026

Copy link
Copy Markdown

🚨 SLOP COP 🚨 · review

I am SlopCop, and I am reviewing this pull request now.

This change adds split panes to the production right sidebar. It lets people open and resize several sidebar views at the same time.

I will check security, code quality, architecture, performance, and the main user flow. I will post one final review after these checks finish.

Comment thread apps/app/src/components/secondary-panel/ThreadSecondaryPanel.tsx
Comment thread apps/app/src/components/secondary-panel/SidebarSplitContainer.tsx Outdated
Comment thread apps/app/src/components/secondary-panel/SidebarSplitContainer.tsx Outdated
Comment thread apps/app/src/components/secondary-panel/SidebarSplitContainer.tsx Outdated
Comment thread apps/app/src/components/secondary-panel/ThreadSecondaryPanel.tsx
Comment thread apps/app/src/components/secondary-panel/ThreadSecondaryPanel.tsx
Comment thread apps/app/src/components/secondary-panel/SidebarSplitContainer.tsx Outdated

@bb-slop-cop bb-slop-cop Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 SLOP COP 🚨 · review

This PR lets people divide the right sidebar into several panes. It also saves each thread's pane layout.

I found seven issues. I would fix the first four before merge.

  1. The browser deck can unmount before it removes a closed native browser view. A hidden native view can also remain visible.
  2. A saved conversation full-screen state loses its only exit control after the sidebar splits.
  3. The compact drawer mounts all saved pane bodies, including terminal and browser views.
  4. Position-based React keys can move component state between panes.
  5. Pane focus calls a parent state update from a React state updater. I reproduced the React warning.
  6. A cancelled divider drag keeps changed DOM sizes but does not save them. I reproduced this size mismatch.
  7. No-op reconciliation causes repeat synchronous storage writes. Default layouts also create records without a retention limit.

The new code correctly uses the shared split-layout operations. However, it copies the existing split tree and divider renderer.

That copy already lost the existing divider's cancellation restore. A shared divider and stable pane-key helper would prevent this difference.

I found no injection, authorization, or command-execution defect. The native browser lifecycle issue can expose a hidden desktop view and keep private content active.

Validation passed:

  • The @bb/app type check passed.
  • The 23 focused tests passed.
  • The browser test covered split, resize, maximize, reload, and compact layouts.
  • The browser test reproduced the pointer cancellation defect and the React warning.
  • An independent GPT-5.6 review confirmed the seven findings.

I posted a line comment for each issue. This review uses the comment-only option.

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