The committed tests/screenshot-manifest.json is retired. CI now downloads baselines/pcbjam/manifest.json (manifest v3, written only by the morelli review app + its seed script) to the gitignored .baseline-manifest.json, and everything downstream (pull, verify, compare) reads that copy: - config.ts: MANIFEST_VERSION 3, MANIFEST_PATH .baseline-manifest.json, R2_BASELINES_MANIFEST_KEY; ManifestEntry grows opaque provenance - r2-sync.ts: new --manifest mode (atomic fetch; no-creds skip DELETES a stale copy so the gate skips rather than using old baselines); --push gone (bytes enter the CAS only via morelli's promote) - compare.ts: hard-skips when no manifest was fetched — a stale warm cache can never gate - wasm-build.yml: fetch-manifest step before the baselines cache; cache key now hashes the fetched manifest; the gen-manifest --check lint gate goes with the committed manifest - deleted: screenshot-manifest.json, promote.ts, changelog.ts, gen-manifest.ts, screenshot-changelog.yml, promote-screenshots skill - docs (CLAUDE/README/TESTING/WHATWORKS/tools README): promote flow is now https://pcbjam-morelli-staging.pcbjam-staging.workers.dev Validated locally against the real bucket: fetch-manifest (492), cold pull 492 / warm pull cached=492, no-creds skip chain, compare gate skip. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
11 lines
861 B
Text
11 lines
861 B
Text
# Screenshot model: specs capture via stableShot() → page.screenshot into test-results/, which is
|
|
# transient and gitignored at the repo root (/tests/test-results/). Baselines live in a private R2
|
|
# bucket, content-addressed by sha256 and pinned by the R2-hosted manifest (fetched to the
|
|
# gitignored .baseline-manifest.json below — NOTHING manifest-related is committed);
|
|
# tests/baseline-screenshots/ is a gitignored local cache (`npm run screenshots:fetch-manifest &&
|
|
# npm run screenshots:fetch`), authored from CI's deterministic Linux render and diffed OFFLINE by
|
|
# tools/screenshots. Baselines are promoted from a CI run in the morelli app. (3d-regression/ and
|
|
# gal-regression/ baselines are still committed.) There are no Playwright-native *-snapshots/
|
|
# baselines — Playwright does no inline screenshot comparison.
|
|
.baseline-manifest.json
|
|
logs/
|