davinci-resolve-mcp 2.97.0 → 2.97.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  Release history for the DaVinci Resolve MCP Server. The latest release is summarized in the root README; older entries live here to keep the README focused.
4
4
 
5
+ ## What's New in v2.97.1
6
+
7
+ **The control panel honors `media_analysis.inventory_limit` again.** Thanks to
8
+ [@albertfdp](https://github.com/albertfdp) for finding and fixing this
9
+ ([#148](https://github.com/samuelgursky/davinci-resolve-mcp/pull/148)).
10
+
11
+ ### Fixed
12
+
13
+ - **A configurable preference the panel could never reach.** `/api/resolve/media`
14
+ falls back to the `media_analysis.inventory_limit` preference (1–10000,
15
+ default 500) when the request carries no `limit`, and the Preferences pane has
16
+ always let you set it. But `refreshResolveMedia()` — the panel's only caller of
17
+ that endpoint, used for the first load, the manual refresh button, and the
18
+ background poll alike — hardcoded `?limit=500`, so the query param won every
19
+ time and the preference was inert. On a 3015-clip project the Overview panel
20
+ showed the first 500 clips and rendered real Media Pool bins as empty. The
21
+ fetch no longer sends `limit`; the server-side preference applies. Verified
22
+ against a live 3015-clip project: 3015 clips across 32 bins after the fix.
23
+
24
+ This is the silent-lie class again — a setting that round-trips through the
25
+ preferences store, reports itself as saved, and changes nothing observable.
26
+
5
27
  ## What's New in v2.97.0
6
28
 
7
29
  **`timeline_frame(action="capture")` now renders the frame.** v2.96.0 shipped it
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  English | [简体中文](README.zh-CN.md)
4
4
 
5
- [![Version](https://img.shields.io/badge/version-2.97.0-blue.svg)](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
5
+ [![Version](https://img.shields.io/badge/version-2.97.1-blue.svg)](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
6
6
  [![npm](https://img.shields.io/npm/v/davinci-resolve-mcp.svg?label=npm&color=CB3837)](https://www.npmjs.com/package/davinci-resolve-mcp)
7
7
  [![API Coverage](https://img.shields.io/badge/API%20Coverage-100%25-brightgreen.svg)](docs/reference/api-coverage.md)
8
8
  [![Tools](https://img.shields.io/badge/MCP%20Tools-35%20(353%20full)-blue.svg)](#server-modes)
package/README.zh-CN.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [English](README.md) | 简体中文
4
4
 
5
- [![Version](https://img.shields.io/badge/version-2.97.0-blue.svg)](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
5
+ [![Version](https://img.shields.io/badge/version-2.97.1-blue.svg)](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
6
6
  [![npm](https://img.shields.io/npm/v/davinci-resolve-mcp.svg?label=npm&color=CB3837)](https://www.npmjs.com/package/davinci-resolve-mcp)
7
7
  [![API Coverage](https://img.shields.io/badge/API%20Coverage-100%25-brightgreen.svg)](docs/reference/api-coverage.md)
8
8
  [![Tools](https://img.shields.io/badge/MCP%20Tools-35%20(353%20full)-blue.svg)](#服务器模式)
@@ -12,7 +12,7 @@
12
12
  [![Python](https://img.shields.io/badge/python-3.10+-green.svg)](https://www.python.org/downloads/)
13
13
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
14
14
 
15
- > 本翻译对应 v2.97.0 版 README。如与英文原版有出入,以 [英文原版](README.md) 为准。
15
+ > 本翻译对应 v2.97.1 版 README。如与英文原版有出入,以 [英文原版](README.md) 为准。
16
16
 
17
17
  一个 Model Context Protocol (MCP) 服务器,让 AI 助手通过官方脚本 API 控制 DaVinci Resolve Studio(达芬奇)。它提供完整的 API 覆盖,外加带护栏的工作流助手,涵盖剪辑、媒体池整理、渲染设置、审阅标记、调色、Fusion、Fairlight、项目生命周期任务、扩展开发,以及不碰源媒体的媒体分析。
18
18
 
package/install.py CHANGED
@@ -37,7 +37,7 @@ from src.utils.update_check import (
37
37
 
38
38
  # ─── Version ──────────────────────────────────────────────────────────────────
39
39
 
40
- VERSION = "2.97.0"
40
+ VERSION = "2.97.1"
41
41
  # Only hard floor: mcp[cli] requires Python 3.10+. There is no upper bound —
42
42
  # Resolve's scripting bridge loads into newer interpreters on recent builds
43
43
  # (Python 3.14 verified against Resolve Studio 20.3.2). Older Resolve builds
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "davinci-resolve-mcp",
3
- "version": "2.97.0",
3
+ "version": "2.97.1",
4
4
  "description": "NPM bootstrapper for the DaVinci Resolve MCP Server.",
5
5
  "license": "MIT",
6
6
  "author": "Samuel Gursky <samgursky@gmail.com>",
@@ -6621,10 +6621,12 @@ HTML = r"""<!doctype html>
6621
6621
  // probe (the server re-applies only the local analysis overlay); manual /
6622
6622
  // first loads do a full Media Pool walk with a fresh probe. The ETag lets
6623
6623
  // an unchanged poll short-circuit to 304 and skip the table re-render.
6624
- const query = options.silent ? '&probe=0&reuse=1' : '';
6624
+ // No `limit` param: the server applies the media_analysis.inventory_limit
6625
+ // preference, and sending one here would override what the user configured.
6626
+ const query = options.silent ? '?probe=0&reuse=1' : '';
6625
6627
  const headers = {};
6626
6628
  if (state.mediaETag) headers['If-None-Match'] = state.mediaETag;
6627
- const res = await fetch(`/api/resolve/media?limit=500${query}`, { headers, cache: 'no-store' });
6629
+ const res = await fetch(`/api/resolve/media${query}`, { headers, cache: 'no-store' });
6628
6630
  state.mediaLastRefresh = new Date();
6629
6631
  state.resolveMediaStale = false;
6630
6632
  if (res.status === 304) return;
@@ -87,7 +87,7 @@ if not logging.getLogger().handlers:
87
87
  handlers=[logging.StreamHandler()],
88
88
  )
89
89
 
90
- VERSION = "2.97.0"
90
+ VERSION = "2.97.1"
91
91
  logger = logging.getLogger("davinci-resolve-mcp")
92
92
  logger.info(f"Starting DaVinci Resolve MCP Server v{VERSION}")
93
93
  logger.info(f"Detected platform: {get_platform()}")
package/src/server.py CHANGED
@@ -11,7 +11,7 @@ Usage:
11
11
  python src/server.py --full # Start the 353-tool granular server instead
12
12
  """
13
13
 
14
- VERSION = "2.97.0"
14
+ VERSION = "2.97.1"
15
15
 
16
16
  import base64
17
17
  import os