Files
jobtrackingapp/docs/ui-modernisation/DASHBOARD_VALIDATION.md
T

5.6 KiB
Raw Blame History

A3-IM03 dashboard and onboarding qualification

3 November 2026. Owner accepted navigation992608c7 and explicitly answered "Approve navigation and A3-IM03". This authorises this increment; the next milestone still requires Gate F review under the approved A3 implementation proposal. Publication receipt follows after committing.

Implemented scope

New/reset defaults put Today first, Your week left and pipeline right, then metrics and retained analytics. Saved layouts retain order, hidden positions and geometry. All nine original widget IDs remain; one additive agenda ID is accepted by the existing schema2 server validator. Existing saved layouts append it hidden. No migration, endpoint or dependency change. Personal greetings use recorded first/display names only; unnamed accounts retain Dashboard.

Your week uses strictly parsed, recorded deadlines and follow-ups within seven local calendar days, from the existing attention feed. Date-only deadlines retain their calendar date and raw datetime attribute. Missing/free-text/invalid dates are omitted. It displays at most three entries and links to Reminders; it does not claim complete calendar or interview coverage. Full calendar remains A3-IM07 work.

Setup moves below the task dashboard. Existing dismissal keys still work; dismissal exposes a resume/walkthrough entry. Individual skips persist per owner and never increase completion. Completion remains based on the existing account/Career/mail/job reads. Walkthrough steps link to existing destinations, explain optional import/mail consent, support previous/next/close and focus return. No guidance action writes source data, grants access, or blocks manual tracking. Existing loading/error/retry remains.

Fresh evidence

Check Result and boundary
Baseline 71 frontend tests /9 suites PASSED before changes
Test-first new behavior Six frontend failures reproduced before implementation; backend agenda acceptance failed before whitelist addition
Final selected frontend 95 tests /12 suites PASSED, zero failed; dashboard/grid/CAS hook/customisation/presentation/onboarding/dates/control-loop/navigation/metadata/catalogue/provider. Baseline, red runs and reviewer45 overlap; do not add totals
Backend layout 36 DashboardPreferencesTests PASSED, zero failed/skipped; isolated SQLite HTTP host, real owner/CAS/bounds/collision/legacy tests. New agenda test rejects unknown IDs and overlap. Focused green1 overlaps36
Typecheck / full lint / build PASSED on combined UI03 + localisation5e8a07d1 tree; zero-warning lint, fresh static export
Actual React browser 16 configurations: widths320/390/768/1440 × EN/NB × light/dark; 32 whole-page axe scans, zero returned violations;32 PNGs
Connected journeys All16: week dates/order, no overflow, desktop week/pipeline row, skip/reload/resume, dismiss/reload/resume, guide next/close/focus, hide agenda/save/reload
Write boundary 16 explicit layout PUTs fulfilled by in-memory fixtures; zero unexpected writes/page errors. Guidance causes zero writes. Every external request aborted; Google Fonts attempts are not provider validation
Independent review No actionable findings. Reviewer45 tests /3 suites PASSED, overlapping95; did not independently rerun backend/browser/build

Native JSON/TRX, captures and source-bound hashes are in evidence/dashboard. Browser harness: rtk proxy node scripts/verify-a3-dashboard.mjs from job-tracker-ui against the static export on localhost4338. Browser persistence is controlled in-memory API behavior, separate from real backend SQLite tests; this is not an integrated database E2E pass. Screenshots use synthetic nurse, teacher and engineer data; English job descriptions in Bokmål UI are source content, not translated UI labels. Fixed-header placement in full-page scroll captures is a browser capture artifact, not a native-device result.

New catalogue keys are paired EN/NB and covered by catalogue QA. The existing widget-title dynamic domain now has ten IDs, including agenda, each backed by both catalogues. All188 historical dynamic reviews remain accounted for; full European localisation is still open. The independent mobile build-metadata fix is now combined and included in selected tests. Prior navigation/foundation evidence remains historical source-bound evidence, not a fresh full rerun.

Preservation, recovery and open gates

Schema2 bounds, collisions, CAS and ownership remain in their existing owners. No route declarations or permission flags changed. Career Profile, CV/letter revisions, null-as-inherit overrides and RD21 owners are untouched. No physical document renderer changes warrant reopening accepted PDF metrics/visuals.

Rollback: revert this increment on the feature branch, retaining localisation5e8a07d1. No source job/profile data or database schema is changed. An old build may ignore/omit the new agenda preference on a subsequent layout save; all nine old widgets remain compatible. Production rollout/rollback qualification is still required before deployment. Existing layouts are never automatically reset.

NOT RUN: MariaDB, real backend/browser integrated journeys, hosted CI, native device/touch/screen reader/actual zoom, real provider/mail/model workflows, final integrated security, live recovery or release acceptance. No production services were accessed. Phase10 final acceptance and the wider roadmap remain open. The broader calendar and remaining A3 screens are not complete.

Next protected dependency: owner Gate F review of this dashboard/onboarding increment before A3-IM04 B1 application table/Kanban/detail implementation. Other independently eligible work remains authorised.