Skip to content

v2.52.0

Choose a tag to compare

@samuelgursky samuelgursky released this 13 Jun 08:53

v2.52.0

edit_engine tighten now carries audio. Previously execute_tighten assembled a video-only variant — a speech-driven dead-air cut came out silent, with nothing in the preview or readback to warn you (#67).

Fixed

  • plan_tighten mirrors every kept video range onto its linked audio track(s) with identical source frames, so the assembled variant stays frame-locked and audible. Audio targets the item's detected linked audio tracks (the same GetLinkedItems matching execute_swap uses), falling back to audio track 1 where a single linked A/V clip's audio lives.

Added

  • include_audio parameter on plan_tighten (default true). Pass include_audio=false for the prior video-only assembly.
  • An audio_accounting block on the execute_tighten confirm preview and readback (planned vs. actual audio/video item counts), so a silent variant can no longer ship unnoticed. Old video-only plans re-executed against this build still work and are now loudly flagged as silent.

Validation

  • Static + unit checks run: test_import, audit_api_parity, the three drift guards, full offline suite (1193 passing) including 3 new plan_tighten audio tests, npm pack --dry-run, git diff --check.
  • Live Resolve validation not run by the maintainer in this cut. The fix is the exact path behind the reported silent 2h54m variant; tests/live_edit_engine_validation.py gains an assertion that the tightened variant's A1 track is non-empty — run it against a real A/V clip to confirm end-to-end before relying on it for a delivery.

Thanks to @chenyuxiaojin for the precise root-cause report and verified workaround.