Production readiness Phase 2: DE profile facts, mobile audit, route matrix E2E (#176)
* feat(web): Phase 2 production readiness — locale, mobile, E2E matrix
Localize onboarding focus facts by profile locale (DE assertion).
Add mobile overflow/touch audits, deep-link matrix, extended console
checks, and E2E for empty project, session unavailable, and teaching
composer. Safe-area and Heute header layout on 390px viewports.
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* fix(e2e): stabilize Phase 2 specs for mobile shell and empty project
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* fix(api): satisfy typecheck for focusFactValue
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* fix(api): type-safe focusFactValue lookup
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* fix(api): narrow focus fact locale key
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* fix(api): use FocusOptionId union for fact lookup
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* test(web): align Shell header control assertions with touch targets
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* style(web): format desktop header control test
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* fix(web): stabilize Phase 2 E2E (settings i18n, empty project, chart plot load)
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* fix(web): empty project E2E simulates pre-start bootstrap; relax module recovery wait
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* fix(web): format empty-project E2E; stabilize chart-links cold Plot load
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* test(web): run chart-links E2E serially to reuse warmed Plot module
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* style(web): format chart-links E2E
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>