Found while reviewing PR #2567 (#2301/#2303/#2304/#2305) and confirmed by the fresh-context reviewer; pre-existing, not introduced or touched by that PR.
Defect. captureStore.batchTriage (frontend/taskdeck-web/src/store/captureStore.ts, the await fetchItems() after the batch POST, ~line 838 at PR #2567's head) refreshes the list unscoped, while the caller's inbox may be board-scoped (useInboxOrchestrator.ts ~363-366 always passes boardId when one is active). A Legacy batch action on a board-scoped inbox therefore replaces the visible rows with the unscoped list.
Window. For action === 'triage' the bounded poll starts immediately with the correctly scoped query and its first tick (3 s) applies the scoped snapshot, so the wrong rows show for at most one tick. For ignore / cancel no poll starts, so the unscoped rows persist until the next scoped load.
Acceptance.
- the post-batch refresh uses the caller's current list scope (board and archived-history) or the orchestrator supplies it;
- a spec proves a board-scoped Legacy inbox keeps board-scoped rows after
ignore / cancel and after triage;
- no change to the authoritative POST result, bounded polling, or Paper (which does not expose
batchAction).
Refs #2305, PR #2567.
Found while reviewing PR #2567 (#2301/#2303/#2304/#2305) and confirmed by the fresh-context reviewer; pre-existing, not introduced or touched by that PR.
Defect.
captureStore.batchTriage(frontend/taskdeck-web/src/store/captureStore.ts, theawait fetchItems()after the batch POST, ~line 838 at PR #2567's head) refreshes the list unscoped, while the caller's inbox may be board-scoped (useInboxOrchestrator.ts~363-366 always passesboardIdwhen one is active). A Legacy batch action on a board-scoped inbox therefore replaces the visible rows with the unscoped list.Window. For
action === 'triage'the bounded poll starts immediately with the correctly scoped query and its first tick (3 s) applies the scoped snapshot, so the wrong rows show for at most one tick. Forignore/cancelno poll starts, so the unscoped rows persist until the next scoped load.Acceptance.
ignore/canceland aftertriage;batchAction).Refs #2305, PR #2567.