Skip to content

Add independent draft panes and sidebar lifecycle filters - #3897

Closed
brsbl wants to merge 6 commits into
bb/draft-resources-v2-thr_8j56at3ii2from
bb/draft-composers-v2-thr_8j56at3ii2
Closed

brsbl wants to merge 6 commits into
bb/draft-resources-v2-thr_8j56at3ii2from
bb/draft-composers-v2-thr_8j56at3ii2

Conversation

@brsbl

@brsbl brsbl commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator

Human comments

What was wrong

New thread shared one browser-local composer, so opening or submitting another composer could consume the same unfinished work. The sidebar could not select saved drafts or archived threads.

What changed

  • Give each draft its own composer, options, destination, recoverable edits, and split-pane identity.
  • Import the existing singleton only after acknowledged storage; preserve newer edits and other drafts when submitting one.
  • Add Active/Drafts/Archived sidebar filtering, default Active, plus SDK/CLI draft opening and lifecycle preference controls.
  • Keep schedules and plugin submission data saved through the SDK when the app supplies no replacement. Load legacy import and optional lifecycle rows after the app shell.

This is the approved clean-history replacement for #3531. It retains the six accepted P1 fixes for recovery ownership, archive transitions, new-pane focus, project selection, reasoning normalization, and provider readiness. SDK 0.4.103 adds draft navigation using existing authenticated client delivery. Pane layout and unsaved recovery remain local, with legacy layout projection retained.

How you verified

  • HOLD: remote CI at 35097a66766c8cf45eaa49e7db1d4b6c54cb690f passes all app/server/package/integration tests, typecheck/lint/build, and Linux/macOS package smoke. The raw startup bundle exceeds the original cap by 14.0 KB; a budget decision remains pending. No budget increase remains in this diff.
  • Remote measurements: main 8d35c2776 1671.8 KB raw / 411.3 KB brotli; parent 720af27ce 1674.8 / 411.3; this head 1697.6 / 416.4. Existing caps are 1683.5 / 419.0. Lazy import and optional-row boundaries reduced the initial implementation from 1725.6 / 423.3. Route closure is 2178.0 / 585.1 against 2215.3 / 591.1. No further optimization or budget increase is approved.
  • Chrome for Testing 153.0.8010.36, isolated source app: distinct split drafts, modifier New thread with focus, edits and hard reload, close/CLI reopen, acknowledged singleton import, lifecycle selection/reset with SDK/CLI readback, and submit-one/retain-neighbors passed. The observed saved-schedule defect was fixed and its affected retest produced one pending queued message. Final-head startup and lazy Drafts/Archived rows passed on desktop and compact layouts. Expected missing/consumed-draft 404/410 responses were handled; no uncaught application errors were observed.
  • Fresh 2× evidence below compares parent 720af27ce81921013712f1b1a3ad870eeaab220d and this head with the same synthetic fixtures, light theme, route /?draft=drf_ui_regression_list, focused pane, and CSS viewports (1440×960 desktop; 390×844 compact). Full-resolution PNGs were inspected.
  • The sole review was completed on Add independent draft composers, split navigation, and sidebar lifecycle filters #3531; no additional review was performed for this replacement.

Desktop before

Before: two panes share the singleton draft

Desktop after

After: independent saved drafts and the lifecycle selector

Compact before

Before: the draft route cannot reopen an independent draft

Compact after

After: the selected durable draft opens in the compact composer

BB-Thread-ID: thr_8j56at3ii2

AGENT GENERATED

@brsbl
brsbl added this pull request to stack #3898 September 18, 2026 08:15
@brsbl
brsbl force-pushed the bb/draft-composers-v2-thr_8j56at3ii2 branch from cb61e95 to 241123e Compare September 18, 2026 08:24
@brsbl

brsbl commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator Author

Closing as superseded at the user's request. The current implementation builds on the shipped Drafts plugin, threads, and queued messages: #3930 (SDK/CLI lifecycle filtering and save actions), #3933 (sidebar filters), #3938 (palette filters), and #3931 (independent New thread split composers). This PR is no longer a merge candidate. Its branch is retained.

@brsbl brsbl closed this Sep 19, 2026
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