Skip to content

Keep archive requests owned across card switches - #3059

Merged
Chris0Jeky merged 9 commits into
mainfrom
codex/3033-archive-request-ownership
Sep 12, 2026
Merged

Chris0Jeky merged 9 commits into
mainfrom
codex/3033-archive-request-ownership

Conversation

@Chris0Jeky

@Chris0Jeky Chris0Jeky commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Switching from card A to B and back to A while an archive/restore request was pending could enable A's action again. Keep pending ownership keyed by board/card in the mounted CardModal editor above its version-keyed action child. Other cards remain actionable; each settlement releases only its own card. Existing version resets, focus, confirmation, permissions and late-receipt guards stay intact.

Base: #3054 is merged as 54e4c0a86fb77eabba73b5d21557d6f8720571bd, and this PR is retargeted to main with that merge integrated. The delivered base has the same tree as reviewed parent 28c4f49de; the pending-ownership source diff is unchanged. The new head records the estimate closeout and reruns hosted qualification against main. Child #3064 remains based on this branch, so preserve the branch until that child is retargeted.

Validation:

  • Six deferred action-component cases and four actual CardModal host cases reproduced the earlier gaps.
  • Final host fix: 151 focused tests passed, lint (zero errors, nine existing warnings), typecheck and production build passed.
  • Before the bounded host fix: full frontend 6,862 passed, 3 existing skips across 440 files. No new full-suite or archive-browser run is claimed for the fix.
  • Independent initial review and bounded host-fix review are clean for pending ownership. Final source fix: fc7cbb948b1c3e9dce3ad19bb8dc4f790930202b.
  • Documentation links, docs governance and git diff --check pass. Exact-head hosted qualification remains required.

The earlier focus rescue and mounted late-failure receipt shipped in #3050. Successful settlement may leave a returned card's selected snapshot stale after the original child unmounts; this separate MEDIUM behavior is tracked in #3060. A redundant stale request is rejected by the server version check before mutation. Request ownership remains editor-instance scoped; independent tabs retain server concurrency protection.

Physical-device and screen-reader checks remain open in OUTSTANDING_TASKS.md. Evidence is preserved locally under C:/td0912-evidence/archive-request-ownership; traces and generated operational material are not public artifacts.

Closes #3033

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 12, 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-12T19:42:36.356859Z 7135d53 New commits
ℹ️ 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.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Independent read-only review at a0b2693aaf2ff918dca279d13deda6d6cbb88372 against 9c17a83bf is CLEAN: per-card reactive ownership and captured-key settlement preserve focus, permission and late-receipt behavior. No direct correctness, security or data-loss defect was found. The subsequent merge of the reviewed #3054 base required no conflict edits; root full frontend qualification passed 6,862 tests with three existing skips, and production build passed before the documentation-only receipt commit 0afcdd0f2.

The issue's speculative generation hardening and mock-reactivity notices are explicitly declined as described in the PR. Component remount/independent-tab ownership is an existing boundary, not an introduced regression. No extra review or browser run is claimed. Closes #3033 is in the body; GitHub currently returns an empty closing-issue list because the base is a non-default stack branch. Recheck that list after retargeting to main. Preserve the base branch until retarget/merge is complete.

@Chris0Jeky Chris0Jeky moved this from Pending to Review in Taskdeck Execution Sep 12, 2026

@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: 0afcdd0f2c

ℹ️ 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/components/board/CardArchiveAction.vue Outdated

@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: fc7cbb948b

ℹ️ 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/components/board/CardArchiveAction.vue
Base automatically changed from codex/2093-estimate-integration to main September 12, 2026 19:36
@Chris0Jeky
Chris0Jeky merged commit 44d041c into main Sep 12, 2026
38 checks passed
@Chris0Jeky
Chris0Jeky deleted the codex/3033-archive-request-ownership branch September 12, 2026 20:08
@github-project-automation github-project-automation Bot moved this from Review to Done in Taskdeck Execution Sep 12, 2026
@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Merged as44d041ca7d819d450976fc974e14623718f2f467 after required workflow34714826369 passed at reviewed7135d53a9d046547c8860b3f757c79861820f36b. GitHub confirms #3033 closed; its issue and PR items are Done/PriorityIV. First post-merge check found zero unresolved threads. Child #3064 is retargeted to main and its new base is being qualified. #3060 and the remaining #3023 recovery-copy/other residuals remain separate; existing OUTSTANDING_TASKS.md human actions are unchanged.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Post-delivery worktree cleanup is complete. Before plain git worktree remove, the source commit was verified as an ancestor of delivered main and the tree had no tracked/untracked changes. All 15 archive QA logs and handoffs were copied and SHA-256 checked at C:/td0912-evidence/delivered-archive-ownership; copied-hashes.json and pre-removal inventory retain the receipt. Rebuildable dist/node_modules were removed with the finished tree. Source history remains in main.

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.

[Frontend][Archive] Write-failure-after-Escape can strand focus on body; request-ownership residuals (from PR #3010 review)

1 participant