Skip to content

v2.33.0 — Fusion node layout + performance & robustness

Choose a tag to compare

@samuelgursky samuelgursky released this 06 Jun 02:21

Fusion node-graph layout and duplication, plus performance and robustness improvements across the compound server. Live-validated on DaVinci Resolve Studio 21.0.0.

Fusion node layout & duplication

  • Added fusion_comp(action="get_position") / set_position — read/write a node's FlowView position; set_position confirms via a position read-back.
  • Added fusion_comp(action="copy_tool") — duplicate a node (optional rename + reposition). Settings copied through a temp .setting file, which round-trips reliably across the Python bridge where the in-memory SaveSettings()/Paste() table form fails.
  • Added fusion_comp(action="auto_arrange") — lay tools out in a row or column at a given spacing.

Performance

  • Changed Resolve object inspection walks dir(obj) once, skips inspect.signature() for C-extension methods, and reads __doc__ directly — roughly halving inspection cost on the resolve_control path.
  • Changed Media-pool find-by-name lookups walk the folder tree lazily and stop at the first match instead of materializing the whole project.

Robustness & fixes

  • Fixed export_frame_as_still rejects an empty path or nonexistent target directory.
  • Fixed set_mark_in_out (clip and timeline) rejects mark_in > mark_out.
  • Fixed Auto-sync audio resolves AUDIO_SYNC_* constants via the live Resolve handle, closing a path where a stale handle silently degraded AutoSyncAudio to rejected string keys.
  • Changed Every subprocess call that can run while the MCP stdio server is active sets stdin=subprocess.DEVNULL, so a child cannot consume bytes from the JSON-RPC stream; the spec-hook runner also captures its child's output.