Repository navigation
Description
Part 2 of the V3 batch. Depends on the shared visual check (floors, public lane, tools/visual/), which is not yet published to a place this repo can copy from. Do not start until that is merged and a commit is named here. Not agent-ready.
Why
This repo's own visual check draws only ?demo in light at two sizes, never judges, and installs Playwright at run time. This part moves the repo onto the shared check with every demo state and the wall canvas drawn, and deletes the repo's own copy. Follows Part 1 (one open PR at a time). Every merge to main deploys live.setkernel.com. If the PR passes 400 lines, split into 2a (visual.json, ?demo=full, day test) and 2b (swap tools and workflows, delete the old copy).
Acceptance criteria
-
visual.jsonlists?demo,?demo=quiet,?demo=offline,?demo=down,?demo=waitingand a new?demo=fullat 375x812 and 1440x900, each with locale en-CA and timezone America/Halifax, and declares?wall&demoas a fixed 1440x810 canvas, CSS scale 1, in dark. Ready selector#plot svg. UI globs arepublic/**minuspublic/usage/**. The PR'ssk-visual head=<sha>comment lists 13 opaque shots at deviceScaleFactor 1, readable on dark GitHub. -
?demo=fullreaches both retention hatches past REPLAY_WORK and CI_RECENT;test/day.test.mjsasserts thatworkFromandciFromare set, undernpm test. -
scripts/visual-diff.mjs,scripts/visual-diff-post.mjs,test/visual-diff.test.mjsandtest/visual-diff-post.test.mjsare deleted.tools/visual/**and both workflows are copied from the shared source at a named commit. - The job is still
visual-diff, has noon.pull_request.paths, printsno UI path changedand exits 0 when no UI glob matched. It runs the public lane:ubuntu-latest, no container, no secrets, the headless shell installed at the version intools/visual/versions.json.git grep -n 'playwright@'prints nothing,npm run validatepasses and the head run is green. -
visual-baseline.jsonlists the floor failures still present on the PR's base with their issue URLs (the CI-lane hatch until Part 3, and any clipped text, under-size targets with the WCAG 2.5.8 inline exemption applied, or under-12 px canvas text that the floors find). The check is green without hiding them, and the floors report is in the comment. -
AGENTS.mddescribes the new check where it now describes the old one. - Deleting two test files and any change to
test/workflows.test.mjsneeds anallow-test-changes:line in this issue, added by Raghav or Claude Lead after reading every test edit, never by the author. -
npm run validatepasses and the requiredvisual-diffcheck passes on each head.
Files likely touched
visual.json, visual-baseline.json (new); tools/visual/ (copied); .github/workflows/visual-diff.yml, .github/workflows/visual-diff-comment.yml; scripts/visual-diff.mjs, scripts/visual-diff-post.mjs (deleted); test/visual-diff.test.mjs, test/visual-diff-post.test.mjs (deleted), test/workflows.test.mjs, test/day.test.mjs; public/lib/demo.js; AGENTS.md. If setkernel-live#75 lands first, its strip gets a visual.json route.
Risk class
R3: changes .github/** workflows and scripts/**. Every merge deploys live.setkernel.com; Raghav merges.
Activity