B3 — Planner board: multi-select stack-drag #411
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#411
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
As an operator,
I want to select multiple cards and drag them as one stack onto an agent column,
so that triaging a batch of freshly-broken-down stories is one gesture instead of N.
Today drag is single-card only. The dominant operator chore is moving 3-10 newly-created stories from Triage onto agent columns one at a time. Linear and Shortcut both ship multi-select stack-drag; this story brings the same pattern.
Acceptance criteria
Selection
cmd-click(orctrl-clickon Linux) toggles a card's selected state.shift-clickextends a contiguous range from the most recent anchor within the same column; cross-column shift-click resets the anchor instead.border-accentring and a checkmark in the top-right corner.devclears any selection in other columns. (Cross-column selection has no useful drag target.)Drag
3) in the top-right corner of the stack.Drop + assignment fan-out
assignCardfor each selected card viaPromise.allSettled.Failed to assign N of M cards: <reason>aggregating failures.Cancel 3 running tasks and unassign?.Keyboard
Escclears selection.cmd-a(orctrl-a) selects all visible cards in the focused column. Suppressed if the focus is in a text input / textarea.Tests
board.test.tsx: cmd-click toggles selection.board.test.tsx: shift-click extends range within column, resets across columns.board.test.tsx: drag of selected card → 3assignCardcalls + 3 cache patches.board.test.tsx: one assign call rejects → only the failed card rolls back, toast showsFailed to assign 1 of 3 cards.board.test.tsx:Escclears,cmd-aselects all in focused column.Out of scope
References
docs/specs/board-rework.md§5 B3.Escandcmd-aoverlap with B4's keymap; coordinate so they share the same key handler.Dependencies
Suggested first commit
feat(board): multi-select cards with cmd/shift-click + stack-drag