Skip to content

v2.37.3

Choose a tag to compare

@samuelgursky samuelgursky released this 09 Jun 23:22

v2.37.3

Deep-audit fixes, rounds two and three: agent-facing action discovery, crash-safe user-state persistence, and resource hygiene. No DaVinci Resolve scripting behavior changed.

Fixed

  • Action-list drift: three tools' unknown-action error lists had drifted from their real dispatch — timeline omitted clip_where and action_help; timeline_item_color and graph omitted action_help. Agents recovering from a typo now see the full action set, and a static AST test keeps every tool's advertised list in both-way sync with its dispatch (including verifying docstring-advertised actions are real).
  • Crash-safe persistence: user-state files could be truncated by a crash mid-write; every affected reader resets to {} on corruption, so the next save would silently wipe remaining user data. Writers now use atomic temp-file + os.replace: media-analysis-preferences.json (all analysis/caps/governance/update defaults, including the set_resolution_tier/set_caps_preset paths now routed through the shared writer), update-check.json, the dashboard's analysis.json transcription patch, and transcript-corrections.json.
  • _safe_project_delete discarded SaveProject()'s result when closing the current project before deletion; a failed save now surfaces as a warning in the response.
  • File-descriptor leak: the parent kept its copy of the control panel's log handle open after spawning the detached child.

Audit classes verified clean

Bare excepts, mutable default arguments, asyncio.run inside running loops, subprocess timeouts, docstring phantom actions, and silent-success swallows in metadata/marker/archive write paths.

Validation

  • Offline unit suite: 1,023 tests, 0 failures, 0 errors (both unittest and pytest runners). Static checks clean. Atomic-writer round-trips (including corrupt-file recovery) verified directly.
  • No Resolve scripting behavior changed; live test not required.