diff --git a/docs/STATUS.md b/docs/STATUS.md index 559596bb7..354510e88 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -2,6 +2,36 @@ Last Updated: 2026-09-22 +## Column writes follow their board visit (#3314) + +Create, update, delete and reorder share one mutation lane per board, preserving intent order +without blocking unrelated boards. BoardView now binds an explicit visit before loading and +replaces it when route parameters change; unmount retires only that component's visit. Cached +detail and Paper/Legacy layout changes do not define a new visit. Queued writes from a retired +visit stop before transport, and late success/failure cannot patch or notify another screen. +Logout also retires the mutation session, so an old account's response cannot reconcile a new +login's board. An already-started successful write can refresh an actively reopened same-board +visit once, with the column list and delete cascade guarded together. A later queued write waits +for that recovery and keeps its later result. + +This reduces navigation-induced board maintenance while preserving existing review-first +proposal behavior. It does not cancel a write already accepted by the server. Shared ownership +for card, comment, label and board mutations remains tracked in #3306; shared loading arbitration +remains tracked in #3305. Deferred-response store tests and BoardView lifecycle tests cover the +route/session boundary, and the existing three ordering assertions now compare actual reactive +array identities as well as full contents. + +## Assignment saves retain navigation ownership after a lane disappears (#3311) + +Legacy board navigation tracks submitted assignment PUTs with individual operation tokens in +BoardCanvas. Removing a card field or column lane no longer clears an unanswered save or strands +the route guard: the request's settlement releases its own token, and overlapping saves remain +aggregated until the last one settles. Board replacement and canvas unmount retire the registry +generation, so stale releases cannot clear a newer owner's guard. Existing logout clears board +state and unmounts that canvas. Paper's local editor behavior and assignment transport timeout +remain unchanged. Registry, field, canvas and Legacy navigation tests cover these boundaries; +the independent column visit token does not reset or take over assignment-save ownership. + ## Session establishment follows the latest identity intent (#3324) Login, registration, OAuth/OIDC exchange, refresh and restore now own their asynchronous diff --git a/frontend/taskdeck-web/src/components/board/BoardCanvas.vue b/frontend/taskdeck-web/src/components/board/BoardCanvas.vue index 5a26d7db2..0e611e294 100644 --- a/frontend/taskdeck-web/src/components/board/BoardCanvas.vue +++ b/frontend/taskdeck-web/src/components/board/BoardCanvas.vue @@ -1,8 +1,13 @@