Skip to content

v2.45.0

Choose a tag to compare

@samuelgursky samuelgursky released this 10 Jun 16:26

The edit engine — Phase E, the final phase of the analysis + edit-engine program. Three evidence-driven loops on one shared skeleton: evidence query → dry-run plan with per-decision rationale → confirm token → versioned timeline ops → metric readback → brain_edits rows.

Added

  • New edit_engine MCP tool (compound tool count: 34):
    • plan_selects / execute_selects — shots ranked by deep-tier editorial.select_potential and best moments (clip-level fallback), story-spine order, duration budget; execution builds a NEW selects timeline. Additive.
    • plan_tighten / execute_tighten — dead-air lifts from transcript-gap evidence; execution assembles a tightened VARIANT timeline from keep ranges (true partial trims) — the original is never mutated.
    • plan_swap / execute_swap — alternates via the visual-similarity index, filtered to shots that fill the slot exactly; in-place replacement on the version-archived timeline.
    • list_plans / get_plan — fingerprinted plans under memory/edit_plans/; stale or tampered plans refuse to execute.
  • src/utils/edit_engine.py (DB-only planning layer) + tests/live_edit_engine_validation.py (disposable-project live harness).

Fixed

  • Analysis-store frames fall back to time-containment shot mapping when reports omit frame_indices_used.

Validation

  • Full offline suite: 1118 tests (13 new); 3 known live-Resolve environmental failures only.
  • Live pilot on a disposable synthetic-media Resolve project: 20/20 checks — selects assembled, tighten removed exactly the 15.2s of transcript dead air while keeping the spoken 4.8s, swap replaced the item with a 0.92-cosine alternate, brain_edits rationale rows present for all loops, timeline versions archived.