Skip to content

feat: prepare QLab MCP 0.4.0 with gated workspace authoring - #18

Merged
MarcheKEN merged 9 commits into
mainfrom
codex/cue-editing-tools
Oct 17, 2026
Merged

MarcheKEN merged 9 commits into
mainfrom
codex/cue-editing-tools

Conversation

@MarcheKEN

@MarcheKEN MarcheKEN commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner

The development branch expands from 48 to 79 MCP tools, replacing generic cue and workspace-settings edits with typed editors. It also adds guarded root Cue List/Cart operations, local workspace document operations, optional audio analysis and media discovery, font/Video FX catalogues, and fixed local native cue fields and Triggers.

Version 0.4.0

Final verification: GitHub Actions CI passed on ae94bd8 (locked installation, test suite, lockfile and wheel/sdist builds). The branch has no merge conflicts and the local checkout is clean.

Commit ae94bd8 aligns package metadata, module version, MCP initialization, lockfile, packaging expectations, README, user guide, architecture, current state, roadmap and changelog at 0.4.0. Dependencies and all 79 tool definitions are unchanged. Wheel/sdist metadata and source MCP initialization report 0.4.0. Dated 0.3.0 records and historical filenames retain their original version; they are not current release instructions. No tag or GitHub Release is published by this PR update.

Final documentation review and installed-MCP acceptance — 2026-10-17

Commit 067afed updates documentation only. It fixes stale blanket exclusions of native MIDI/Wall Clock configuration and guarded activation, documents the FX page limit and Timecode string types, and links the latest evidence from current state, roadmap and development indexes. Historical observations and imported sources remain preserved.

  • GitHub Actions CI passed on the final documentation commit 067afed (tests, locked environment, lockfile and release artifact builds).
  • Documentation checks: 1,483 relative links, 101 current-guide section links, 18 JSON examples parsed, and both 79-tool catalogues reconciled with the current registry. 145 focused tests passed; the 79 complete tool definitions remain unchanged.
  • Installed QLab 5.5.10: all 79 tools invoked, 26 of 30 writers executed with fresh readback; 29 Query filters, eight generic detail profiles, technical/native reads, 60-effect catalogue pagination and audio continuation exercised. This is representative coverage, not every parameter combination or playback acceptance.
  • Cleanup: all 24 temporary cues removed; all 493 baseline structural rows and root order matched, edited pre-existing values restored, zero active cues. The already-dirty workspace was not saved or closed. Selection became empty and was not restored.
  • Limits/incidents: root creation preview only; Save preview only; dirty Close/nonempty Open blocked. One transient Script permission failure recovered through fresh readiness and a new preview. Four configured Video routes reported disconnected; search reached its entry cap. These observations are retained rather than classified as universal success.

Runtime acceptance report · Final documentation review

Changes

  • Use family-specific cue editors with exact UUIDs, readiness checks, explicit dry runs, short-lived single-use confirmations and fresh readback. Keep unsupported properties blocked and avoid automatic mutation retries.
  • Add scoped General, Audio output patch and Video stage/route/region editing, root list creation/editing/reordering, and local document inventory/open/save/clean-close.
  • Add opt-in native Trigger reads and bounded configuration through existing editors. Load Time and Target assigned number use fixed local AppleScript; no arbitrary scripts are accepted.
  • Add bounded, paginated optional audio analysis, consent-based media discovery, fonts and documented Video FX metadata. Preserve read-cache freshness and OSC acknowledgement handling.
  • Replace retired writer modules/tests with typed implementations and regression coverage. Align user workflows, security boundaries and project-local authoring guidance. Anonymize historical reports and translate authored documentation to English; original captures stay outside the repository.
  • Redact JSON-quoted confirmation tokens in the evidence capture script. Keep NumPy-dependent tests optional in the base development environment.

Compatibility

qlab_edit_cues and qlab_edit_workspace_settings are removed. Callers must migrate to the corresponding cue-family editors and scoped workspace-settings tools. The old QLAB_ALLOWED_FILE_ROOTS configuration is removed; local media access requires conversational consent. This PR prepares version 0.4.0 (unreleased).

Validation

  • GitHub Actions CI passed on 17aa6f2: 1,886 passed, 43 skipped, 61 subtests passed on Ubuntu/Python 3.11; locked installation, lockfile verification and release artifact builds all passed.
  • Clean Python 3.11 environment using the locked, non-editable dev installation: 1,893 passed, 36 skipped, 61 subtests passed.
  • Existing environment with optional audio Python dependencies: 1,883 passed, 35 skipped, 61 subtests passed before the 11 additional capture regressions; the NumPy timeout regression and all 11 capture cases passed separately.
  • uv lock --check, wheel/sdist builds and FastMCP CLI inspection passed. The actual registry exposes 79 tools: 49 reads and 30 gated writes.
  • Independent review of high-risk write/native/document paths and the two precommit corrections found no concrete blocker. This was a scoped review, not exhaustive proof of every possible behavior.
  • Historical QLab 5.5.10 runtime reports retain their dated evidence boundaries. Current read-only MCP checks reached an open workspace and read a bounded overview; this precommit work made no new QLab writes or playback calls.

Remaining boundaries

The earlier precommit shell lacked FFmpeg/ffprobe, so those local integration tests were skipped. The later installed-MCP session below successfully analyzed an authorized MP3; it does not change the earlier test environment. Playback and physical output remain unvalidated. Later native field writes are recorded below; document Open/Save/Close events remain unexecuted. Cart Move execution, unattended root deletion and the documented Text/FX/native Trigger capability gates remain restricted as described in the tools and reports. No release or merge is requested.

Documentation refresh — 2026-10-17

Commit 11b3040 reconciles canonical guidance with current source and all 79 tools: native document Open preflight, full-inventory privacy, scoped file consent, transport/deadline/cache behavior, typed writer limits and API migration. The current roadmap/workorders now distinguish remaining runtime cases from already recorded clock/fade/mute proof. Historical phase plans are archived and dated records link to current guidance.

Adds setup/troubleshooting and research/runtime/review/plan indexes. Original reference/transcript/source bytes, captured JSON and image evidence remain unchanged. Python changes are instruction text and docstrings only; normalized executable AST matches the previous implementation.

Local verification: 1,894 tests and 61 subtests passed, 35 skipped; 79-tool inventory (49 reads/30 writes); 931 relative destinations and 99 current-guide section links resolve; lockfile and wheel/sdist builds pass. Independent documentation/source review found no blocker. No new live QLab events, playback or hardware acceptance is claimed.

Behavior-preserving cleanup — 2026-10-17

Commit 9a346bc reuses existing reader normalization and inherited cue fields, combines equivalent settings/creation branches and removes unreachable handling. Seven source modules lose 62 net lines; 48 regression cases preserve coercions, falsey values, metadata priority, errors and dispatch arguments. Security gates and OSC call ordering remain unchanged.

Validation: 1,942 tests and 61 subtests passed, 35 skipped; exact parity of all 79 MCP tool definitions and eight affected model schemas/field definitions/order; lockfile and wheel/sdist builds passed. Independent final review found no blocker. The dated review records scope and limits. No new live QLab, playback or hardware validation is claimed.

@MarcheKEN MarcheKEN changed the title fix: restore cue deletion and fresh structural verification fix: support and validate fifty cue moves and deletes Sep 27, 2026
Replace generic edits with typed cue and workspace tools, add guarded
native/document operations and optional bounded media analysis, and
align regression coverage and public documentation.

BREAKING CHANGE: replace qlab_edit_cues and qlab_edit_workspace_settings
with typed family and scoped workspace editors.
@MarcheKEN MarcheKEN changed the title fix: support and validate fifty cue moves and deletes feat: expand gated cue editing and workspace authoring Oct 15, 2026
@MarcheKEN
MarcheKEN marked this pull request as ready for review October 15, 2026 18:47
@MarcheKEN MarcheKEN changed the title feat: expand gated cue editing and workspace authoring feat: prepare QLab MCP 0.4.0 with gated workspace authoring Oct 17, 2026
@MarcheKEN
MarcheKEN merged commit 396938a into main Oct 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant