From b9525b8452c5d4789c64192fb3f5392641162bb7 Mon Sep 17 00:00:00 2001 From: cesnimda Date: Sat, 10 Oct 2026 22:11:05 +0200 Subject: [PATCH] docs(acceptance): record native CV and document qualification --- .../redesign/phase-5/p5-15/p5-15-03/README.md | 32 +++ .../p5-15-03/evidence/document-results.json | 214 ++++++++++++++++++ 2 files changed, 246 insertions(+) create mode 100644 docs/redesign/phase-5/p5-15/p5-15-03/README.md create mode 100644 docs/redesign/phase-5/p5-15/p5-15-03/evidence/document-results.json diff --git a/docs/redesign/phase-5/p5-15/p5-15-03/README.md b/docs/redesign/phase-5/p5-15/p5-15-03/README.md new file mode 100644 index 0000000..fb9fe66 --- /dev/null +++ b/docs/redesign/phase-5/p5-15/p5-15-03/README.md @@ -0,0 +1,32 @@ +# P5-15-03 — CV and document correctness + +**CONDITIONAL GO for the implemented local scope; production font/photo qualification remains open.** The initial severe mobile preview defect was independently repaired before this qualification. The existing renderer, print geometry, revision model and fidelity tolerances are unchanged. + +## Executed proof + +The native Chromium/SQLite qualification uses synthetic loopback-only records and actual API preview/PDF exports. Standard fixtures retain all nine template IDs plus long English/Bokmål, compact Letter/8 mm, roomy A4/28 mm, reordered/hidden sections, sidebar, bubbles/grid and unbreakable boundary content. [Measured results](evidence/document-results.json) retain exact fixture membership and tolerances. + +| Contract | Fresh observed result | Boundary | +|---|---|---| +| Standard rendering | 16/16; 36 preview = 36 PDF pages | Exact page count/content membership; dimensions 0.5 mm, positions 2 mm, font size 0.5 pt, RGB 1/255 | +| Settings exports | 8/8; 24 preview = 24 PDF pages | Same verifier/tolerances; EN/NB and app light/dark | +| Revision protection | 5/5 focused backend | History/restore/edit-after-restore, overrides/profile isolation, revision-owned settings and ownership | +| Browser conflict/recovery | Native independent-client conflict and stale draft download/reload cases pass | Missing revision rejected; one concurrent writer wins; current draft/history retained | +| Initially hidden visible pages | Four native pagination cases pass, including two new hidden-initial fixtures | Default modern one page and long minimal four pages wait for physical layout; reveal/resize/scale does not repaginate incorrectly | +| Photo inclusion | Four native exports; 4 preview = 4 PDF pages | Authenticated upload, decoded image and actual PDF image object only when included; modern and technical templates | + +The photo fixture is deliberately a tiny synthetic PNG, with no personal image. It demonstrates actual account-upload resolution, image decoding and native export inclusion/exclusion, **not** representative portrait crop, photographic quality, all templates or deployed asset-path fidelity. PDF inspection confirms one embedded image when included and zero when hidden. No font files are exposed or redistributed. + +## Fonts and production boundary + +The actual preview uses theme-specific font stacks, not an independent browser-only layout. Native Windows PDFs embed resolved subset fonts (for example Segoe UI in modern, Arial in technical). Standard measurements include typography/wrapping/page membership. Linux production uses system Chromium from the existing API Dockerfile; its installed fonts/assets are not measured here. The local Docker engine is unavailable (missing `dockerDesktopLinuxEngine` pipe); no recovery, daemon startup, image pull or production change was performed. Windows parity does not prove Linux font metrics or production photo access. + +The operator must run the same frozen 16/8 corpora with the deployed-equivalent browser/font inventory and representative approved synthetic portraits, compare with the unchanged verifier, inspect clipping/crop/asset failures and record actual image/revision identifiers. Production qualification remains NOT VERIFIED until that evidence exists. + +## Save-state investigation and preservation + +The [intermittent register](../p5-15-01/INTERMITTENT_FAILURES.md) now records the real 800 ms autosave boundary. The preview-exit test controls that boundary, retains original focus/draft/no-write checks before it, then proves the normal versioned save contains the retained draft. This is a test qualification, not a second saving model or a claim that the untraced historical incident is conclusively diagnosed. Its original incident remains open. + +PRES-C06/C07/C08/C09/C10/C12, E03/E05/E08 and W05–W08 retain frame/edit/override/order/history/export/frozen associations. The full backend and native package proofs remain mandatory at final regression; no proposal/provider response changes canonical Career Profile or immutable submissions. The final report will record the complete post-change rerun separately rather than treating these focused results as the entire application suite. + +Human screen-reader, real touch/software keyboard and production rendering remain unverified. P5-13 remains deferred/unqualified/Production-withheld; this checkpoint does not qualify AI or the original full Phase 5 scope. diff --git a/docs/redesign/phase-5/p5-15/p5-15-03/evidence/document-results.json b/docs/redesign/phase-5/p5-15/p5-15-03/evidence/document-results.json new file mode 100644 index 0000000..c4fd2af --- /dev/null +++ b/docs/redesign/phase-5/p5-15/p5-15-03/evidence/document-results.json @@ -0,0 +1,214 @@ +{ + "checkedUtc": "2026-10-10T20:10:14.163370+00:00", + "environment": "Windows; native Chromium 151; synthetic loopback fixtures", + "fidelity": [ + { + "name": "fidelity", + "passed": 16, + "total": 16, + "tolerances": { + "pageDimensionMm": 0.5, + "positionMm": 2, + "fontPt": 0.5, + "rgbComponent": 0.00392156862745098, + "pageCountAndMembership": "exact" + }, + "fixtures": [ + { + "fixture": "default-modern", + "previewPages": 1, + "pdfPages": 1 + }, + { + "fixture": "default-minimal", + "previewPages": 1, + "pdfPages": 1 + }, + { + "fixture": "default-executive", + "previewPages": 1, + "pdfPages": 1 + }, + { + "fixture": "default-technical", + "previewPages": 1, + "pdfPages": 1 + }, + { + "fixture": "default-ats-classic", + "previewPages": 1, + "pdfPages": 1 + }, + { + "fixture": "default-nordic", + "previewPages": 1, + "pdfPages": 1 + }, + { + "fixture": "default-elegant", + "previewPages": 1, + "pdfPages": 1 + }, + { + "fixture": "default-creative", + "previewPages": 1, + "pdfPages": 1 + }, + { + "fixture": "default-code", + "previewPages": 1, + "pdfPages": 1 + }, + { + "fixture": "long-en-minimal", + "previewPages": 4, + "pdfPages": 4 + }, + { + "fixture": "long-nb-code", + "previewPages": 4, + "pdfPages": 4 + }, + { + "fixture": "compact-8mm-letter", + "previewPages": 4, + "pdfPages": 4 + }, + { + "fixture": "roomy-28mm-nb", + "previewPages": 5, + "pdfPages": 5 + }, + { + "fixture": "grid-and-bubbles", + "previewPages": 1, + "pdfPages": 1 + }, + { + "fixture": "long-sidebar-nb", + "previewPages": 5, + "pdfPages": 5 + }, + { + "fixture": "unbreakable-and-boundary", + "previewPages": 4, + "pdfPages": 4 + } + ] + }, + { + "name": "settings-fidelity", + "passed": 8, + "total": 8, + "tolerances": { + "pageDimensionMm": 0.5, + "positionMm": 2, + "fontPt": 0.5, + "rgbComponent": 0.00392156862745098, + "pageCountAndMembership": "exact" + }, + "fixtures": [ + { + "fixture": "dark-en-before", + "previewPages": 3, + "pdfPages": 3 + }, + { + "fixture": "dark-en-after", + "previewPages": 3, + "pdfPages": 3 + }, + { + "fixture": "dark-nb-before", + "previewPages": 3, + "pdfPages": 3 + }, + { + "fixture": "dark-nb-after", + "previewPages": 3, + "pdfPages": 3 + }, + { + "fixture": "light-en-before", + "previewPages": 3, + "pdfPages": 3 + }, + { + "fixture": "light-en-after", + "previewPages": 3, + "pdfPages": 3 + }, + { + "fixture": "light-nb-before", + "previewPages": 3, + "pdfPages": 3 + }, + { + "fixture": "light-nb-after", + "previewPages": 3, + "pdfPages": 3 + } + ] + } + ], + "photos": [ + { + "themeId": "modern", + "showPhoto": true, + "previewPages": 1, + "decodedPhotoCount": 1, + "pdfPages": 1, + "imageCount": 1, + "fonts": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI" + ], + "pdfSha256": "a4b01f65ad6ed1dec348acb9b189b83ef6401176270b74cc094c295ede8db422" + }, + { + "themeId": "modern", + "showPhoto": false, + "previewPages": 1, + "decodedPhotoCount": 0, + "pdfPages": 1, + "imageCount": 0, + "fonts": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI" + ], + "pdfSha256": "09e22879acf153c219a4dc30e15a0c4c965ee2189c46a565539392e86324ffaf" + }, + { + "themeId": "technical", + "showPhoto": true, + "previewPages": 1, + "decodedPhotoCount": 1, + "pdfPages": 1, + "imageCount": 1, + "fonts": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "pdfSha256": "48a39ffde946d418722ede0c4f46fdd0ef61323b751ab3c19e0936d65cf8f257" + }, + { + "themeId": "technical", + "showPhoto": false, + "previewPages": 1, + "decodedPhotoCount": 0, + "pdfPages": 1, + "imageCount": 0, + "fonts": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "pdfSha256": "5814c65b83b63a7901843f50c2ce186c07d01376cd63754ee2a7497ddb3114c3" + } + ], + "limits": [ + "one-pixel synthetic image verifies inclusion/decoding/native embedding, not portrait crop or photographic quality", + "Linux production fonts/photo runtime not available", + "historical Unsaved incident lacks an original timing trace", + "No human reader/device evidence" + ] +}