T1: Freeze the VE visual goldens (#145) (#178)
* Freeze VE visual goldens against a committed set
Rework the visual-regression harness to compare the working tree against a
committed set of frozen golden PNGs instead of rebuilding a live baseline from a
base-SHA worktree. Once the Vanilla Extract rollup plugin is removed at T6 the
old *.css.ts can no longer be compiled, so reproducing a live VE baseline is
impossible; a frozen set keeps the parity gate stable across that removal.
- visual-regression.ts compares the current tree against
packages/@luke-ui/react/visual-goldens and drops the base-worktree checkout,
the vitest.config.ts copy, and the VISUAL_BASE_SHA/VISUAL_BASE_REF logic. Adds
an --update-goldens re-baseline mode that writes manifest.json (platform, arch,
config+lockfile signature, provenance) and warns on drift.
- Add the test:visual:freeze script and a Freeze visual goldens CI workflow so
the platform-specific goldens are captured on the canonical Linux runner.
- Drop the now-unused base-SHA cache and VISUAL_BASE_SHA env from the
visual-regression workflow.
- Document the frozen-set model and the Linux re-baseline flow.
Part of epic #144 (Vanilla Extract -> Panda migration), ticket #145 (T1).
* Add frozen VE visual goldens captured on Linux CI
210 golden PNGs plus manifest, captured on the canonical ubuntu-latest runner by
the Freeze visual goldens workflow so they match where the comparison runs. The
tree rendered is ve-final (manifest provenance ve-final-1-g57386c0 — the harness
commit, whose changes do not affect component rendering).
Part of epic #144 (Vanilla Extract -> Panda migration), ticket #145 (T1).
* Format goldens manifest and tidy visual testing docs
- Emit the goldens manifest with tab indentation so it passes the repo
formatter; a CI re-freeze now stays clean instead of failing check:format-root.
- Reformat the committed manifest.json to match.
- Format and deslop docs/VISUAL_TESTING.md (root formatter was not run on it):
drop the UI-path arrows, an em dash, and a semicolon for plainer prose.