test(3d): populate baseline-webgl (47 browser goldens) + clean stale diff artifacts per run

- baseline-webgl/: first population from the passing local Chromium renders
  (47/47 under the parity floor) — activates the webgl-self regression gate
  (floor 0.005). CI may re-promote its own renders if the Linux/swiftshader
  rasterization differs beyond the floor (the README's CI-promote flow).
- compare-dirs.ts: recreate the output dir on every run — triptychs/heatmaps
  are only written for CHANGED pairs, so artifacts from earlier (redder) runs
  lingered and misreported scenarios that had since gone green (a stale
  red-state gen-cylinder triptych survived three green runs).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Istvan Matejcsok 2026-07-03 15:06:36 +02:00
commit 85656dd717
48 changed files with 4 additions and 0 deletions

View file

@ -113,6 +113,10 @@ function main(): void {
const levelName = (args.level as string) || null;
const floorFor = makeFloorResolver(args);
// Recreate the output dir from scratch: triptychs/heatmaps are only written
// for CHANGED pairs, so artifacts from earlier (redder) runs would otherwise
// linger and misreport scenarios that have since gone green.
fs.rmSync(outDir, { recursive: true, force: true });
fs.mkdirSync(outDir, { recursive: true });
const oldNames = listPngs(oldDir);
const newNames = new Set(listPngs(newDir));