Skip to content

Show open decisions as a deck and route blank documents to Decisions - #483

Merged
MaggieAppleton merged 14 commits into
mainfrom
decisions-tab-deck
Oct 11, 2026
Merged

MaggieAppleton merged 14 commits into
mainfrom
decisions-tab-deck

Conversation

@MaggieAppleton

@MaggieAppleton MaggieAppleton commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

What changes

On desktop, the Decisions tab shows open decisions as a deck, and a blank document sends the Planner's questions there.

  • Routing: when a document has no prose and the Planner asks a decision, either in the document or spotted in Chat, the workspace switches to Decisions once per entry and announces "Showing Decisions".
    • It never moves someone who is editing.
    • It never overrides an explicit tab pick.
  • Deck: two or more open decisions stack as a deck, with the label "N open decisions".
    • Arrow keys shuffle it. Reduced motion reorders instantly.
    • Cards answered during this visit wait at the back until you leave.
    • Resolved decisions are listed below the deck.
    • Selecting Decisions again resumes at the deck's current top card.
  • Phones are unchanged: they keep the list and its save bar.

Screenshots

Desktop Decisions deck

Desktop Decisions deck

A blank document routed to Decisions

Blank document redirect

Phone, unchanged list

Phone Decisions

flowchart LR
  Q[Planner asks a decision] --> B{Document has prose?}
  B -- yes --> D[Stay on Document]
  B -- no --> E{Reader editing or picked a tab?}
  E -- yes --> D
  E -- no --> R[Switch to Decisions once and announce it]
  R --> K{2+ open decisions?}
  K -- yes --> Deck[Deck, arrow keys shuffle]
  K -- no --> Single[Single card]
Loading

Testing

  • Unit tests: the routing state machine (hold until answered, the once-per-entry latch, editing declining) and decisionsDeck().
  • New e2e tests:
    • harness-decisions-deck.e2e.ts, run with the fake Planner: routing, an editing reader, an explicit tab pick, arrow-key shuffling and resuming at the top card.
    • A phone test confirming the list stays a list.
  • Updated e2e tests: older suites now account for the deck and routing.
    • ready() in e2e/room.ts uses main's attached-editor check, which also counts the editor that stays mounted behind Decisions.
    • The read-only viewer assertion in sidebar-decision-counts is kept and checks the hidden editor.
  • Checks on the rebased head: bun run types, the unit tests and the design-contract check pass. The initial JS bundle is unchanged at 80306 B gzip.

Slice 4 of the nested-documents work.

🤖 Generated with Claude Code

@MaggieAppleton
MaggieAppleton enabled auto-merge (rebase) October 11, 2026 12:30
MaggieAppleton and others added 14 commits October 11, 2026 13:41
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Choosing the tab focuses the deck's current top; an explicit reveal brings
the named card forward. Phones keep the list and save bar. The routing
announcement now speaks only once the forced view has applied, and a window
blur no longer clears the editing state.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cards behind the top are inert, so tests bring a decision forward before
answering it. A card answered or discarded in this visit now waits at the
back of the deck instead of joining resolved history until the next visit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The label now reads "1 open decision" or "N open decisions" while answered
cards wait behind, and the resolved toggle reads as one phrase.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e suites

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sions

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaggieAppleton
MaggieAppleton merged commit 6ae220f into main Oct 11, 2026
3 checks passed
@MaggieAppleton
MaggieAppleton deleted the decisions-tab-deck branch October 11, 2026 13:00
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