mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-14 18:01:20 +08:00
93ce61aba2
Two dedup-safety fixes found via full-stack corpus eval: 1. Arm dedup ONLY on the drawElement path (armStaticDedup, called after gates pass + before canvas injection). Gated/screenshot comps are gated precisely because they carry compositor animation (stacked fades, 3D, flashes) the static predictor mispredicts and a sparse backstop can't catch — dedup there froze frames. The drawElement path animates via GSAP transforms the predictor handles cleanly. 2. Backstop verifies against the ANCHOR each run reuses, not the predecessor. Dedup chains a whole static run back to one buffer; a slow sub-quantization drift is byte-identical frame-to-frame (passes f-vs-(f-1)) yet drifts far from the anchor by the run end. Now captures each run's anchor once and compares the run END + midpoint to it; any drift disables dedup whole-comp. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>