Setting up your dashboard0 entities found · 9/32 branches scanned
ID:WORK-409Status:pending
Visual-regression harness
A shared Playwright harness that photographs the generated gallery + layout fixtures into per-theme golden baselines, image-diffed on every PR. This closes the AI iteration loop and — critically — gives the v0.23.0 skeleton/skin extraction its "diff must be empty" proof. No screenshot testing exists in the repo today; this is greenfield.
Reusable Playwright config + snapshot test ("load artifact → await document.fonts.ready → disable animation → snapshot"), living once as a shared harness package/config — not copy-pasted per theme.
Rune gallery: per-data-gallery-cell element clips (a diff localises to the rune). Layout fixtures: whole-page shots per viewport.
Lumina wires it in with thin glue only: a playwright.config.ts, committed baselines (packages/lumina/gallery/__screenshots__/), an npm script. --update-snapshots to refresh.
Runs in a pinned container (Playwright's official image) for deterministic anti-aliasing / font hinting.
Distribution: opt-in, separately-installed package — Playwright / browser binaries must not enter the core install path.
Acceptance Criteria
A shared harness snapshots both subjects (rune clips per mode; layout pages per viewport) into committed per-theme baselines.
Lumina has baseline coverage for all runes and the four existing layouts; the suite runs in CI in a pinned container.
A second theme could adopt it with config + baselines + script only (no logic copy).
The harness ships as an opt-in package; the core CLI / runtime install pulls no browser binaries.
Dependencies
Requires WORK-407 and WORK-408 (the subjects to photograph).