Keep retained Inbox rows after same-scope refresh failures - #2484
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
captureStore.items survives leaving the Inbox route and the board/archived watchers are not immediate, so re-entering Inbox at a different board with a failed first load left isScopeReplacement false while listError was set and retained rows were present. PaperTriageTable then rendered the previous board's rows and their count under the new board's scope label. Make the mount-time load a scope replacement so a failed first load hides the stale rows and suppresses their count.
Fix round — HIGH addressed, MEDIUM/LOW trackedHead: Fixed (HIGH)
This was a regression introduced by this PR — pre-diff, The mount-time load is now unconditionally a scope replacement, which is also the semantically correct classification: mount is always a fresh scope. Test added
It pre-seeds Confirmed the test is load-bearing: reverting only the The view-side rendering half is already covered by Verification
Tracked, not fixed (deliberate — being filed as a follow-up issue)
None of these are merge blockers under the severity bar: each needs a specific concurrent-write or cosmetic path, and none makes the shipped retained-rows behavior wrong on the direct path this PR changes. |
|
Round 2: the fix is the exact one-line change the review asked for (onMounted -> loadInboxForScopeReplacement) plus a load-bearing lifecycle spec (proven red without the fix, 183 targeted tests green). No logic beyond the reviewed finding, so no further review pass is owed. The two MEDIUMs and one LOW from round 1 are tracked in #2501. Merging when CI at 1900e90 is green. |
Closes #2044
Summary
Verification
No persistence, API filtering, or latest-request-wins store behavior changed.