v2.48.1
Bug fix surfaced by the first real-cut tighten pilot (a 60-second cut in a real project).
Fixed
- Cross-root analysis reuse never landed in the current project's DB. When the analysis registry matched a reusable report from another project's analysis root,
execute_plan_asyncreported success but wrote no DB rows and no local export — somedia_reflookups against the current media pool (edit-engine planners, panel readers) found nothing while the manifest claimed success. The reuse path now re-keys the report to the current project's clip identity, ingests it into the current root's DB, and writes a lockstepanalysis.jsonexport into the current root (provenance kept inreused_from). Same-root reuse is unaffected.
Validation
- Regression test covering the cross-root reuse path end-to-end (DB rows under the new clip id, transcript rows present,
resolve_clip_uuidlookup, local export path). Offline suite at 1160. - Live-validated on the real-cut pilot: after the fix,
plan_tightenfound 5 dead-air lifts andexecute_tightenassembled a variant with the structural-diff readback agreeing withdiff_timelinesexactly; the original timeline was untouched.