Files
jobtrackingapp/docs/pre-phase10-ux/B_ACCEPTANCE.md
T

74 lines
9.1 KiB
Markdown

# B and owner additions: development acceptance
28 October 2026. Branch `feature/cv-template-library-review`, cumulatively based on accepted A commit `663023a` and local-runtime checkpoint `73ea888`. Qualified source checkpoint: `3f4db8ca8183704945915ae4d2053e641bafa5b2`, pushed with remote/local equality verified. Source/image hashes are retained in the build records. No main merge or production deployment is authorised.
**Decision: CONDITIONAL GO for continued development and workstream C. Production: NO-GO.** The application changes and finite supported-document checks pass. The unchanged large-name coordinate oracle remains partial, human/device/print qualifications remain open, and the consolidated PRE-P10 regression is still required after C/D.
## Delivered
- Version-two designs for the existing nine compatible CV IDs: title/header separation in Modern/Classic/Code, full-height physical sidebar backgrounds, actual sidebar palettes, wider identities and measured name typography. Existing absent/version-one designs retain their original rendering.
- Actual server-rendered synthetic template cards, lazy loading and sandboxing; explicit candidate Apply preserves CV content and canonical profile data.
- Nine matching cover-letter designs and chooser, current-authored-text preview, explicit snapshot application and existing shared revision/history persistence. Server-side premium entitlement enforcement covers save/preview/restore, while preserving legacy and existing same-theme designs after downgrade.
- Optional CV portrait controls using the existing shared profile/crop/storage owner; keyboard zoom/pan, bounded decoded-image validation, metadata stripping, durable save acknowledgements, staged-file reconciliation and owner-only retention/account inventory.
- Document-only durable queue execution while generative work remains disabled. Disabled workers reject new PDF/DOCX imports with actionable503 rather than acknowledging an unprocessable queue. English/Bokmål recovery guidance is covered.
- Isolated verified local Ollama, approved read-only trained summariser checkpoint and parser-capable sidecar. Development workers are enabled, external AI is off and email is routed to Mailpit. The configurable backend timeout supports slower local CPU inference. Source image activation is a separate operational step, recorded in the local-runtime documentation.
## Exact evidence
Counts below are separate lanes. Focused reruns are not added to full-suite totals.
| Lane | Result | Raw evidence under `.artifacts/` |
|---|---|---|
| Full .NET backend | 1,394 passed,0 failed,0 skipped | `pre-phase10-ux/b-backend-04/b-backend.trx` |
| Full frontend | 1,014 passed across110 suites,0 failed | `pre-phase10-ux/b-frontend-full-02.json` |
| Real MariaDB12.2.2 | 84 passed,0 skipped; generated schemas cleaned | `pre-phase10-ux/b-mariadb-03/` |
| B interactive browser | 6 passed: actual gallery, actual letter preview, keyboard crop/optional photo; EN1440/NB390 | `pre-phase10-ux/b-selection-browser-03.json` |
| Real Docling import | 2 passed: upload→actual extraction→refresh→review/correct/apply→profile→CV→PDF; EN/light and NB/dark | `pre-phase10-ux/queue-real-docling-02.json` |
| Windows revised CV producer | 36 documents/122 pages; marker/page/bounds36/36; whole-name36/36; sidebar43/43 pages | `pre-phase10-ux/templates-revised-02/` |
| Windows matching letters | 18 documents/38 pages; full source retention/count/bounds18/18 | `pre-phase10-ux/matching-letters-02/` |
| Current v1 HTML preservation | 36/36 exact CSS/fonts, body/order and image-normalized HTML; raw12/36 exact | `pre-phase10-ux/templates-revised-02/legacy-preservation.json` |
| Linux producer/browser | 8 passed,0 failed/skipped/flaky; all owned resources cleaned | `cv-ux-01/pre-p10-b-linux-run-02/process.json` |
| Linux original CV fidelity | 24 documents/60 pages; unchanged oracle PASS | `cv-ux-01/pre-p10-b-linux-run-02/linux-pdf.json` |
| Linux original letter fidelity | 4 documents/14 pages; unchanged oracle4/4 PASS | `cv-ux-01/pre-p10-b-linux-run-02/letter-fidelity/fidelity-results.json` |
| Linux revised CVs | 36 documents/122 pages; content/bounds36/36, whole-name36/36, sidebar43/43 pages | `cv-ux-01/pre-p10-b-linux-run-02/template-library/` |
| Linux matching letters | 18 documents/38 pages; full source retention/count/bounds18/18 | `cv-ux-01/pre-p10-b-linux-run-02/letter-library/pdf-proof.json` |
| TypeScript/lint/static build | Native exits0; corrected static API target explicitly verified | `pre-phase10-ux/b-{typecheck-final,lint-final,build-02}.log` |
| NuGet vulnerability query | Exit0; no vulnerable packages reported, including transitives | `pre-phase10-ux/b-dependency-audit.json` |
| Local model integrity/runtime | All pinned blobs reverified28 October; earlier actual JSON/summary/rewrite smokes pass | `pre-phase10-ux/local-ai/` and `dev/README.md` |
The original Windows24-CV/four-letter corpus and the complete ordinary/contract/security/Python/preservation lanes must be rerun in consolidated integration. Prior accepted results are historical and are not relabelled as fresh B checks. Backend/frontend totals include their existing regression cases; they are not a substitute for browser or provider lanes.
## Retained failures and limits
The revised-name unchanged oracle remains **Windows8/36 PASS with28 S01-only failures; Linux16/36 PASS with20 S01-only failures**. No other marker/font/colour/membership failures occur. Separate captured-ink diagnostics show a maximum3px top difference on each final platform. The original2mm character-cell/DOM Range tolerance remains unchanged; the diagnostic is not a replacement acceptance criterion. Source completeness, physical bounds and full-height sidebar pixel checks independently pass. See TEMPLATE_AUDIT.md.
Earlier failures remain available: signature-only avatar RED;27-case legacy/removal RED;9-case entitlement RED;8 surname-fragment benchmark failures; a worker test stopped before the durable operation acknowledgement (fixed to await both review and completed operation); an initial static build pointed at the wrong test API (six UI failures, corrected by rebuilding with the explicit test endpoint and adding a preflight guard). Docker being stopped prevented one new MariaDB run from starting; no tests ran in that attempt. The subsequent84-test run passed after local IPC recovery. No failed attempt is counted as a skip or a pass.
The checked browser journeys emit pre-existing disabled-tooltip warnings and a handled checklist seed uniqueness race in the isolated SQLite host; their assertions pass. No general checklist rewrite is included. The MariaDB lane validates real persistence separately.
Automated JPEG/WebP/EXIF decoder cases ran on Windows; the actual Linux import/gallery corpus exercises the normal cropped-PNG upload path. Human assistive technology, physical devices, native language review and manual printing remain unperformed. Sparse final pages can remain for sparse source content; arbitrary names and custom font sizes cannot be guaranteed to fit without user adjustment.
Local `qwen2.5:7b` matches the repository's recorded production model name. Exact deployed artifact parity is unverified. Runtime smoke success does not qualify factual CV extraction accuracy or all queued generative workflows. Generative CV-import assistance remains disabled pending its separate grounded-output/model-quality qualification. No production cache, service, database or filesystem concern is treated as resolved.
## Independent decisions
| Area | Decision |
|---|---|
| Template implementation, finite content retention and v1 compatibility | PASS |
| Original Linux CV/letter fidelity | PASS |
| Revised full-height sidebars and benchmark name wrapping | PASS |
| Revised large-name coordinate oracle | PARTIAL; original failures retained |
| Actual gallery and explicit matching-letter selection | PASS, finite automation |
| Optional photo workflow/security | CONDITIONAL GO; stated platform/human limits |
| Upload queue recovery / actual deterministic Docling journey | PASS, finite supported fixtures |
| MariaDB / RD21 preservation | PASS in84-test provider lane |
| Local AI runtime / worker configuration | PASS for integrity, connectivity and stated smokes; source activation separately recorded |
| Real generative CV extraction accuracy / deployed model parity | NOT QUALIFIED |
| Workstream C entry | CONDITIONAL GO; continue safe development |
| Consolidated PRE-P10 acceptance / Phase10 cleanup | NOT YET READY |
| Production | NO-GO |
Qualified source images were activated only in the existing local development stack on28 October. Actual HTTP/byte identity, healthy images, authenticated-proxy boundary, seven worker flags and240-second timeout checks passed; see `dev/README.md` and `.artifacts/pre-phase10-ux/local-ai/source-3f4db8c/http-check.json`. The canonical local frontend host is `jobbjakt.local`; an unmatched localhost Host header is intentionally rejected. This operational check is separate from model-quality acceptance.
Next: create `feature/dashboard-interactive-grid` from this accepted cumulative checkpoint. Keep all C/D and consolidated integration requirements in PLAN.md. No additional owner approval is needed for these already-authorised safe development steps.