davinci-resolve-mcp 2.216.0 → 2.216.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 +24 -0
- package/README.md +1 -1
- package/README.zh-CN.md +2 -2
- package/docs/reference/api-limitations.md +9 -1
- package/install.py +1 -1
- package/package.json +1 -1
- package/src/granular/common.py +1 -1
- package/src/server.py +1 -1
- package/src/utils/api_truth.py +31 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
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.216.1 — ValidateDCTL's layout sensitivity is in the API ledger
|
|
6
|
+
|
|
7
|
+
### Documentation
|
|
8
|
+
|
|
9
|
+
- **`Resolve.ValidateDCTL` (21.1+) misreads a one-line function.** Reported
|
|
10
|
+
by @legionsound on #207 from Studio 21.1.0.14: a minimal identity transform
|
|
11
|
+
laid out across lines validates (`None`, the documented success), while the
|
|
12
|
+
same function on a single line consistently returns "main DCTL function does
|
|
13
|
+
not have return value" — false, the return is there — and a truly invalid
|
|
14
|
+
source returns "cannot find main DCTL function", so the validator does
|
|
15
|
+
discriminate; it is the single-line layout it misparses. An earlier
|
|
16
|
+
multi-line timeout did not reproduce after a restart. Recorded as a reported
|
|
17
|
+
entry (not reproduced here, no 21.1 install) with the rule for any future
|
|
18
|
+
wrapper: pass the native diagnostic through verbatim, never reflow the
|
|
19
|
+
user's source to dodge it, and keep the multi-line identity fixture as the
|
|
20
|
+
control. This server's own `dctl validate` is a static offline check and
|
|
21
|
+
does not call `ValidateDCTL`. `docs/reference/api-limitations.md`
|
|
22
|
+
regenerated (52 bugs / unreliable behaviors).
|
|
23
|
+
|
|
24
|
+
### Validation
|
|
25
|
+
|
|
26
|
+
- Ledger and limitations-doc guards, full offline suite, drift guards and the
|
|
27
|
+
advanced Node suite. Documentation only; no Resolve behavior changed.
|
|
28
|
+
|
|
5
29
|
## What's New in v2.216.0 — twelve Resolve 21.1 read-only controls, in both server modes
|
|
6
30
|
|
|
7
31
|
Contributed by @legionsound (#206), live-measured on Studio 21.1.0.14.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
English | [简体中文](README.zh-CN.md)
|
|
4
4
|
|
|
5
|
-
[](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
|
|
6
6
|
[](https://www.npmjs.com/package/davinci-resolve-mcp)
|
|
7
7
|
[](docs/reference/api-coverage.md)
|
|
8
8
|
[-blue.svg)](#server-modes)
|
package/README.zh-CN.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) | 简体中文
|
|
4
4
|
|
|
5
|
-
[](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
|
|
6
6
|
[](https://www.npmjs.com/package/davinci-resolve-mcp)
|
|
7
7
|
[](docs/reference/api-coverage.md)
|
|
8
8
|
[-blue.svg)](#服务器模式)
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
[](https://www.python.org/downloads/)
|
|
13
13
|
[](https://opensource.org/licenses/MIT)
|
|
14
14
|
|
|
15
|
-
> 本翻译对应 v2.216.
|
|
15
|
+
> 本翻译对应 v2.216.1 版 README。如与英文原版有出入,以 [英文原版](README.md) 为准。
|
|
16
16
|
|
|
17
17
|
一个 Model Context Protocol (MCP) 服务器,让 AI 助手通过官方脚本 API 控制 DaVinci Resolve Studio(达芬奇)。它提供完整的 API 覆盖,外加带护栏的工作流助手,涵盖剪辑、媒体池整理、渲染设置、审阅标记、调色、Fusion、Fairlight、项目生命周期任务、扩展开发,以及不碰源媒体的媒体分析。
|
|
18
18
|
|
|
@@ -12,7 +12,7 @@ that none exists).
|
|
|
12
12
|
|
|
13
13
|
**Verified on:** DaVinci Resolve Studio 21.0.2
|
|
14
14
|
|
|
15
|
-
**Totals:** 41 missing capabilities,
|
|
15
|
+
**Totals:** 41 missing capabilities, 52 bugs / unreliable behaviors.
|
|
16
16
|
|
|
17
17
|
The authoritative source is the runtime-queryable `api_truth` ledger
|
|
18
18
|
(`resolve_control api_truth "<query>"`); this document is generated from
|
|
@@ -760,3 +760,11 @@ values, or automation-hostile modal prompts.
|
|
|
760
760
|
- **Behavior:** On Studio 19.1.3.7 the subtitle-delivery keys documented in the Resolve 21 API reference are accepted and fully inert: SetRenderSettings returns True for all three SubtitleFormat modes ('BurnIn', 'SeparateFile', 'EmbeddedCaptions'), and the renders carry no burned-in pixels (frame-extract verified), no sidecar subtitle file, and no embedded caption track (stream-probe verified) — with the subtitle cues readback-verified on the timeline and the subtitle track enabled. Quirk: ExportSubtitle alone returns False; the pair returns True. All three outputs are stream-identical to a no-subtitle render.
|
|
761
761
|
- **Workaround / current handling:** Do not trust a True return for subtitle delivery on a pre-21 host — verify the output (extract a frame for burn-in, list the target directory for a sidecar, ffprobe streams for embedded captions). On 19.x subtitle export requires the UI render page. render.set_settings warns when these keys are set on a pre-21 host.
|
|
762
762
|
- **Tags:** render, subtitle, burn-in, silent-failure, version-gated
|
|
763
|
+
|
|
764
|
+
### Resolve.ValidateDCTL is sensitive to source layout
|
|
765
|
+
|
|
766
|
+
- **Object:** `Resolve`
|
|
767
|
+
- **Signature:** `(dctlSource) -> str | None (21.1+)`
|
|
768
|
+
- **Behavior:** Reported by @legionsound (issue #207) from Studio 21.1.0.14 on macOS; NOT reproduced here (no 21.1 install). The documented success result is None. A minimal identity transform written across several lines — `__DEVICE__ float3 transform(...)` with the body on its own lines — validates (None). The SAME function collapsed onto one line consistently returns 'DCTL Error: main DCTL function does not have return value.', which is false: the return statement is there. A genuinely invalid source returns 'cannot find main DCTL function.', so the validator does distinguish; it is the single-line layout it misreads. An earlier multi-line timeout did not reproduce after a Resolve restart with a 30-second limit. Nothing establishes a GPU compiler or render defect — this is the validator's parse, not the DCTL's execution. EncryptDCTL untested.
|
|
769
|
+
- **Workaround / current handling:** Any wrapper around ValidateDCTL must pass the native diagnostic through verbatim and must not reflow or rewrite the user's source to dodge it; ship the multi-line identity fixture as the known-good control. A 'no return value' error on a one-line function is this quirk, not a missing return — re-run the validation with the function laid out across lines before believing it. This server's own `dctl validate` is a static, offline check (entry point, brace balance, float suffixes) and does not call ValidateDCTL at all.
|
|
770
|
+
- **Tags:** dctl, validation, unreliable-return, version-gated, reported
|
package/install.py
CHANGED
|
@@ -37,7 +37,7 @@ from src.utils.update_check import (
|
|
|
37
37
|
|
|
38
38
|
# ─── Version ──────────────────────────────────────────────────────────────────
|
|
39
39
|
|
|
40
|
-
VERSION = "2.216.
|
|
40
|
+
VERSION = "2.216.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
package/src/granular/common.py
CHANGED
|
@@ -87,7 +87,7 @@ if not logging.getLogger().handlers:
|
|
|
87
87
|
handlers=[logging.StreamHandler()],
|
|
88
88
|
)
|
|
89
89
|
|
|
90
|
-
VERSION = "2.216.
|
|
90
|
+
VERSION = "2.216.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
package/src/utils/api_truth.py
CHANGED
|
@@ -3207,6 +3207,37 @@ API_TRUTH: List[Dict[str, Any]] = [
|
|
|
3207
3207
|
"submit": "bug",
|
|
3208
3208
|
"mitigation": ["render.set_settings warnings"],
|
|
3209
3209
|
},
|
|
3210
|
+
{
|
|
3211
|
+
"symbol": "Resolve.ValidateDCTL is sensitive to source layout",
|
|
3212
|
+
"object": "Resolve",
|
|
3213
|
+
"signature": "(dctlSource) -> str | None (21.1+)",
|
|
3214
|
+
"reality": "Reported by @legionsound (issue #207) from Studio 21.1.0.14 on "
|
|
3215
|
+
"macOS; NOT reproduced here (no 21.1 install). The documented "
|
|
3216
|
+
"success result is None. A minimal identity transform written "
|
|
3217
|
+
"across several lines — `__DEVICE__ float3 transform(...)` with "
|
|
3218
|
+
"the body on its own lines — validates (None). The SAME function "
|
|
3219
|
+
"collapsed onto one line consistently returns 'DCTL Error: main "
|
|
3220
|
+
"DCTL function does not have return value.', which is false: the "
|
|
3221
|
+
"return statement is there. A genuinely invalid source returns "
|
|
3222
|
+
"'cannot find main DCTL function.', so the validator does "
|
|
3223
|
+
"distinguish; it is the single-line layout it misreads. An "
|
|
3224
|
+
"earlier multi-line timeout did not reproduce after a Resolve "
|
|
3225
|
+
"restart with a 30-second limit. Nothing establishes a GPU "
|
|
3226
|
+
"compiler or render defect — this is the validator's parse, not "
|
|
3227
|
+
"the DCTL's execution. EncryptDCTL untested.",
|
|
3228
|
+
"recommended": "Any wrapper around ValidateDCTL must pass the native "
|
|
3229
|
+
"diagnostic through verbatim and must not reflow or rewrite "
|
|
3230
|
+
"the user's source to dodge it; ship the multi-line identity "
|
|
3231
|
+
"fixture as the known-good control. A 'no return value' "
|
|
3232
|
+
"error on a one-line function is this quirk, not a missing "
|
|
3233
|
+
"return — re-run the validation with the function laid out "
|
|
3234
|
+
"across lines before believing it. This server's own "
|
|
3235
|
+
"`dctl validate` is a static, offline check (entry point, "
|
|
3236
|
+
"brace balance, float suffixes) and does not call "
|
|
3237
|
+
"ValidateDCTL at all.",
|
|
3238
|
+
"tags": ["dctl", "validation", "unreliable-return", "version-gated", "reported"],
|
|
3239
|
+
"submit": "bug",
|
|
3240
|
+
},
|
|
3210
3241
|
]
|
|
3211
3242
|
|
|
3212
3243
|
|