Context
PR #765 closed #253 (P0.42) on the Ink side with 21 ANSI snapshots. The React side shipped only the harness scaffold — `apps/visual-react/` (Vite + Playwright config + 14 deterministic case routes + spec iterating `CASE_IDS`). Baseline PNGs are intentionally not committed because they require a Chromium binary install on a stable machine.
What to ship
- Run `pnpm --filter @agentskit/visual-react test:visual:install` then `test:visual:update` on a clean Linux x86_64 environment (so baselines match the CI runner).
- Commit the resulting `apps/visual-react/tests/visual.spec.ts-snapshots/*.png` files.
- Add a CI workflow (`.github/workflows/visual.yml`) that:
- Caches `~/.cache/ms-playwright`
- Runs `pnpm --filter @agentskit/visual-react build` + `test:visual`
- Uploads diffs on failure
- Decide policy on flaky drift — `maxDiffPixelRatio: 0.001` is currently the bar; consider per-OS browser pinning if drift becomes an issue.
Acceptance
See `apps/visual-react/README.md` for current setup steps.
Context
PR #765 closed #253 (P0.42) on the Ink side with 21 ANSI snapshots. The React side shipped only the harness scaffold — `apps/visual-react/` (Vite + Playwright config + 14 deterministic case routes + spec iterating `CASE_IDS`). Baseline PNGs are intentionally not committed because they require a Chromium binary install on a stable machine.
What to ship
Acceptance
See `apps/visual-react/README.md` for current setup steps.