Skip to content

fix: keep Glue Compressor out of the compressor wrapper; flag a stale Remote Script in doctor - #132

Merged
6uclz1 merged 3 commits into
mainfrom
fix/glue-compressor-and-stale-remote-script
Oct 24, 2026
Merged

6uclz1 merged 3 commits into
mainfrom
fix/glue-compressor-and-stale-remote-script

Conversation

@6uclz1

@6uclz1 6uclz1 commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

What this changes for you

Glue Compressor no longer breaks the compressor wrapper (#102). The compressor type matched any device whose label contained "compressor", so Glue was detected as compressor. Every effect compressor / master effect compressor call then failed with Missing required standard effect keys for compressor: makeup. Glue has no Makeup parameter, and its Threshold, Ratio and Attack use raw dB and stepped values, so the compressor keys would have the wrong meaning even if they resolved. Glue is now excluded from detection, even when it is renamed (its class_name is GlueCompressor). effect find skips it, and the wrappers report "not a supported effect". Edit Glue with device parameter set-display / select instead. The README says so.

doctor catches a stale Remote Script (#103). A new remote_script_version check compares the version the running Remote Script reports in ping with the CLI version. tests/test_version.py already requires the bundled REMOTE_SCRIPT_VERSION to match that version. If they differ, the check fails with: "Run 'ableton-cli install-remote-script --yes' and restart Ableton Live." Before this, doctor passed and then every ref-based command failed with confusing errors. When the endpoint is unreachable, the check is skipped with a WARN, like the other remote checks. Release automation bumps both versions together, so a script left over from an earlier release is now caught.

#101 (Drift LP Reso → LP Res) was already fixed in #131 and is covered by tests/test_standard_parameter_specs_live12.py. This PR only closes the issue.

Left out of #103 on purpose:

Closes #101, closes #102, closes #103.

Public contract impact

This is an intentional change, with no change to the snapshot. doctor output gains one check, remote_script_version, with cli_version and remote_script_version in its details. A Glue Compressor is no longer reported with detected_type: "compressor". The command surface, envelopes, exit codes and protocol are unchanged.

Update after merging main

Main added a plugins doctor check and a plugin_health argument to run_doctor (#134). The remote_script_version check sits alongside it: the conflict in doctor.py kept both, and this PR's doctor test helper now passes plugin_health. Nothing in this PR touches code that moved into plugins.

After the merge: full pytest 1527 passed, dev_checks / ruff check / ruff format --check pass, the quality harness reports 0 failures (409 warnings), and generate_skill_docs.py produces no diff.

Verification (original)

  • TDD: the new tests in tests/test_effect_detection.py and tests/test_doctor.py failed first (5 failures), then passed.
  • run_doctor went over the quality harness estimated_tokens limit, so I moved the ping-based checks into _remote_checks / _remote_script_version_check.
  • dev_checks, ruff check and ruff format --check pass. Full pytest: 1459 passed. The quality harness exits 0 with 0 failures; warnings went from 416 to 418 because of the new helper functions. generate_skill_docs.py produces no diff.
  • Not checked against a running Ableton Live. A manual check would be: load a Glue Compressor and run effect find, then run doctor against an older installed script.

🤖 Generated with Claude Code

6uclz1 and others added 2 commits October 24, 2026 11:28
…te Script in doctor

Glue Compressor matched the "compressor" label, so every standard compressor
call failed on the missing Makeup key. It is now excluded from detection, even
when renamed, because its parameters use other scales.

doctor now compares the running Remote Script version with the CLI version and
fails with a reinstall hint when they differ.

Closes #101 (fixed in #131), closes #102, closes #103.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nd-stale-remote-script

# Conflicts:
#	src/ableton_cli/doctor.py
@6uclz1

6uclz1 commented Oct 24, 2026

Copy link
Copy Markdown
Owner Author

Checked in Live 12 Suite

This is a local, unpushed merge of this branch with #133. I installed its Remote Script with install-remote-script --yes and started Live fresh.

doctor remote_script_version check

  • I edited the installed copy's REMOTE_SCRIPT_VERSION to 0.4.9, since every saved backup is also 0.5.0. Doctor then fails remote_script_version with cli_version: 0.5.0, remote_script_version: 0.4.9 and the "Run 'ableton-cli install-remote-script --yes' and restart Ableton Live." hint.
  • I restored the version to 0.5.0 and restarted Live. The check passes.

Glue Compressor (track 3-Audio: Glue Compressor at device 0, Compressor at device 1)

  • effect find --track 2 lists only the Compressor (class_name: Compressor2, detected_type: compressor). Glue is skipped.
  • On Glue, effect compressor set --parameter-key ratio and observe both fail with INVALID_ARGUMENT: "Device is not a supported effect".
  • On the Compressor, effect compressor set 0.5 --parameter-key ratio works: 0.75 → 0.5.
  • The README's workaround works: device parameter set-display --parameter-name Threshold -- -20 on Glue reads back -20.

Not checked: the renamed-Glue case. The CLI has no device rename, so it is covered only by the unit test on class_name.

🤖 Generated with Claude Code

@6uclz1
6uclz1 merged commit 86c9822 into main Oct 24, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment