v2.60.0
v2.60.0
A community bug-fix bundle — three external contributions plus the three issues they filed, integrated with the contributors credited as co-authors.
Fixed
- Frame accuracy (
edit_engine) —MediaPool.AppendToTimelineclipInfoendFrameis an exclusive bound (duration =endFrame - startFrame), but three plan builders wrote an inclusive end (round(t*fps) - 1) andexecute_selectsadvanced its record cursor byend - start + 1. Result:plan_tightenkept ranges were one frame short per segment (~4.3s across 130 segments),plan_selects/plan_swapsource ranges were one frame short, andexecute_selectsleft a 1-frame gap between selects. Now half-open everywhere. (#82, thanks @chenyuxiaojin) - Timeline rename no longer archives (
destructive_hook) —timeline.set_namewas version-on-mutate, so renames spawned redundant_archivedtimelines (and renaming an archive archived the archive). A rename is content-preserving, so it's out of the destructive registry. (#83, thanks @chenyuxiaojin) - Windows startup (
server) — initialize the Resolve scripting env (PYTHONHOME, PATH,os.add_dll_directory) before importing the fusionscript bridge, avoiding a native access violation that crashed network transports before bind. No-op off Windows. (#78, thanks @POLEPALLIANVESH) - Fixed a stale offline test that patched a refactored-away seam (
project_managerdelete routing), restoring a fully green baseline.
Added
execute_tighten(..., include_details?)— the readbackstructural_diffis compact by default (counts + a small head/tail sample) instead of embedding every before/after item id (226 KB for a 130-segment tighten). The full per-item diff is persisted in the plan record (get_plan→execution_summary.structural_diff) and returned inline withinclude_details=true. (#84, thanks @chenyuxiaojin)plan_tightenskip dedup — identical(item, reason)skip rows collapse into one entry with acount. (#81, thanks @chenyuxiaojin)
Documentation
- Recorded the
AppendToTimelineendFrameexclusive-bound semantics in theapi_truthledger. (#80, thanks @chenyuxiaojin)
Validation
- Full offline suite green (1343 tests). Static/drift guards pass.
- Live Resolve validation on Studio 21.0 — 30/30 checks, including
selects butt-joined, no 1-frame gapsandtighten keep-ranges frame-exact (planned=118 actual=118).