Files
hyperframes/packages
James RussoandClaude Opus 4.7 a637f394ee fix(producer): credit looping short videos in coverage gate (#2665) (#2732)
#2606 taught the video-coverage gate that a non-looping short video holds
its final decoded frame across the tail, so the delivered source frames
are enough to cover the authored slot. But that fix gated the credit on
'!video.loop' — a looping short video was still measured as
unique-source-frames / slot-frames and aborted at ratio << threshold.

Reproduced on 0.7.64 with the reporter's exact composition (3s clip in a
10s slot, loop attribute): render aborts with 'captured 90 of expected
300 frames (coverage 30.0%)'. Same source without loop renders clean via
#2606's freeze credit. This is the mainline 'loop a short clip to fill a
longer scene' case, the reason loop exists.

Fix: extend #2606's source-credit to loops symmetrically — the delivered
set (all N source frames) covers every repeat within the slot, so
expectedFrames = min(slotFrames, sourceFrames) for both hold and loop.
Fail-loud preserved for a genuinely-broken loop (extractor truncated
below its own source): a 60/90 delivery still aborts at 66.7% < 95%
because the delivered set no longer covers the full source period the
loop reuses. Missing extractions still require the full slot.

Test updates:
- 'still requires the full authored slot for looping clips' locked in
  the buggy behavior; replaced with 'credits a looping short clip
  against the source portion' which asserts the correct 90/90/1.0.
- Added 'still fails when a looping clip's source extraction is
  truncated' as the new fail-loud floor.

Fixes #2665. Regression window: 0.7.60 (#2606's original ship)
through 0.7.67 (current).

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-22 00:19:51 -04:00
..
2026-07-21 23:51:05 +00:00
2026-07-21 23:51:05 +00:00
2026-07-21 23:51:05 +00:00
2026-07-21 23:51:05 +00:00
2026-07-21 23:51:05 +00:00
2026-07-21 23:51:05 +00:00
2026-07-21 23:51:05 +00:00
2026-07-21 23:51:05 +00:00
2026-07-21 23:51:05 +00:00
2026-07-21 23:51:05 +00:00