## v2.22.0

v2.22.0 adds configurable MCP update prompting, conversation-level setup
defaults, optional timed media-analysis marker writeback, and a read-only
metadata field inventory for mapping Resolve metadata writeback safely.

### Added

- Added persisted MCP update policies: `prompt`, `auto`, `notify`, and `never`.
- Added installer update prompts with update now, continue, snooze, ignore,
  safe auto-update, and disable-check choices.
- Added Resolve-side update controls:
  `resolve_control.mcp_update_status`, `set_mcp_update_policy`,
  `ignore_mcp_update`, `snooze_mcp_update`, and
  `clear_mcp_update_preferences`.
- Added the `setup` compound tool for media-analysis defaults and update
  preferences.
- Added `media_pool.metadata_field_inventory` for read-only metadata,
  clip-property, inferred Metadata-panel group, and analysis writeback field
  mapping.
- Added optional `media_analysis.publish_clip_metadata` timed marker writeback
  for slate claps, best moments, and QC warnings.
- Added `tests/live_metadata_field_inventory_validation.py` for disposable
  Resolve validation of metadata inventory behavior.

### Changed

- Bumped version surfaces to `2.22.0`.
- Updated compound tool count to 32 and kernel action count to 136.
- Documented update policy controls, setup defaults, timed marker choices,
  metadata field inventory, and live metadata inventory validation.
- Timed marker writeback now prompts with `yes`, `no`, `default_yes`, and
  `default_no` when no explicit choice or saved default exists.

### Validation

- `venv/bin/python tests/test_import.py`
- `venv/bin/python scripts/audit_api_parity.py`
- `git diff --check`
- `venv/bin/python -m unittest tests.test_media_analysis tests.test_update_check tests.test_media_pool_ingest_probe`
- Live validation via connected MCP server on DaVinci Resolve Studio 20.3.2.9
  with a disposable project and synthetic media only. Verified
  `metadata_field_inventory`, `MediaPool.ExportMetadata()` header comparison,
  default analysis writeback field mapping, and `SetMetadata()` readback for
  analysis and slate fields.

### Notes

- The standalone live metadata inventory harness could not attach to Resolve
  from this shell, so equivalent validation was run through the already
  connected MCP process.
