Skip to content

v0.3.0 — subtitle / config.toml / MCP HTTP / WI research

Latest

Choose a tag to compare

@Poechant Poechant released this 03 Jun 06:56

[0.3.0] - 2026-05-22

First minor since v0.2; four new capability areas, no breaking changes for v0.2 users.

Added

  • subtitle command domaindvr subtitle import <path.srt|.vtt> writes
    subtitle cues to the active timeline's subtitle track; dvr subtitle export --output <path> reads them back. Format inferred from the suffix; unsupported
    extensions (.ass, .ssa, .fcpxml, …) return validation_error with the
    supported list. Pure-function parsers / serializers in src/dvr/subtitle.py.
  • config command domain + ~/.dvr/config.toml / <cwd>/.dvr/config.toml
    TOML-driven defaults merged with precedence CLI flag > project > user > built-in. dvr config show returns effective values with a per-field source
    map; dvr config init drops a commented sample. First default fields:
    output_format / bin / preset / marker_color / marker_duration. dvr render submit now accepts a missing --preset when defaults.preset is set in
    config. dvr doctor reports the config layer's path & existence.
  • MCP HTTP/SSE transportdvr mcp --http [--port 50421] [--host 127.0.0.1]
    starts a Starlette ASGI app over uvicorn, with a per-process bearer token
    printed once to stdout. All requests must carry Authorization: Bearer <token>; missing / wrong → 401. Binding to a non-loopback host emits a
    SECURITY WARNING on stderr. stdio MCP path is unchanged (v0.2 users keep
    working).
  • New MCP toolssubtitle.import, subtitle.export, config.show
    (23 tools total).

Documentation

  • README "Configuration" section between Cookbook and Troubleshooting.
  • Capabilities at a glance table extended with subtitle and config rows.
  • examples/with-config.sh — sixth runnable recipe demonstrating a
    project-local config.toml pinning defaults.
  • docs/wi-research.md — full audit of Resolve's scripting surface for a
    razor-cut / clip-move primitive. Conclusion: none exists; timeline cut and
    timeline move remain honest placeholders until Resolve ships a public API.
    WI plumbing stays in place so the eventual landing is a small server.js change.

Tests

  • 267 unit tests (was 203 at v0.2.9). +40 subtitle parser/serializer/command,
    +12 config, +11 mcp-http, +1 doctor config section.

Deferred to v0.4+

  • timeline cut / timeline move actual razor-cut and clip-move behavior
    (gated on Resolve exposing the primitives).
  • Subtitle export of richer item metadata (currently emits one cue per
    subtitle-track item).
  • mTLS for MCP HTTP transport.