Adds VERIFICATION.md + scripts/verify_ui.mjs, a Playwright-driven check of
the full user journey against the deployed SPA: page loads clean, Leaflet
map renders, a real DOM upload (.sub + GPS) returns a device match, and the
capture store increments. Grounded in real element IDs and live endpoints.
In-sandbox this session covered the code-correctness layers (L1-substance
parse->match->category, L3 save/load round-trip, L4 BinRAW + per-device
catalog category regressions). The runtime/transport layers still require a
live listening server and must be run from a normal shell:
- L0 docker compose up --build, container healthy
- L1 HTTP curl/jq /health + static assets 200
- L2 Playwright browser journey (scripts/verify_ui.mjs)
- L3 restart container up->down->up, capture count unchanged (volume)
Also ignores trained model binaries (models/*.onnx, *.pt) and the
verify-shots/ screenshot output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>