-
Notifications
You must be signed in to change notification settings - Fork 0
Legacy assignment-save owner can strand navigation if its ColumnLane unmounts #3311
Copy link
Copy link
Open
Labels
Priority IIIValuable but unscheduled: residuals, tech-debt, performance, depth work.Valuable but unscheduled: residuals, tech-debt, performance, depth work.bugSomething isn't workingSomething isn't workingfrontendPrimary implementation impact in Vue/TypeScript UI and client runtime.Primary implementation impact in Vue/TypeScript UI and client runtime.testingTest coverage, harnesses, regression prevention, and verification pipeline work.Test coverage, harnesses, regression prevention, and verification pipeline work.
Description
Activity
Metadata
Metadata
Assignees
Labels
Priority IIIValuable but unscheduled: residuals, tech-debt, performance, depth work.Valuable but unscheduled: residuals, tech-debt, performance, depth work.bugSomething isn't workingSomething isn't workingfrontendPrimary implementation impact in Vue/TypeScript UI and client runtime.Primary implementation impact in Vue/TypeScript UI and client runtime.testingTest coverage, harnesses, regression prevention, and verification pipeline work.Test coverage, harnesses, regression prevention, and verification pipeline work.
Projects
- StatusShow more project fieldsPending
Summary
PR #3309 correctly aggregates simultaneous
card-editor-saving-changeowners by column id so one clean lane cannot clear another lane's pending assignment PUT. A separate lifecycle boundary remains: the owningColumnLanecan unmount while its request is still in flight.Reachable shape
CardModalstarts an assignment save and its lane emitstrue.BoardCanvasretains the column id in its aggregate owner set.false; if the late emit is dropped, route navigation remains refused indefinitely.Pruning the id merely because the lane disappeared is not sufficient: the server request may still be active, so that would produce the opposite false-negative and allow navigation before settlement.
Expected design
Move assignment-save ownership to a lifecycle that outlives the rendering lane—such as an operation token/promise registry in the board view/store—or explicitly prove and contract that a post-unmount
finallyemit is delivered to the same parent owner.The solution must:
Audit provenance
Found during exact-head review of PR #3309. Kept separate because #3309 fixes the confirmed sibling-lane false-clear race with a focused two-file patch; this residual needs a cross-component operation owner rather than another set-pruning condition.