v2.54.0
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_subtitlesand
timeline.subtitle_generation_probe) now resolves human-readable
autoCaptionSettings—language,preset,line_break,chars_per_line,
gap— into liveSUBTITLE_*/AUTO_CAPTION_*enum keys/values. Unknown keys
and unresolvable values are dropped and reported inignored_settingsinstead
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 liveCLOUD_SETTING_*/CLOUD_SYNC_*
enums (project_name,media_path,is_collab,sync_mode,
is_camera_access), dropping unknown keys intoignored_settings.
Changed
- The string→enum resolution is now a shared
_resolve_enum_settingsprimitive
driven by per-field specs, so the next enum-keyed API gets the same treatment
without re-implementing it.
Added
api_truthentries forTimeline.CreateSubtitlesFromAudioand the CloudProject
family, documenting the silent-rejection + unreliable-return behavior alongside
the existingAutoSyncAudioentry.
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_*andCLOUD_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.)