Add safe production controls for Live 12 workflows - #119
Open
mateogon wants to merge 7 commits into
Open
Conversation
mateogon
marked this pull request as ready for review
August 3, 2026 13:57
ahujasid
force-pushed
the
main
branch
2 times, most recently
from
August 16, 2026 13:19
46f3be4 to
babc39d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This pull request extends the existing AbletonMCP socket bridge and Remote
Script with the production controls needed to inspect a Live set, make guarded
sound and mixer changes, compare Session variants, and update Arrangement
without introducing a parallel service or generic UI automation.
The main goal is to make mutations fail closed. Positional selectors are paired
with expected names or class names, batch operations perform a complete
preflight before applying changes, and supported mutations return resolved
targets plus previous, requested, and applied state.
What changed
actually available in the running version of Live.
mute, solo, and arm across regular tracks, return tracks, and Main where the
API supports them.
nested racks and chains, continuous parameters, quantized parameters, and
mandatory readback.
available. Note replacement validates the full request, snapshots the prior
notes, rereads and compares the result, and restores the snapshot on failure.
identified Session clip deletion.
explicit track subsets, scene firing, quantized stop-all, and
back-to-Arrangement support.
one strictly identified Arrangement clip.
timeouts.
mcp[cli]==1.4.0and refreshed the lock file so the package cannotsilently upgrade to an incompatible MCP SDK version.
module. New tools use basic telemetry only and do not add parameter, device
path, clip-name, or MIDI-note payloads.
Why
The existing bridge already owned Live mutations, but several common production
tasks still required manual UI control: adjusting bass and lead timbre, changing
device parameters, replacing MIDI notes, preparing A/B scenes, controlling clip
loops, and inserting or removing a test section in Arrangement.
The underlying safety gap was broader than those individual tasks: many targets
were selected by index alone, note writes did not provide transactional
verification, and occupied or ambiguous destinations could not be handled with
a reliable recovery guarantee. This change strengthens those existing owners
instead of adding a second bridge.
Safety behavior
position and expected identity before mutation.
dry_runis available for mutation preflight andoverwritedefaults tofalse.modifying Live.
errors.
Validation
This was validated end to end against Ableton Live 12.2.1, not only with mocks:
127.0.0.1:9877.get_capabilitiescall into Live.and Arrangement.
[MCP TEST]MIDI clips used for replace/read/compare/clear and clipcleanup.
expected occupied-destination and identity-mismatch failures.
deletion of only that clip.
equal to the initial snapshots, with no cleanup errors.
Local checks:
28 passedpy_compileuv lock --checkgit diff --checkDeliberate limitations
provide a recoverable transaction that can guarantee those operations.
empty destination.
generic macOS automation remain out of scope.
Detailed installation, rollback, command, telemetry, and unsupported-operation
notes are included in
docs/production-control-mvp.md.