From dbae196291cce2c3ecc4e35fee6e336328e00b53 Mon Sep 17 00:00:00 2001 From: cesnimda Date: Wed, 11 Nov 2026 18:20:38 +0100 Subject: [PATCH] test(documents): preserve revision race and legacy capture evidence --- .../PACKAGE_REVISION_CAPTURE.md | 15 ++++++ .../package-revision/SOURCE_RECEIPTS.json | 43 ++++++++++++++++++ .../evidence/package-revision/final.trx.gz | Bin 0 -> 4261 bytes .../evidence/package-revision/final.txt | 11 +++++ .../package-revision/intermediate.trx.gz | Bin 0 -> 4536 bytes .../package-revision/intermediate.txt | 21 +++++++++ .../evidence/package-revision/red.trx.gz | Bin 0 -> 2928 bytes .../evidence/package-revision/red.txt | 37 +++++++++++++++ 8 files changed, 127 insertions(+) create mode 100644 docs/cv-integration-qa/PACKAGE_REVISION_CAPTURE.md create mode 100644 docs/cv-integration-qa/evidence/package-revision/SOURCE_RECEIPTS.json create mode 100644 docs/cv-integration-qa/evidence/package-revision/final.trx.gz create mode 100644 docs/cv-integration-qa/evidence/package-revision/final.txt create mode 100644 docs/cv-integration-qa/evidence/package-revision/intermediate.trx.gz create mode 100644 docs/cv-integration-qa/evidence/package-revision/intermediate.txt create mode 100644 docs/cv-integration-qa/evidence/package-revision/red.trx.gz create mode 100644 docs/cv-integration-qa/evidence/package-revision/red.txt diff --git a/docs/cv-integration-qa/PACKAGE_REVISION_CAPTURE.md b/docs/cv-integration-qa/PACKAGE_REVISION_CAPTURE.md new file mode 100644 index 00000000..5f1b19ad --- /dev/null +++ b/docs/cv-integration-qa/PACKAGE_REVISION_CAPTURE.md @@ -0,0 +1,15 @@ +# Submitted CV snapshot revision integrity + +Baseline9f341750; sourcee161ea33 on codex/frozen-document-integrity. This is a bounded integrity fix, not Phase10/A3/security/release acceptance. + +The package service selected CV metadata and then rendered through the unversioned overload. A deterministic interleaving with the real CvVariantService reproduced publishing newer render data with older selected metadata, or continuing after deletion. Capture now passes the selected positive revision and rechecks the stored revision/settings after render. A missing selected CV aborts. The controller returns the existing409 revision_conflict code for this condition, preserving unauthenticated rejection and owner filtering. + +An initial positive-only guard broke the native SQLite legacy version-zero fixture. The final path preserves zero-version capture through the existing unversioned compatibility path plus the post-render snapshot check. The public renderer's positive-revision validation was not relaxed. No fixture was weakened or renderer/physical PDF style changed. + +Verification:RED8 cases (three failed/five passed); intermediate broader20 cases (one legacy compatibility failure/19 passed); final22 cases across package, controller conflict/auth, CV export revision and native SQLite compatibility suites passed with no skips. Four changed/deleted interleavings cover revisions4 and0; controller cases cover authenticated conflict/unauthenticated refusal. Existing frozen bytes/hash, tenant rejection, missing-file cleanup, later source mutation, account-export and native SQLite workflows remain covered. Native TRX gzip/raw receipts and source hashes are in evidence/package-revision. + +The first build could not execute tests because C: was full. Only this run's fresh ignored bin/obj directories were removed after absolute-path/Git checks; generated output/temp/results were redirected to E using command flags, with offline cached restore. No source/evidence/dependency/user work was deleted. Delegated workers hit usage limits; root continued sequentially. C: capacity remains constrained. + +Remaining investigation:concurrent Career Profile changes during render may require their own snapshot binding. AttachmentStorage.SnapshotAsync has a separate source-backed destination-ownership cleanup concern; no deterministic race reproduction or fix is claimed here. MariaDB, actual HTTP/browser capture, real models/providers, native device/AT, physical PDF acceptance, integrated security and recovery were not rerun. Existing accepted PDF metrics/visuals remain source-bound. + +Rollback:revert the source commit, rebuild on the isolated development branch and rerun the affected suite. No migration/data repair is involved. UI callers retain the existing revision-conflict/review flow; an aborted capture publishes no package. This does not establish atomic consistency across every package source entity or filesystem race. diff --git a/docs/cv-integration-qa/evidence/package-revision/SOURCE_RECEIPTS.json b/docs/cv-integration-qa/evidence/package-revision/SOURCE_RECEIPTS.json new file mode 100644 index 00000000..d7281da6 --- /dev/null +++ b/docs/cv-integration-qa/evidence/package-revision/SOURCE_RECEIPTS.json @@ -0,0 +1,43 @@ +{ + "baseline": "9f341750ece2a3d2ddb11c14482df1ecc485a5c1", + "sourceCommit": "e161ea33461eaefbecf08c96d79984029131e990", + "sourcesLfSha256": { + "JobTrackerApi/Services/SubmittedApplicationPackageService.cs": "f6315d491ccd5ddffb098ef22f35b0d727485bfe866ea875fc19c33ab897867e", + "JobTrackerApi/Controllers/ApplicationAssetsController.cs": "bbed71f315f0be0381e4d6a09a536880f40040ba808b83a9d058b9fb1089bcc2", + "JobTrackerApi.Tests/SubmittedApplicationPackageTests.cs": "9073b2ddc1e92e84063e10c071042c408c9eb9ab7f8403b2801bf5bbd121463b", + "JobTrackerApi.Tests/SubmittedPackageConflictTests.cs": "e24038cae68c0d034bbcc07605aff09be1e23d4659ce391cf3de16c98f6a2ddf", + "JobTrackerApi.Tests/CvExportRevisionTests.cs": "ee19195cec7486dd71d30ce6daa064ad07d5995c1dd97e529761e43511d9235d", + "JobTrackerApi.Tests/SqliteDateTimeOffsetCompatibilityTests.cs": "5fb244d50d2378b8d18b14ac260beafc4bfd58190447306244b2916ea808d572", + "JobTrackerApi/Services/CvVariantService.cs": "da85153ff2199a4410df91807c6073aa19736676332266a227149d6d089ea841" + }, + "nativeReceipts": [ + { + "name": "red", + "artifact": "red.trx.gz", + "total": 8, + "passed": 5, + "failed": 3, + "rawSha256": "1c970594d7f3c7e86bc7d15ea7b79967cfcfb2202333d9933d9b70180d680bac", + "gzipSha256": "3b69eafa4bda144a132547ec54a8d20b54b14fe263eb5c23ea854afff7f69598" + }, + { + "name": "intermediate", + "artifact": "intermediate.trx.gz", + "total": 20, + "passed": 19, + "failed": 1, + "rawSha256": "26968e1cf8b575ba37de5f57f2898e4542427cf03a5136e7df351b9c4096b99c", + "gzipSha256": "8a6021ee11a9dcd77b29f43cc3a146dd75d2f514e74f8650301a6e1cbd4fa0d2" + }, + { + "name": "final", + "artifact": "final.trx.gz", + "total": 22, + "passed": 22, + "failed": 0, + "rawSha256": "faaa712ee6919280cda1e4384746f04ba02c7d807b3d4808b4468815df208062", + "gzipSha256": "36e214810c9c840b5335385d1c18786489f57dd6f4812249a7e7c7ecb652f76a" + } + ], + "environment": "Pinned .NET9.0.317; existing offline NuGet cache; build/temp/results on E after C-drive exhaustion. No physical PDF/provider/MariaDB/live services." +} diff --git a/docs/cv-integration-qa/evidence/package-revision/final.trx.gz b/docs/cv-integration-qa/evidence/package-revision/final.trx.gz new file mode 100644 index 0000000000000000000000000000000000000000..511f916dfe7e19693a021ddf6f25b686addefebd GIT binary patch literal 4261 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 E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi\debug\JobTrackerApi.dll + PdfBrowserStub -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\PdfBrowserStub\debug\PdfBrowserStub.dll + JobTrackerApi.Tests -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\JobTrackerApi.Tests.dll +Test run for E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\JobTrackerApi.Tests.dll (.NETCoreApp,Version=v9.0) +VSTest version 17.14.1 (x64) + +Starting test execution, please wait... +A total of 1 test files matched the specified pattern. +Results File: E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\green-final\green-final.trx + +Passed! - Failed: 0, Passed: 22, Skipped: 0, Total: 22, Duration: 4 s - JobTrackerApi.Tests.dll (net9.0) diff --git a/docs/cv-integration-qa/evidence/package-revision/intermediate.trx.gz b/docs/cv-integration-qa/evidence/package-revision/intermediate.trx.gz new file mode 100644 index 0000000000000000000000000000000000000000..c3b598dffbf53a3dbbba1a5e4bbf6c05495385c7 GIT binary patch literal 4536 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

1pfW(f9wj4&n0zV*6z6R-RvyyT@-% zyWG;VK3kAn(TSYUKV_hWz?g%(oIC-rnxai6uTRbrHNg|2zUj+weys5n8c&kvVQ^Pn zNtC0Hl`Y-;KBw#Nhc&=m-aies1G^tj2ECt7GWN@|IOyjtu^iKfu4-x0l`TDrp-;Yi z$>S$P%5U*EN8_#rJqG4Ql|gp;>75MNt;bMQ3O}VJboa>CT|8veNg9M1!RdMWmZM`@4LyvGVP$>(W)A?)?oI z(B*u?T?az)EL+`muwKIY%wK=Z%-?bCi%(_pj~CBg{_soi-LBU>lEWoSZdrJbX{*w< WOV E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi\debug\JobTrackerApi.dll + PdfBrowserStub -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\PdfBrowserStub\debug\PdfBrowserStub.dll + JobTrackerApi.Tests -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\JobTrackerApi.Tests.dll +Test run for E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\JobTrackerApi.Tests.dll (.NETCoreApp,Version=v9.0) +VSTest version 17.14.1 (x64) + +Starting test execution, please wait... +A total of 1 test files matched the specified pattern. +[xUnit.net 00:00:03.64] JobTrackerApi.Tests.SqliteDateTimeOffsetCompatibilityTests.Tailoring_and_submission_capture_work_on_native_sqlite [FAIL] + Failed JobTrackerApi.Tests.SqliteDateTimeOffsetCompatibilityTests.Tailoring_and_submission_capture_work_on_native_sqlite [768 ms] + Error Message: + Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException : The CV changed after it was loaded. + Stack Trace: + at JobTrackerApi.Services.CvVariantService.RenderAsync(String ownerUserId, Int32 id, CvRenderPerson person, CancellationToken ct, Nullable`1 expectedVersion) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi\Services\CvVariantService.cs:line 188 + at JobTrackerApi.Services.SubmittedApplicationPackageService.CaptureAsync(String ownerUserId, Int32 jobApplicationId, CvRenderPerson person, CancellationToken ct) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi\Services\SubmittedApplicationPackageService.cs:line 75 + at JobTrackerApi.Tests.SqliteDateTimeOffsetCompatibilityTests.Tailoring_and_submission_capture_work_on_native_sqlite() in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SqliteDateTimeOffsetCompatibilityTests.cs:line 50 + at JobTrackerApi.Tests.SqliteDateTimeOffsetCompatibilityTests.Tailoring_and_submission_capture_work_on_native_sqlite() in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SqliteDateTimeOffsetCompatibilityTests.cs:line 94 +--- End of stack trace from previous location --- +Results File: E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\green\green.trx + +Failed! - Failed: 1, Passed: 19, Skipped: 0, Total: 20, Duration: 3 s - JobTrackerApi.Tests.dll (net9.0) diff --git a/docs/cv-integration-qa/evidence/package-revision/red.trx.gz b/docs/cv-integration-qa/evidence/package-revision/red.trx.gz new file mode 100644 index 0000000000000000000000000000000000000000..62f2c5573da987037170e7fc3d7560b8a6728a12 GIT binary patch literal 2928 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 a2MXG^D)ztK4cZNb=l=sblbyvQPXGX*56##B literal 0 HcmV?d00001 diff --git a/docs/cv-integration-qa/evidence/package-revision/red.txt b/docs/cv-integration-qa/evidence/package-revision/red.txt new file mode 100644 index 00000000..c1dda8c0 --- /dev/null +++ b/docs/cv-integration-qa/evidence/package-revision/red.txt @@ -0,0 +1,37 @@ + JobTrackerApi -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi\debug\JobTrackerApi.dll + PdfBrowserStub -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\PdfBrowserStub\debug\PdfBrowserStub.dll + JobTrackerApi.Tests -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\JobTrackerApi.Tests.dll +Test run for E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\JobTrackerApi.Tests.dll (.NETCoreApp,Version=v9.0) +VSTest version 17.14.1 (x64) + +Starting test execution, please wait... +A total of 1 test files matched the specified pattern. +[xUnit.net 00:00:03.04] JobTrackerApi.Tests.SubmittedPackageConflictTests.Capture_reports_revision_conflict_only_for_an_authenticated_caller(authenticated: True) [FAIL] + Failed JobTrackerApi.Tests.SubmittedPackageConflictTests.Capture_reports_revision_conflict_only_for_an_authenticated_caller(authenticated: True) [723 ms] + Error Message: + Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException : CV changed + Stack Trace: + at JobTrackerApi.Controllers.ApplicationAssetsController.CaptureSubmittedPackage(Int32 jobId, CancellationToken ct) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi\Controllers\ApplicationAssetsController.cs:line 151 + at JobTrackerApi.Tests.SubmittedPackageConflictTests.Capture_reports_revision_conflict_only_for_an_authenticated_caller(Boolean authenticated) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedPackageConflictTests.cs:line 31 +--- End of stack trace from previous location --- +[xUnit.net 00:00:05.56] JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(deleted: False) [FAIL] +[xUnit.net 00:00:05.58] JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(deleted: True) [FAIL] + Failed JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(deleted: False) [137 ms] + Error Message: + Assert.Throws() Failure: No exception was thrown +Expected: typeof(Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException) + Stack Trace: + at JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(Boolean deleted) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedApplicationPackageTests.cs:line 120 + at JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(Boolean deleted) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedApplicationPackageTests.cs:line 124 +--- End of stack trace from previous location --- + Failed JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(deleted: True) [20 ms] + Error Message: + Assert.Throws() Failure: No exception was thrown +Expected: typeof(Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException) + Stack Trace: + at JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(Boolean deleted) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedApplicationPackageTests.cs:line 120 + at JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(Boolean deleted) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedApplicationPackageTests.cs:line 124 +--- End of stack trace from previous location --- +Results File: E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\red\red.trx + +Failed! - Failed: 3, Passed: 5, Skipped: 0, Total: 8, Duration: 3 s - JobTrackerApi.Tests.dll (net9.0)