cancelok: the gate was a coin flip — calibrate it against a known-good pad master
Two bugs, both the same disease: thresholds calibrated against numbers that aren't about the pad. fps was absolute (40 floor). Headless Chrome pins the cadence to whatever the host feels like — on blueberry EVERY pad reads 30fps, all 47 shipped ones included. The floor would have rejected `prism`. Now we measure `lull` in the same session and grade against it; whatever the host is doing to lull it's doing to the candidate, and the ratio survives it. heap growth over 12s is NOISE. The same pad swings +11MB to +42MB between runs — that's the GC's mood, not a leak. `lull` reads +40MB on a bad run. So the gate now CONFIRMS before it convicts: anything that fails is measured again, and only a repeat is real. A leak repeats; a GC hiccup doesn't. Thrown errors are deterministic, so those are still believed the first time. Verified: drolo, prism, gloob all pass; a pad that throws every frame is rejected on 423 JS errors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>