Skip to content

fix(board): preserve column and assignment save ownership - #3315

Merged
Chris0Jeky merged 21 commits into
mainfrom
codex/3314-column-mutation-ordering
Sep 22, 2026
Merged

Chris0Jeky merged 21 commits into
mainfrom
codex/3314-column-mutation-ordering

Conversation

@Chris0Jeky

@Chris0Jeky Chris0Jeky commented Sep 20, 2026

Copy link
Copy Markdown
Owner

Column writes could start after their board screen had closed, and a removed column lane could clear the navigation guard for an assignment save already sent to the server. This integrates the repaired column lane with PR #3313's request-owned assignment registry, preserving every source commit.

  • Column create/update/delete/reorder serialize per board. An explicit BoardView visit and logout generation reject retired queued work before transport and suppress stale UI. A successful old write can refresh only an active reopened visit in the same session.
  • Assignment saves own independent operation tokens in BoardCanvas. Removing a field/lane does not release a pending PUT; each request releases its token on settlement. Multiple saves aggregate, and replacement/unmount retires old tokens.
  • Paper/Legacy skin changes keep the column visit. Column visit retirement does not reset the assignment registry. Reconciliation installs columns and the delete cascade under one ownership guard.
  • Fixes three array-identity assertions to compare the actual Vue reactive arrays while retaining complete content assertions.

Validation at final integration head 7ed57325cf03ce1548418242531c2ae4125efb8a, based on 308434f523a31864a43672d68ad5a315121c5dae:

  • Initial ten route/session regressions failed before the column fix; the expanded fourteen-case module passed afterward. Column/route seam: 143 passed before three supplemental cases. Assignment source seam: ten passed.
  • Both source reviews and the final combined integration review found no HIGH/CRITICAL blockers. Nonblocking stalled-column-lane recovery is tracked in frontend: define recovery for stalled column mutation lanes #3357.
  • Typecheck, build, lint (11 existing warnings), docs governance and doc links passed.
  • Final full frontend: 516 files, 7,362 passed and three existing skips. Targeted Chromium: four passed (column reorder persistence, board switching, and delayed assignment-save behavior in Legacy and Paper).
  • Backend tree exactly matches main; the preceding trust integration's full backend result is 10,249 passed, one existing skip. This PR changes no backend/API/schema.

A submitted server write cannot be cancelled by retiring its UI owner. Broader card/comment/label/board lifetime work remains #3306, and shared-loading arbitration remains #3305. No human approvals in OUTSTANDING_TASKS.md are inferred or closed.

Closes #3314
Closes #3311

@Chris0Jeky
Chris0Jeky marked this pull request as ready for review September 20, 2026 22:16
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 20, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-20T22:19:48.226240Z a1264ab Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a1264abc84

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread frontend/taskdeck-web/src/store/board/columnStore.ts
@Chris0Jeky Chris0Jeky changed the title fix(columns): bind mutation order to board visits fix(board): preserve column and assignment save ownership Sep 22, 2026
@Chris0Jeky

Chris0Jeky commented Sep 22, 2026

Copy link
Copy Markdown
Owner Author

Required run 35766201480 at head 7ed5732 reached the Windows API test step's 45-minute timeout. The diagnostics show 1,713 passed tests and continued progress immediately before cancellation. The last observed assignment concurrency case started only 2.5 seconds before cancellation; there is no assertion failure or established hung test. The missing TRX and timing artifact are downstream consequences.

Runner context reports four CPUs, 17.17 GB total memory and 13.7 GB available before execution, with no OOM signal. The backend tree still matches the already-qualified parent. One rerun of the same-head Windows job is now underway to distinguish a reproducible runtime problem from run-to-run variation. This is not a flaky classification, and the PR remains unmerged until the required gate passes.

The failed log and six diagnostic artifacts are preserved locally under the session-mutations worktree's .runtime/parent-windows-api-artifacts. A bounded Luna inspection supplied this classification; it performed no code changes or process actions.

@Chris0Jeky
Chris0Jeky merged commit 346b3c7 into main Sep 22, 2026
53 of 54 checks passed
@Chris0Jeky
Chris0Jeky deleted the codex/3314-column-mutation-ordering branch September 22, 2026 19:46
@github-project-automation github-project-automation Bot moved this from Review to Done in Taskdeck Execution Sep 22, 2026
@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Merged and reconciled: #3315 landed at 346b3c7, preserving the assignment source #3313 and column ordering history. Required CI 35766201480 attempt 2 passed at head 7ed5732. The original Windows API timeout was investigated; the unchanged-head rerun passed, while the original runtime cause remains unresolved. It is not classified as flaky.

Local final proof was 7,362 frontend passes, three existing skips, build/typecheck/lint/docs checks, four passing Chromium journeys, and clean independent source/integration reviews. #3314 and #3311 are closed; both PRs and both issues are Done with their original priorities. The post-merge checkpoint found zero unresolved review threads and no new substantive feedback on either PR.

The owned integration claim is released. Before removing the completed worktree with plain git worktree remove, all 27 .runtime files and the browser result were copied and hash-verified under C:/Users/jekyt/source/Taskdeck/.runtime-codex/2026-09-22-hard-impact/board-integrated/. The cleanup manifest records exact paths and hashes. Existing worktrees and primary user edits remain untouched. OUTSTANDING_TASKS.md retains the separate owner actions; descendant #3358/#3359 maintainer review is still pending.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Column mutations lack board-visit and operation-order ownership Legacy assignment-save owner can strand navigation if its ColumnLane unmounts

1 participant