Skip to content

Report changed archived import matches as conflicts before Apply - #3068

Merged
Chris0Jeky merged 4 commits into
mainfrom
codex/2935-archived-import-conflicts-20260912
Sep 12, 2026
Merged

Chris0Jeky merged 4 commits into
mainfrom
codex/2935-archived-import-conflicts-20260912

Conversation

@Chris0Jeky

@Chris0Jeky Chris0Jeky commented Sep 12, 2026

Copy link
Copy Markdown
Owner

External imports could plan an update to an archived dedupe match, only to fail when Apply reached the domain lifecycle guard. The planner now reports a structured ArchivedExistingMatch conflict before starting a transaction. It identifies the row and existing card and asks for an explicit restore or removal of that incoming row.

Unchanged archived matches in the target column remain skips, move-only archived matches conflict, and duplicate active/archived matches remain ambiguous. The batch is never silently restored, duplicated or partially applied. Existing authorization, active-row behavior and all-or-nothing planning remain intact. The runtime correction is 13 lines; it adds no route, schema, migration or concurrency guarantee.

Validation:

  • All 50 focused ExternalImport tests pass, including the 13 new archived-match cases: changes in both modes, mixed-batch zero writes, unchanged controls, preview/Apply parity through the CSV adapter and duplicate ambiguity.
  • Independent source review is clean.
  • Full backend: 9,747 passed, 34 existing skips, zero failures across all six projects at dbe21a3. Native logs and TRX receipts are retained under C:/td0912-evidence/archived-import-qualification and archived-import-full-backend-trx.
  • Source56d7a8ef4d4a58726cf2ef88e10d1ab2b4a89ae2 is preserved. The final branch includes delivered main9a8c14c6bd385f5607633462060f9d11fc57c05a; only frontend/docs changed during that base update, and Git verifies the final backend tree is byte-identical to the fully tested tree.
  • Documentation links, GitHub operations governance and whitespace checks pass. Final hosted qualification remains required before merge.

The initial author environment had no .NET SDK; the Windows results above supersede that untested state. The new scenario tests use real domain objects with mocked repositories, so no new SQL rollback, HTTP, browser or competing-writer acceptance is claimed. Existing physical-device, screen-reader, provider, release/hosting and other human actions in OUTSTANDING_TASKS.md remain unchanged.

Closes #2935

Refuse changed archived matches before any batch writes while preserving unchanged skips and duplicate ambiguity. Add 13 application cases and explicit validation limits for #2935.
@Chris0Jeky Chris0Jeky added backend Primary implementation impact in .NET API/domain/application/infrastructure. bug Something isn't working Priority III Valuable but unscheduled: residuals, tech-debt, performance, depth work. labels Sep 12, 2026 — with ChatGPT Codex Connector

Copy link
Copy Markdown
Owner Author

Hosted verification update for head 56d7a8ef4d4a58726cf2ef88e10d1ab2b4a89ae2: CI run 34715333130 now reports Run application tests = success in both Backend Unit jobs (Windows job 103611563894 and Ubuntu job 103611563933). The domain-test steps also passed. At inspection, those jobs were still running CLI tests and both API Integration jobs were in progress, so this is NOT an all-CI-green verdict.

This supersedes the absence of any executable application-test evidence at initial submission, but does not change the fact that local dotnet execution was unavailable. The draft stays draft pending the remaining CI and independent review. Architecture, migration validation, both frontend unit jobs, dependency/security signals, SAST and secret scanning had also completed successfully in the observed run.

@codex review

@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-12T21:00:12.057263Z 484aa67 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

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Nice work!

Reviewed commit: 56d7a8ef4d

ℹ️ 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".

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Local qualification is now running in an isolated Windows checkout because the submitted tests could not run in the author environment. Source56d7a8ef4d4a58726cf2ef88e10d1ab2b4a89ae2 is merged with delivered main44d041ca7 for proof, and Git confirms the backend tree is byte-identical to the submitted head. Independent review and focused ExternalImport tests are queued behind the current bounded backend test job. No source edits or ready/merge claim yet; exact-head results will be attached.

@Chris0Jeky
Chris0Jeky marked this pull request as ready for review September 12, 2026 20:57
@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Independent read-only review of source56d7a8ef4d4a58726cf2ef88e10d1ab2b4a89ae2 against delivered main44d041ca7 is CLEAN: the archive guard follows unchanged-row skipping and duplicate ambiguity, and precedes upsert planning/transaction work. The repository includes archived cards in the lookup. All13 new cases are relevant application-boundary proofs; no broader SQL/HTTP claim is made. Coordinator then verified focused50/50 and fullbackend9747pass34skip0fail atdbe21a3e2, and confirmed final main9a8c14c6b integration leaves every backend file identical. The final484aa6781 head is ready and must pass hosted CI; no merge claim.

@Chris0Jeky Chris0Jeky moved this from Pending to Review in Taskdeck Execution Sep 12, 2026
@Chris0Jeky
Chris0Jeky merged commit 4115d7a into main Sep 12, 2026
48 of 53 checks passed
@Chris0Jeky
Chris0Jeky deleted the codex/2935-archived-import-conflicts-20260912 branch September 12, 2026 22:18
@github-project-automation github-project-automation Bot moved this from Review to Done in Taskdeck Execution Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend Primary implementation impact in .NET API/domain/application/infrastructure. bug Something isn't working Priority III Valuable but unscheduled: residuals, tech-debt, performance, depth work.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[Archive] Make external-import previews handle archived dedupe matches

1 participant