Every serious defect this session survived a green suite. The sharpest: THREE.WebGLRenderer throws on a device with no WebGL, the exception escaped its effect, React unmounted the whole root, and every page rendered blank. 432 frontend tests passed throughout, because jsdom never builds a WebGL context and nothing exercised a real page in a real browser. scripts/smoke.py closes that blind spot. It drives Chrome over the DevTools Protocol — no framework, no npm dependency — and checks each of the 13 routes for the four failures that have actually happened here: a page that renders nothing, horizontal scroll on a phone, an input under 16px (iOS zooms on focus and never zooms back), and any uncaught error during load. Non-zero exit, so it can gate a deploy. All four checks are PROVEN to fire, by pointing the script at a page built with each defect on purpose — which is how I found that my own horizontal-scroll check was broken. It compared scrollWidth against window.innerWidth, but under Chrome's mobile emulation innerWidth expands to the CONTENT width when a page overflows: 1200 on a 390px viewport, so the difference was always 0 and the check could never fire. It reported "ok" on a deliberately 1200px-wide page. Now compares against documentElement.clientWidth, which stays at the true 390, and reports "H-SCROLL +810px" on that same page. Worth stating plainly: the earlier clean sweep I reported was measured with that broken check, so its horizontal-scroll result was meaningless. Re-run with the fix, all 13 routes still pass at 390x844 and 1440x900 — but that is the run that counts. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
7.2 KiB
Executable File
7.2 KiB
Executable File