fix(board): keep loading owned by pending operations - #3359
Chris0Jeky wants to merge 1 commit into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Independent initial review at 4fa3911 against parent 36b98d2 found no introduced HIGH/CRITICAL defects. Static inspection covered token-specific/idempotent release, queued column/label ownership, synchronous detail replacement and logout isolation. The reviewer ran no tests; coordinator evidence is separate: 440 focused tests, 7,437 full frontend tests with three existing skips, build/typecheck/lint, 608 Smart CI self-tests, docs checks and three Chromium flows all pass. One LOW informational note is declined as a merge blocker: boardCrudStore.ts around line 712 retains commentary about the removed list-finally coupling. The executable reset now clears ownership synchronously, and the note has no runtime effect. No additional fix/review cycle is opened for it. Required hosted CI, parent-first integration and ADR-0066 maintainer review remain merge gates. OUTSTANDING_TASKS J.2 records the control-path coordinate correction; no human approval or acceptance is inferred. |
|
Windows API integration triage: the original run 35774369025 timed out after 45 minutes without an assertion or TRX. A targeted rerun of its failed Windows API job (106937950634) passed at the same head 4fa3911 on 2026-09-22 21:45Z. Ubuntu API integration and the parent/child Windows runs also passed; this is now evidenced runtime variance rather than a demonstrated source regression. No code or timeout policy changed. The stacked PR remains subject to parent #3358 maintainer review and fresh base/CI qualification before any merge. |
Chris0Jeky
left a comment
There was a problem hiding this comment.
Coordinator verification: loading-ownership logic correct; merge needs parent plus the declared maintainer control-path review. Core beginBoardLoading verified: token-set ownership, stale-session finish is a no-op, logout purges tokens, double-finish safe, first settler cannot clear a sibling busy state. Detail handoff acquires before retiring so explicit-to-explicit stays busy while the replaced owner retires even if its transport ignores cancellation. Queued column intents each own loading from submission through settlement. Mechanical adoption across crud/comment/card/label stores is uniform. Mutation-smoke contract move 673 to 656 is self-consistent (expression and 1-based/0-based columns unchanged) and the green smart-ci contract test independently proves the coordinates; the OUTSTANDING_TASKS control-path disclosure matches exactly. Existing specs strengthened, new ownership spec covers overlap/rejection/logout/replacement. Full CI green, mergeable clean into parent. Required path: land #3358 first, then this with the maintainer review its own J-row declares under ADR-0066 (this verification is not that approval).
Issue #3305 replaces the shared loading Boolean's multiple writers with a shared set of operation owners. A board-A mutation can now finish while board B is still loading without dismissing B's loading state. Independent list reads and queued column/label mutations retain their own owners; logout clears all owners using the existing session generation. Replacing an explicit detail request releases its old owner even when the transport ignores abort.
Background refreshes, direct child reads and archive/restore keep their existing loading behavior. Existing generation checks, mutation ordering, and request results/errors are preserved. This reduces misleading empty states during board maintenance and keeps review-first proposal behavior intact.
Closes #3305.
Stacked on #3358 at
36b98d2b23e7de9a00cd7e7388e9dff5075d84e4, which depends on #3315. Merge parents first, then retarget and requalify against main. No parent branch should be deleted while it supports a child.Verification at
4fa39113f0f284cc3d7f552b1edb547a255f8b3c:npx vitest --run --maxWorkers=2passes 518 files and 7,437 tests, with three existing skips.The source edit moves the unchanged mutation-smoke expression from line 673 to 656. Both the contract and its literal companion test use the new row; columns and the 50-character source expression are unchanged. Because the companion test is under
scripts/ci/, ADR-0066 requires maintainer review before merge. Independent review and passing CI do not supply that approval. OUTSTANDING_TASKS J.2 records this gate; its 42 human-action rows remain unchecked.STATUS documents the behavior. Runtime evidence is in
.worktrees/codex-3305-loading-owners/.runtimeand will be archived before cleanup.