mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 04:38:33 +00:00
Field signal ts=1784040753 (#hyperframes-cli-feedback): a composition with ~40 heavy overlay DOM elements — `filter:blur`, oversized `radial-gradient`, and `clip-path` animations — captures solid-black for the first ~half of the render, recovering near the end. Reproduces identically via drawElement AND forced --no-browser-gpu screenshot capture AND `snapshot`, so the capture layer itself is the offender, not encoder/mux. Independent of duration (padding the timeline grows the bad zone proportionally, doesn't shift it). Presence alone matters — even opacity:0 / visibility:hidden / unused overlays contribute. Reporter's workaround was splitting into per-transition mini-compositions + FFmpeg concat. Add compositionCheck rule `composition_heavy_overlay_count_high` (warning). Counts DOM elements that carry any of: inline `style` filter:blur / clip-path (non-none) / radial-gradient, or a class/id whose top-level CSS rule body sets one of those. `display:none` elements are counted-out (removed from render tree); opacity:0 / visibility:hidden overlays are counted-in per the field-signal repro shape. Warns at 25 to give lead time before the observed 40-element bad zone. Skips registry source and installed-block files, mirroring `composition_file_too_large`. Includes a `ts=1784040753` reference in fixHint so authors can trace the risk shape. Stack: PR #5 of 9 (base via/parity-telemetry-gate). Signed-off-by: Via Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>