fix(capture): repair timestamp-masked legacy text divergence - #2805
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 Terra review completed against head d4562fb and base db102dc. No confirmed CRITICAL/HIGH findings. Reviewed the additive repair-version migration and model agreement, bounded owner/id/version/freshness selection, truthful list/detail fallback, separation from the old v1 completion marker, immutable source-asset lineage, and archived-row skip/progress behavior. Concurrent initial marker creation preserves the fallback and does not certify incomplete work. The reviewer performed a read-only source review. Separately, the author ran the full backend gate at this unchanged head: 8,977 passed, five existing skips, zero failures. No real database upgrade, live provider, or large-database performance proof is claimed. Hosted exact-head CI remains required before merge. |
|
Evidence preservation for eventual worktree cleanup: artifacts/issue-2418 has been copied to C:\Users\Public\codex-shell-home\taskdeck-wave-20260908\issue-2418. All copied file SHA-256 hashes matched; six TRX counters were read back and confirm the recorded totals. The generated bin/obj trees are disposable. The committed source is preserved by the merged PR and pushed branch. |
Historical Keep/Archive writes could make a stale durable Capture look newer than its queue row, hiding divergent text from both startup repair and Inbox fallback. Add a resumable upgrade repair that checks those captures and serves truthful queue text while repair is pending.
Validation: red regression reproduced the masked-timestamp omission; focused Application tests passed 45/45; focused API/real SQLite tests passed 16/16. SQLite coverage checks one materialized queue payload per one-row page, server-side exclusions, persisted progress, retry without scanning repaired payloads, old-marker isolation, and archived-row failure with healthy-row progress.
Full backend gate on d4562fb:
dotnet test backend/Taskdeck.sln -c Release -m:1 --logger "trx;LogFilePrefix=issue-2418" --results-directory .codex/local/issue-2418-test-results --verbosity quietexited 0. Domain 1605 passed; Application 4209; API 2856 with 4 existing skips; CLI 243; Architecture 28 with 1 existing skip; Integration 36. Total: 8977 passed, 5 existing skips, 0 failed. The four API skips are existing quota-concurrency deferrals to #1435. TRX evidence is preserved under the worktree's ignored artifacts/issue-2418/test-results directory.Docs: UPGRADING.md records the additive migration and repair behavior. Canonical STATUS/MASTERPLAN updates are owned by the coordinator. Doc links (663 files, zero broken links), docs governance, and git diff --check passed.
Risks: one initial bounded pass over legacy queue-backed captures; large-database wall-clock cost and non-SQLite providers are unmeasured. Archived mismatches remain outstanding with safe queue fallback; no existing private database or live provider was used. OUTSTANDING_TASKS.md remains unchanged.
Closes #2418