This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+1 more
Affected surfaces
Summary
AI summaryHost‑chat vision protocol becomes default and analysis now trusts defaults for transcription, persistence, and metadata publishing.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
`analyze_*` actions default to host-chat vision protocol with deferred payload. `analyze_*` actions default to host-chat vision protocol with deferred payload. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Feature | Medium |
`analyze_media` defaults to include transcription, persist, publish metadata, and timed markers request. `analyze_media` defaults to include transcription, persist, publish metadata, and timed markers request. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Feature | Medium |
Control panel review surface (Phase B) adds bin grid, clip/shot detail, inline correction editors, and Open‑in‑Resolve bridge. Control panel review surface (Phase B) adds bin grid, clip/shot detail, inline correction editors, and Open‑in‑Resolve bridge. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Feature | Medium |
New `media_analysis` actions: update_shot_field, update_clip_field, get_field_history, revert_field, list_corrections. New `media_analysis` actions: update_shot_field, update_clip_field, get_field_history, revert_field, list_corrections. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Feature | Medium |
`source_trust` parameter on analyze actions tunes vision prompt hedging. `source_trust` parameter on analyze actions tunes vision prompt hedging. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Feature | Medium |
Analysis memory layer introduces per‑project memory, heartbeat, and bin summary scaffolding. Analysis memory layer introduces per‑project memory, heartbeat, and bin summary scaffolding. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Feature | Medium |
`media_pool_item.open_in_viewer` selects a clip and activates Resolve source viewer. `media_pool_item.open_in_viewer` selects a clip and activates Resolve source viewer. Source: llm_adapter@2026-05-26 Confidence: low |
— |
| Feature | Low |
'media_pool_item.open_in_viewer' selects a clip on the Media page and loads it into Resolve's source viewer, optionally setting in/out marks and bringing Resolve to foreground. 'media_pool_item.open_in_viewer' selects a clip on the Media page and loads it into Resolve's source viewer, optionally setting in/out marks and bringing Resolve to foreground. Source: granite4.1:30b@2026-05-26-audit Confidence: high |
— |
| Feature | Low |
'source_trust' parameter on analyze actions tunes vision prompt hedging for identity/intent/value based on trust level (auto/filename/low/medium/high). 'source_trust' parameter on analyze actions tunes vision prompt hedging for identity/intent/value based on trust level (auto/filename/low/medium/high). Source: granite4.1:30b@2026-05-26-audit Confidence: high |
— |
| Bugfix | Medium |
`commit_vision` auto‑publish now reflects per‑row status correctly. `commit_vision` auto‑publish now reflects per‑row status correctly. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Bugfix | Medium |
Compact analyze responses are emitted by default; verbose mode requires `verbose:true`. Compact analyze responses are emitted by default; verbose mode requires `verbose:true`. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Bugfix | Medium |
`resolve_output_root` skips slug append when base already ends with the slug. `resolve_output_root` skips slug append when base already ends with the slug. Source: llm_adapter@2026-05-26 Confidence: high |
— |
| Bugfix | Medium |
Frame sampler reserves per‑shot budget to prevent shot start starvation by flash candidates. Frame sampler reserves per‑shot budget to prevent shot start starvation by flash candidates. Source: granite4.1:30b@2026-05-26-audit Confidence: high |
— |
| Bugfix | Medium |
'media_analysis' augments `PATH` with standard tool directories (e.g., /opt/homebrew/bin, /usr/local/bin) so ffprobe/ffmpeg resolve when launched via GUI app. 'media_analysis' augments `PATH` with standard tool directories (e.g., /opt/homebrew/bin, /usr/local/bin) so ffprobe/ffmpeg resolve when launched via GUI app. Source: granite4.1:30b@2026-05-26-audit Confidence: high |
— |
| Bugfix | Low |
Machine markers are no longer written to Resolve in the V2 architecture. Machine markers are no longer written to Resolve in the V2 architecture. Source: granite4.1:30b@2026-05-26-audit Confidence: high |
— |
Full changelog
v2.24.0
V2 trust-by-default media analysis: host-chat vision protocol, control panel review surface, correction tools, and analysis memory layer.
Added
- Host-chat vision protocol (V2) —
analyze_*actions now usevision.provider="host_chat_paths"by default. The analyze response is a deferred payload with absoluteframe_paths, a per-shotshot_table, and a JSON schema; the host chat reads each frame as a local image, produces JSON per the schema, and callsmedia_analysis(action="commit_vision", params={clip_id, visual, vision_token})to finalize.commit_visionmerges the visual report, rebuilds Media Pool clip markers, publishes metadata to Resolve, and preserves human corrections viacorrections.json. Skipping the commit leaves the run inpending_host_vision_analysis— surfaced explicitly rather than silently downgraded. Legacychat_context/mcp_samplingproviders resolve to the same host-chat path. - Trust-by-default analysis defaults —
analyze_mediadefaults toinclude_transcription=true,persist=true,publish_metadata=true, andtimed_markers="ask". Agents that need a technical-only or read-only run must explicitly pass the opt-out flags. Theanalyze_mediaprompt and SKILL.md encode the anti-regression rule. - Control panel: Review surface (Phase B) — Bin grid with thumbnails, clip detail with shot strip, shot detail with grouped V2 fields + frame grid, inline correction editors per subjective field, transcript correction + regeneration, Open-in-Resolve bridge, and 2-second chat ↔ panel state polling. Backed by new endpoints:
/api/clips,/api/clips/<id>,/api/clips/<id>/shots,/api/clips/<id>/shots/<index>,/api/clips/<id>/frames/<n>,/api/clips/<id>/transcript,/api/clips/<id>/corrections,/api/clips/combined,/api/clips/export,/api/panel_state,/api/update/status,/api/update/apply,/api/resolve/open_clip. - Control panel MCP actions —
resolve_control.open_control_panel,control_panel_status,close_control_panelmanage the panel subprocess via a pidfile.save_state/restore_statesnapshot and restore Resolve playhead + selection state.get_panel_state,set_panel_state,session_start_contextshare panel focus between chat and the UI throughpanel_state.json. - Correction tools — New
media_analysisactions:update_shot_field,update_clip_field,get_field_history,revert_field,list_corrections. Writes land in{clip_dir}/corrections.jsonwith append-only changelog + provenance (mirrors V2 DB schema).commit_visionmerges corrections on top of the fresh visual report so human edits survive re-analysis. - Media Pool item open-in-viewer —
media_pool_item.open_in_viewerselects a clip on the Media page and loads it into the source viewer, optionally setting mark in/out and bringing Resolve to the foreground via OS-level window activation. - Source-trust prompt grading —
source_trustparameter (auto/filename/low/medium/high) on analyze actions tunes the vision prompt to hedge identity/intent/value for archival or thin-evidence clips. - Analysis memory layer —
src/utils/analysis_memory.pyintroduces per-project memory + heartbeat + bin summary + soul scaffolding under the analysis root.regenerate_bin_summary_from_manifestaggregates per-clip fields into a bin briefing. Auto-initialized on analyze. - Control-panel polish — Diagnostics + Overview restyled with a status-pill design system, navbar dropdowns fixed so top-level buttons no longer navigate on their own, Preferences consolidated, summary-style enum renamed to
full/concise/creative/technical(with backwards compat), navbar version badge + update modal, source-trust dropdown wired through.
Fixed
commit_visionauto-publish reflects per-row status correctly — no more silent-lie pending status.- Compact analyze responses by default; pass
verbose: truefor the full manifest. resolve_output_rootskips slug append when the configured base already terminates in the slug.- Frame sampler reserves per-shot budget so shot starts aren't starved by flash candidates.
- Machine markers are no longer written to Resolve (V2 architecture).
media_analysisnow augmentsPATHwith standard tool dirs (/opt/homebrew/bin,/usr/local/bin, etc.) so ffprobe/ffmpeg resolve when the MCP server is launched by a GUI app (Claude.app, Dock/Spotlight) that inherits launchd's bare PATH.
Documentation
AGENTS.mdadds the "Media Analysis Defaults Are Mandatory" section.docs/SKILL.mdrewrites theanalyze_mediaprompt guidance for the host_chat_paths protocol and adds the anti-regression rule.docs/guides/media-analysis-guide.mdcovers the deferred vision payload and commit step.- New design docs under
docs/design/:v2-control-panel-design.md,v2-db-schema.sql,v2-implementation-gameplan.md,v2-shot-schema-spec.md,control-panel-polish-gameplan.md.
Validation
- Static import checks (
tests/test_import.py) — OK. - API parity audit (
scripts/audit_api_parity.py) — PASS. - Focused unit tests (138 tests across
test_extract_source_frame_ranges,test_marker_params,test_v232_helpers,test_v233_helpers,test_append_clip_infos_result_handling,test_media_analysis) — OK. - npm CLI smoke (
node bin/davinci-resolve-mcp.mjs --help/--version) — OK. npm pack --dry-run— OK (97 files, package version 2.24.0).git diff --check— clean.- No source media was modified. Resolve scripting behavior is additive (new actions; existing actions unchanged); live Resolve validation covered the control panel + open_in_viewer + commit_vision auto-publish + corrections-merge paths during the V2 push sessions.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Beta — feedback welcome: [email protected]