From 291b1e521ae1ab5c7f12dd36b49998f336915849 Mon Sep 17 00:00:00 2001 From: cesnimda Date: Wed, 11 Nov 2026 13:30:04 +0100 Subject: [PATCH] docs(applications): distinguish UI date defect from backend safeguards --- docs/ui-modernisation/UNAPPLIED_DATE_PRESERVATION.md | 2 ++ docs/ui-modernisation/UNAPPLIED_DATE_SOURCE_MANIFEST.json | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/ui-modernisation/UNAPPLIED_DATE_PRESERVATION.md b/docs/ui-modernisation/UNAPPLIED_DATE_PRESERVATION.md index 9e42b56f..52df4087 100644 --- a/docs/ui-modernisation/UNAPPLIED_DATE_PRESERVATION.md +++ b/docs/ui-modernisation/UNAPPLIED_DATE_PRESERVATION.md @@ -6,6 +6,8 @@ The backend `JobApplication.DateApplied` contract explicitly preserves null befo The converter now leaves missing/invalid values empty. The existing save path submits null. Valid legacy timestamp conversion is unchanged and remains a separately tracked precision/timezone question. No data migration, backend API or status transition changed. +Static backend follow-through: `JobApplicationsController.Update` calls `JobLifecycleEvents.SyncAppliedDateWithHistory`, and `JobPipeline.SyncAppliedDate` already clears Applied dates for prospect stages. This guards stored Saved dates independently of the UI. The reproduced defect is the fabricated form value and outgoing request; corrupted stored dates or analytics were not reproduced. The lifecycle wrapper can record a cleared-date event when it receives a fabricated value. Its runtime event behaviour was not exercised by these intercepted browser checks. + ## Evidence - RED: three cases (null, empty, invalid) failed against the original converter; seven existing calendar cases passed. diff --git a/docs/ui-modernisation/UNAPPLIED_DATE_SOURCE_MANIFEST.json b/docs/ui-modernisation/UNAPPLIED_DATE_SOURCE_MANIFEST.json index 150492bb..c340b1a2 100644 --- a/docs/ui-modernisation/UNAPPLIED_DATE_SOURCE_MANIFEST.json +++ b/docs/ui-modernisation/UNAPPLIED_DATE_SOURCE_MANIFEST.json @@ -1,5 +1,5 @@ { - "sourceContentCommit": "138f1ee69c2a1c2f3e039cc1219f53465afb59ef", + "sourceContentCommit": "e6240ad309bb1c73fb9110c954ca81e7dea74440", "policy": "LF-normalised source and text evidence; raw PNG/gzip/zip/export. Content binding for offline UI verification; release candidate/image identity remains separate.", "sources": { "job-tracker-ui/src/App.tsx": "e0c50ec92954b90cf62b9d8b8e0d5b5802c2408e577e5e255a8d78c3dfdf7135", @@ -59,7 +59,7 @@ "docs/ui-modernisation/evidence/unapplied-date/unapplied-Pacific-Kiritimati-en-1440-light.png": "db85f68fa2cac151825cc2b6f2fd4cf34ad158addc4676323b40959a374073a0", "docs/ui-modernisation/evidence/unapplied-date/unapplied-Pacific-Kiritimati-nb-390-dark.png": "562b3eff0c3c93b194a3a76a475333e4757a91a7a9ccfd72c102a4517b47d8dd", "docs/ui-modernisation/evidence/unapplied-date/unapplied-Pacific-Kiritimati-nb-768-light.png": "ba295e1e5b29d01255b93cc1dcb2d13384d3a68679a55a0161d30ca915f11445", - "docs/ui-modernisation/UNAPPLIED_DATE_PRESERVATION.md": "1aa3cd34175889f2f9b0582419cc2e2d713b3f86e4e337ad0288c99485626476" + "docs/ui-modernisation/UNAPPLIED_DATE_PRESERVATION.md": "dd04881faa2bc40d95246b076f346aa4cc529ae0605d3daf77f10b435d5e45ae" }, "export": { "job-tracker-ui/out/404.html": "ba829bcc2bc317a0b5bb331fc50c56435dd905ccb6302c3877ca1d065999393b",