davinci-resolve-mcp 2.224.1 → 2.224.3

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,78 @@
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.224.3 — the Windows import guard covers the advanced server
6
+
7
+ Contributed by @Dev-next-gen (#222). Test-only; no behaviour changed.
8
+
9
+ ### Changed
10
+
11
+ - The static guard added in v2.224.2 fails if a dynamic `import()` is given a
12
+ bare filesystem path — the pattern Node's ESM loader rejects on Windows. It
13
+ covered only `scripts/*.mjs` and `bin/*.mjs`, so a bare-path import added
14
+ under `resolve-advanced/server/` would have passed it, and with CI running
15
+ only on Linux the Windows failure would have stayed invisible there too. It
16
+ now also walks `resolve-advanced/server/` recursively, since the advanced
17
+ server loads modules from its `tools/` subfolder as well.
18
+ - Offenders are reported by their path from the repository root, so a hit in a
19
+ nested file names that file. `node_modules` is skipped.
20
+
21
+ ### Validation
22
+
23
+ - There is nothing under `resolve-advanced/server/` to catch today — every
24
+ dynamic import there passes a string literal — so the widened guard was
25
+ verified against a planted file, reproduced independently here: a probe at
26
+ `resolve-advanced/server/tools/zz_bare_import_probe.mjs` containing
27
+ `await import(path.join(...))` fails it, naming that file and line; with the
28
+ probe removed it passes. Per the contributor, the original
29
+ `scripts/author_interchange.mjs:45` case is still caught against the
30
+ pre-v2.224.2 bridge.
31
+ - Full suite green: 3,485 passed, 1 skipped.
32
+
33
+ ## What's New in v2.224.2 — offline authoring works on Windows
34
+
35
+ Contributed by @Dev-next-gen (#221), found and verified on Windows.
36
+
37
+ ### Fixed
38
+
39
+ - **`timeline(action="author_offline")` failed for every target on Windows
40
+ before writing anything.** The authoring bridge,
41
+ `scripts/author_interchange.mjs`, handed a filesystem path straight to a
42
+ dynamic `import()`. On macOS and Linux that is harmless; on Windows the path
43
+ is `C:\...`, and Node's ESM loader reads the drive letter as a URL scheme
44
+ `c:` and refuses it with `ERR_UNSUPPORTED_ESM_URL_SCHEME`. Because the import
45
+ runs before target validation, even the bridge's own error for an unknown
46
+ target never appeared. The path is now wrapped in `pathToFileURL(...).href`.
47
+ Nothing changes on macOS or Linux.
48
+ - This is the second time the same bug has shipped: the launcher hit it first
49
+ and was fixed the same way in 06d5bd6 (2026-07-15), and the authoring bridge,
50
+ added later, repeated it. CI runs only on Linux, which cannot see it, so it
51
+ stayed green both times.
52
+
53
+ ### Added
54
+
55
+ - **A static guard so it cannot ship a third time.** A new test fails if any
56
+ dynamic `import()` in `scripts/*.mjs` or `bin/*.mjs` is given anything other
57
+ than a string literal or `pathToFileURL(...)`. Checked statically precisely
58
+ because no Linux run can observe the failure. Verified here that it earns its
59
+ place: run against the unfixed bridge it fails naming exactly
60
+ `scripts/author_interchange.mjs:45`, and passes with the fix.
61
+
62
+ ### Validation
63
+
64
+ - Full suite green: 3,485 passed, 1 skipped.
65
+ - A repo-wide scan for non-literal dynamic imports, including
66
+ `resolve-advanced/server/` which the new guard does not cover, found only the
67
+ two launcher imports already fixed in 06d5bd6 and the one fixed here — so the
68
+ fix is complete, not a first instance of several.
69
+ - **Not verified on Windows hardware by this project — there is none here.**
70
+ The Windows failure and the fix were measured by @Dev-next-gen on Python 3.12
71
+ and Node 25: two failures and four errors on main, all eight passing with the
72
+ change. The `.drt` authoring cases additionally need `jszip` from the
73
+ `resolve-advanced` install, which that machine did not have; they now get
74
+ past the import — the only part this touches — and stop at the missing
75
+ module instead.
76
+
5
77
  ## What's New in v2.224.1 — the bridge installer explains the outcome it was built to detect
6
78
 
7
79
  Reported by @hemna (#219). No behaviour changed; the installer writes exactly
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.224.1-blue.svg)](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
5
+ [![Version](https://img.shields.io/badge/version-2.224.3-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-36%20(377%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.224.1-blue.svg)](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
5
+ [![Version](https://img.shields.io/badge/version-2.224.3-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-36%20(377%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.224.1 版 README。如与英文原版有出入,以 [英文原版](README.md) 为准。
15
+ > 本翻译对应 v2.224.3 版 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.224.1"
40
+ VERSION = "2.224.3"
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.224.1",
3
+ "version": "2.224.3",
4
4
  "description": "NPM bootstrapper for the DaVinci Resolve MCP Server.",
5
5
  "license": "MIT",
6
6
  "author": "Samuel Gursky <samgursky@gmail.com>",
@@ -87,7 +87,7 @@ if not logging.getLogger().handlers:
87
87
  handlers=[logging.StreamHandler()],
88
88
  )
89
89
 
90
- VERSION = "2.224.1"
90
+ VERSION = "2.224.3"
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 377-tool granular server instead
12
12
  """
13
13
 
14
- VERSION = "2.224.1"
14
+ VERSION = "2.224.3"
15
15
 
16
16
  import base64
17
17
  import os