Commit Graph
1 Commits
Author SHA1 Message Date
pastilhasandClaude Opus 5 7980ee3761 photograph the app before touching how it looks
The themes work moves every colour out of the components and into a token layer, and
the entire value of that is being INVISIBLE. Nothing here could have told us whether
that held: the tests do not render, and comparing two screens from memory an hour
apart misses exactly the things this can break — a border colour, a radius, one mode
of two.

Eight routes, both colour modes, against the running app. Byte comparison rather than
a pixel-tolerance diff: a false alarm costs opening two images, a false all-clear
costs the refactor.

The first version was worthless and looked fine. It reused one browser context and
added an init script per mode — Playwright ACCUMULATES those, so the dark pass ran the
light script too, and the class toggle after `goto` was undone by the provider's own
effect. Six of eight routes came out byte-identical in light and dark, which reads as
a clean run. A context per mode fixes it, the class is asserted after settling rather
than before, and identical light/dark pairs now print a warning instead of passing
quietly.

Verified rather than assumed: 15 distinct images of 16, every route differs between
modes, and one was opened to confirm it is the authenticated app and not eight
variations of an error boundary.

Baselines are gitignored — 7MB of machine-specific PNGs. Regenerate with the script.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 21:36:49 +00:00