Skip to content

Commit 485091e

Browse files
committed
chore(release): bump version to 2.69.2
1 parent 3784ae5 commit 485091e

7 files changed

Lines changed: 86 additions & 7 deletions

File tree

.github/workflows/npm-publish.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,16 @@ jobs:
3535
# tool action lists in sync with dispatch, control-panel guide in
3636
# sync with the panel's navigation and screenshots, the
3737
# Blackmagic-facing api-limitations.md in sync with the api_truth ledger,
38-
# and the tool counts quoted across the docs in sync with reality.
38+
# the tool counts quoted across the docs in sync with reality, and the
39+
# mcp[cli] cap that keeps a fresh install working (issue #103).
40+
#
41+
# tests.test_import is listed here as well as in the smoke step above:
42+
# that step runs the module's run_all(), which only picks up bare
43+
# test_-prefixed functions, so a TestCase in the same file would
44+
# otherwise never run in CI.
3945
run: |
4046
pip install pyflakes
41-
python -m unittest tests.test_static_undefined_names tests.test_action_list_drift tests.test_panel_docs_drift tests.test_api_limitations_doc tests.test_doc_tool_counts
47+
python -m unittest tests.test_static_undefined_names tests.test_action_list_drift tests.test_panel_docs_drift tests.test_api_limitations_doc tests.test_doc_tool_counts tests.test_import
4248
4349
- name: Run Node CLI smoke tests
4450
run: |

CHANGELOG.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,79 @@
22

33
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.
44

5+
## What's New in v2.69.2
6+
7+
Community bug-fix bundle: #100, #101 and #102, plus the installer half of #104.
8+
The headline is that a fresh clone had stopped working entirely.
9+
10+
### Fixed
11+
12+
- **A fresh install produced a server that could not start** (issue #103, PR
13+
#101 by @Mastaish). `install.py` installed `mcp[cli]` with no upper bound, and
14+
the MCP Python SDK published 2.0.0 — which restructured the package and
15+
dropped `mcp.server.fastmcp`, the module `src/server.py` imports. Every clone
16+
after that release died at import, surfacing to the user as nothing more
17+
informative than "Server disconnected".
18+
19+
The contributed fix caps the SDK in `requirements.txt`, which `install.py`
20+
installs second. That works, but the unpinned first call still downloads 2.x
21+
and its `httpx2` tree before downgrading it, and the fix evaporates silently
22+
if the install order ever changes — so the cap is now on the `pip install`
23+
call as well. `McpSdkPinTest` guards both sites, reading the actual string
24+
literals rather than matching text: `install.py` discusses `mcp[cli]` in prose
25+
too, and a first cut of that guard was satisfied by a comment. It is
26+
conditional on `server.py` still importing `mcp.server.fastmcp`, so it retires
27+
itself when the server is ported to the 2.x layout instead of blocking it.
28+
29+
- **The Advanced (Node) suite was not running at all on Node 20+** (PR #102 by
30+
@double2tea). `node --test` resolves a bare directory argument as a module
31+
entry point on Node 20 and later, so the suite exited with `MODULE_NOT_FOUND`
32+
at 4 failures and 0 passes — a shape that reads more like a broken checkout
33+
than 731 skipped tests. Explicit test-file globs restore the full run on 18,
34+
20 and 22 alike.
35+
36+
- **`RESOLVE_SCRIPT_API` / `RESOLVE_SCRIPT_LIB` were silently overwritten** (PR
37+
#100 by @abbc400). `get_resolve_paths()` returned only platform defaults, and
38+
`src/server.py` writes those straight back into `os.environ` — so a client
39+
that had correctly pointed at a Resolve installed outside `/Applications` had
40+
its setting discarded at import. Every other signal looked healthy (Resolve
41+
running, external scripting Local, `fuscript` listening) while `scriptapp()`
42+
returned `None`. The override now wins, but only when the path exists, so a
43+
stale variable cannot shadow a working default install.
44+
45+
- **The bridge installer wrote to a tree Resolve did not read** (issue #104,
46+
reported by @RananjayRaj). Which script tree the free App Store build scans is
47+
not decidable from outside Resolve: this installer was measured on a machine
48+
where the documented Blackmagic Design tree listed, and #104 reports the exact
49+
opposite on the same 21.0.3.7 build — the documented tree listed nothing, not
50+
even the Lua canary (which rules out the framework-Python explanation and
51+
points at the folder), while the Fusion standalone tree listed everything with
52+
no restart.
53+
54+
Rather than pick a winner from two contradictory measurements, both container
55+
trees now receive the files, documented path first. This stays inside the
56+
sandbox: outside a container that path really is Fusion's own tree and is
57+
still not targeted.
58+
59+
- **`--probe-only` reported success on a machine with no Resolve installed**
60+
(also #104). A container outlives the app that created it, and the container's
61+
existence is precisely what makes the installer target it — so a stale
62+
container from an uninstalled Resolve produced a clean success listing files
63+
that had genuinely been written and would never be read. The installer now
64+
warns when no app bundle can be found, honoring `RESOLVE_APP` as
65+
`scripts/doctor.py` already does. It warns rather than refuses: not every
66+
legitimate install location can be enumerated, and refusing wrongly would
67+
block a working install.
68+
69+
### Validation
70+
71+
- Offline suite 2237 → 2247 (six new installer-target tests, one pin guard).
72+
Advanced Node suite 731 tests / 701 pass on Node 18.
73+
- The new guards were verified to fail against the pre-fix code, not merely to
74+
pass against the fix.
75+
- No DaVinci Resolve scripting behavior changed; the path-resolution change is
76+
env-var-gated with defaults unchanged. Live Resolve validation not required.
77+
578
## What's New in v2.69.1
679

780
Bug fix. The Studio bridge differential no longer reports the Deliver page its

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# DaVinci Resolve MCP Server
22

3-
[![Version](https://img.shields.io/badge/version-2.69.1-blue.svg)](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
3+
[![Version](https://img.shields.io/badge/version-2.69.2-blue.svg)](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
44
[![npm](https://img.shields.io/npm/v/davinci-resolve-mcp.svg?label=npm&color=CB3837)](https://www.npmjs.com/package/davinci-resolve-mcp)
55
[![API Coverage](https://img.shields.io/badge/API%20Coverage-100%25-brightgreen.svg)](docs/reference/api-coverage.md)
66
[![Tools](https://img.shields.io/badge/MCP%20Tools-34%20(341%20full)-blue.svg)](#server-modes)

install.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
# ─── Version ──────────────────────────────────────────────────────────────────
3838

39-
VERSION = "2.69.1"
39+
VERSION = "2.69.2"
4040
# Only hard floor: mcp[cli] requires Python 3.10+. There is no upper bound —
4141
# Resolve's scripting bridge loads into newer interpreters on recent builds
4242
# (Python 3.14 verified against Resolve Studio 20.3.2). Older Resolve builds

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "davinci-resolve-mcp",
3-
"version": "2.69.1",
3+
"version": "2.69.2",
44
"description": "NPM bootstrapper for the DaVinci Resolve MCP Server.",
55
"license": "MIT",
66
"author": "Samuel Gursky <samgursky@gmail.com>",

src/granular/common.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
handlers=[logging.StreamHandler()],
8686
)
8787

88-
VERSION = "2.69.1"
88+
VERSION = "2.69.2"
8989
logger = logging.getLogger("davinci-resolve-mcp")
9090
logger.info(f"Starting DaVinci Resolve MCP Server v{VERSION}")
9191
logger.info(f"Detected platform: {get_platform()}")

src/server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
python src/server.py --full # Start the 341-tool granular server instead
1212
"""
1313

14-
VERSION = "2.69.1"
14+
VERSION = "2.69.2"
1515

1616
import base64
1717
import os

0 commit comments

Comments
 (0)