Skip to content

v2.54.0

Choose a tag to compare

@samuelgursky samuelgursky released this 18 Jun 13:02

v2.54.0

Follow-up to the v2.53.0 AutoSyncAudio fix (issue #70): hardens the remaining
enum-keyed Resolve settings APIs against the same silent-failure class. These
methods key their settings dict by resolve.<CONST> enum attributes and silently
reject the whole call when handed plain string keys — returning False/None
with nothing applied and no error.

Fixed

  • CreateSubtitlesFromAudio (timeline_ai.create_subtitles and
    timeline.subtitle_generation_probe) now resolves human-readable
    autoCaptionSettingslanguage, preset, line_break, chars_per_line,
    gap — into live SUBTITLE_*/AUTO_CAPTION_* enum keys/values. Unknown keys
    and unresolvable values are dropped and reported in ignored_settings instead
    of poisoning the call, and generation is read-back verified against the
    timeline's subtitle track count (the boolean return is unreliable).
  • ProjectManager CloudProject family (create/load/import_project/
    restore) resolves {cloudSettings} into live CLOUD_SETTING_*/CLOUD_SYNC_*
    enums (project_name, media_path, is_collab, sync_mode,
    is_camera_access), dropping unknown keys into ignored_settings.

Changed

  • The string→enum resolution is now a shared _resolve_enum_settings primitive
    driven by per-field specs, so the next enum-keyed API gets the same treatment
    without re-implementing it.

Added

  • api_truth entries for Timeline.CreateSubtitlesFromAudio and the CloudProject
    family, documenting the silent-rejection + unreliable-return behavior alongside
    the existing AutoSyncAudio entry.

Validation

  • Full offline unit/static suite green (1233 tests; new coverage for subtitle and
    cloud settings normalization, value clamping, unknown-key dropping, and
    subtitle read-back verification).
  • Live-validated against DaVinci Resolve Studio 21.0.0
    (tests/live_enum_settings_check.py): the real handle exposes the
    SUBTITLE_*/AUTO_CAPTION_* and CLOUD_SETTING_*/CLOUD_SYNC_* constants, and
    human-readable settings resolve to live enum keys/values with unknown keys
    dropped. (No subtitle/cloud mutation is performed by the check.)