REPASO A1 v3 — QA REPORT
Date: 2026-09-06

SCOPE
- 32 HTML pages
- 17 official topic pages
- 70 bilingual task-bank entries
- 12 partner role-play scenarios
- Spanish-first UI with contextual hidden English support
- Local progress + JSON export/import
- PWA/offline shell

STATIC / STRUCTURAL CHECKS
PASS — all 32 HTML files parsed
PASS — zero duplicate HTML IDs
PASS — zero broken internal links or static resource references
PASS — manifest JSON parsed and all icon paths exist
PASS — every service-worker core-cache path exists
PASS — all 17 theme pages contain the 7 expected legacy progress keys
PASS — all 44 package files returned HTTP 200 from a local static server

JAVASCRIPT / DATA CHECKS
PASS — app-v3.js syntax check (Node)
PASS — service-worker.js syntax check (Node)
PASS — theme data loads: 17 themes
PASS — task data loads: 70 tasks
PASS — partner data loads: 12 scenarios
PASS — v2 progress booleans preserved by import normalisation
PASS — v2 showEn state migrates safely to optional English-support setting
PASS — invalid checker values rejected during import normalisation
PASS — merge import keeps already-completed items while adding imported completions
PASS — legacy past-pattern keys are mapped forward to the current known-task keys

LANGUAGE CHECK
PASS — visible learner UI is Spanish-first
PASS — English support is hidden behind ? EN / EN buttons
PASS — English help is blocked during exam mode
PASS — task-bank visible prompts/points are Spanish-first
NOTE — automated language heuristic flags Spanish cognates such as “plan” and “describe”; manual review confirms these are Spanish, not stray English UI.

UPDATE SAFETY
PASS — localStorage key intentionally remains: hl-final-review
PASS — v3 assets are versioned (app-v3.js, styles-v3.css, etc.) to avoid stale v2 asset-cache mixing during FTP replacement
PASS — PWA cache name changed for v3

BROWSER-AUTOMATION LIMITATION
A full Playwright browser E2E run was prepared, but the execution environment blocks Chromium navigation by administrator policy (ERR_BLOCKED_BY_ADMINISTRATOR), including localhost/file navigation. Because of that environment limitation, browser-level click automation could not be completed here. Static serving, link/resource checks, JavaScript syntax checks, data/compatibility logic tests, and manual source inspection all passed.

RECOMMENDED LIVE ACCEPTANCE AFTER FTP UPLOAD
1. Open /a1/ on Irene's phone.
2. Tick one theme task, refresh, and confirm persistence.
3. Open ? EN, confirm help appears only on demand.
4. Start a timed session and confirm EN disappears during the timer.
5. Export progress, then import/merge the same file.
6. Open Partner mode and reveal/hide both role cards.
7. Start a quick mock and exit/finish it.
8. Add to Home Screen and reopen once.

No known structural or logic defects remain from the checks above.
