Add Ableton Live Suite as a macOS FMA - #47058
Conversation
Add Ableton Live Suite to maintained apps and frontend. Creates a homebrew input (ee/maintained-apps/inputs/homebrew/ableton-live-suite.json) and a darwin output (ee/maintained-apps/outputs/ableton-live-suite/darwin.json) with version 12.4.1, installer URL, sha256, and installer/uninstaller script refs. Update apps index (ee/maintained-apps/outputs/apps.json) to include the new app. Add a React SVG icon component and PNG asset, and register the icon in the icons index so the UI displays the new app.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #47058 +/- ##
==========================================
+ Coverage 67.03% 67.07% +0.03%
==========================================
Files 2886 2894 +8
Lines 225155 225220 +65
Branches 11637 11772 +135
==========================================
+ Hits 150938 151061 +123
+ Misses 60544 60474 -70
- Partials 13673 13685 +12
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Add shellSingleQuote helper to safely single-quote shell tokens (escaping embedded apostrophes with the POSIX '\''' idiom) and replace ad-hoc quoted fmt.Sprintf usages across the Homebrew ingester uninstall script generation. This prevents unterminated-quote bash errors for cask paths containing apostrophes (e.g. "Cycling '74"). Includes unit tests (TestShellSingleQuote, TestUninstallScriptEscapesApostrophe) and updates the generated Ableton Live Suite darwin output ref to the new uninstall script.
Script Diff Resultsee/maintained-apps/outputs/ableton-live-suite/darwin.json=== Install Script (no changes) ===
=== Uninstall // cc3a6c65 -> 04a14b48 ===
--- /tmp/old.399vKS 2026-06-08 15:15:47.254354313 +0000
+++ /tmp/new.Gdg5PX 2026-06-08 15:15:47.254354313 +0000
@@ -99,7 +99,7 @@
trash $LOGGED_IN_USER '~/Library/Application Support/CrashReporter/Ableton *_*.plist'
trash $LOGGED_IN_USER '~/Library/Application Support/CrashReporter/Live_*.plist'
trash $LOGGED_IN_USER '~/Library/Application Support/CrashReporter/Max_*.plist'
-trash $LOGGED_IN_USER '~/Library/Application Support/Cycling '74'
+trash $LOGGED_IN_USER '~/Library/Application Support/Cycling '\''74'
trash $LOGGED_IN_USER '~/Library/Caches/Ableton'
trash $LOGGED_IN_USER '~/Library/Preferences/Ableton'
trash $LOGGED_IN_USER '~/Library/Preferences/com.ableton.live.plist*' |
Script Diff Resultsee/maintained-apps/outputs/ableton-live-suite/darwin.json=== Install Script (no changes) ===
=== Uninstall // cc3a6c65 -> 04a14b48 ===
--- /tmp/old.Vezojl 2026-06-08 15:37:33.805555020 +0000
+++ /tmp/new.mYp3Jo 2026-06-08 15:37:33.805555020 +0000
@@ -99,7 +99,7 @@
trash $LOGGED_IN_USER '~/Library/Application Support/CrashReporter/Ableton *_*.plist'
trash $LOGGED_IN_USER '~/Library/Application Support/CrashReporter/Live_*.plist'
trash $LOGGED_IN_USER '~/Library/Application Support/CrashReporter/Max_*.plist'
-trash $LOGGED_IN_USER '~/Library/Application Support/Cycling '74'
+trash $LOGGED_IN_USER '~/Library/Application Support/Cycling '\''74'
trash $LOGGED_IN_USER '~/Library/Caches/Ableton'
trash $LOGGED_IN_USER '~/Library/Preferences/Ableton'
trash $LOGGED_IN_USER '~/Library/Preferences/com.ableton.live.plist*' |
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
There was a problem hiding this comment.
Pull request overview
Adds Ableton Live Suite as a Fleet-maintained macOS app, including the generated Homebrew input/output manifests and UI icon wiring, plus a small improvement to Homebrew uninstall script generation and macOS validation to handle Ableton’s version string format.
Changes:
- Add Ableton Live Suite to maintained apps (Homebrew input + darwin output + apps index entry).
- Add/register a new Software page icon component for Ableton Live Suite.
- Improve Homebrew uninstall script generation by safely single-quoting cask-provided paths (and add tests), and extend darwin validation to accept Ableton’s version “build identifier” suffix.
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| frontend/pages/SoftwarePage/components/icons/index.ts | Registers Ableton icon and maps a software name to that icon. |
| frontend/pages/SoftwarePage/components/icons/AbletonLive12Suite.tsx | Adds the Ableton Live Suite icon component (embedded PNG). |
| ee/maintained-apps/outputs/apps.json | Adds Ableton Live Suite to the maintained apps catalog index. |
| ee/maintained-apps/outputs/ableton-live-suite/darwin.json | Adds the darwin maintained-app manifest (queries + installer URL + scripts + sha256). |
| ee/maintained-apps/inputs/homebrew/ableton-live-suite.json | Adds the Homebrew input definition for Ableton Live Suite. |
| ee/maintained-apps/ingesters/homebrew/scripts.go | Adds shellSingleQuote and applies it to uninstall script generation to handle apostrophes safely. |
| ee/maintained-apps/ingesters/homebrew/scripts_test.go | Adds unit tests for shellSingleQuote and apostrophe handling regression coverage. |
| cmd/maintained-apps/validate/darwin.go | Special-cases Ableton version matching when bundle version includes a build identifier. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "1password": OnePassword, | ||
| "ableton live suite": AbletonLive12Suite, | ||
| abstract: Abstract, |
WalkthroughThis PR adds Ableton Live Suite as a maintained application on macOS with full install/uninstall orchestration. It introduces a Possibly related PRs
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
ee/maintained-apps/ingesters/homebrew/scripts.go (1)
305-307:⚠️ Potential issue | 🟠 Major | ⚡ Quick winMissing escaping in
u.Script.Stringbranch leaves a shell-injection/syntax gap.Line 307 still interpolates
u.Script.Stringvia'%s'instead ofshellSingleQuote(...). A single quote in the script path breaks the command; malicious content can alter shell parsing.Proposed fix
} else if len(u.Script.String) > 0 { addUserVar() - sb.Writef(`(cd /Users/$LOGGED_IN_USER && sudo -u "$LOGGED_IN_USER" '%s')`, u.Script.String) + sb.Writef(`(cd /Users/$LOGGED_IN_USER && sudo -u "$LOGGED_IN_USER" %s)`, shellSingleQuote(u.Script.String)) }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ee/maintained-apps/ingesters/homebrew/scripts.go` around lines 305 - 307, The branch that writes the user script command interpolates u.Script.String directly into sb.Writef, allowing single quotes or injected shell content to break or manipulate the command; update the u.Script.String usage to be escaped via shellSingleQuote(...) before writing (i.e., call shellSingleQuote(u.Script.String) when constructing the argument passed to sb.Writef in the same branch that calls addUserVar), ensuring sb.Writef receives a safely quoted string and preventing shell-injection/syntax issues.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@ee/maintained-apps/ingesters/homebrew/scripts.go`:
- Around line 305-307: The branch that writes the user script command
interpolates u.Script.String directly into sb.Writef, allowing single quotes or
injected shell content to break or manipulate the command; update the
u.Script.String usage to be escaped via shellSingleQuote(...) before writing
(i.e., call shellSingleQuote(u.Script.String) when constructing the argument
passed to sb.Writef in the same branch that calls addUserVar), ensuring
sb.Writef receives a safely quoted string and preventing shell-injection/syntax
issues.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: e753e099-6c2c-4b27-b7f7-96413129c3ab
⛔ Files ignored due to path filters (1)
website/assets/images/app-icon-ableton-live-suite-60x60@2x.pngis excluded by!**/*.png
📒 Files selected for processing (8)
cmd/maintained-apps/validate/darwin.goee/maintained-apps/ingesters/homebrew/scripts.goee/maintained-apps/ingesters/homebrew/scripts_test.goee/maintained-apps/inputs/homebrew/ableton-live-suite.jsonee/maintained-apps/outputs/ableton-live-suite/darwin.jsonee/maintained-apps/outputs/apps.jsonfrontend/pages/SoftwarePage/components/icons/AbletonLive12Suite.tsxfrontend/pages/SoftwarePage/components/icons/index.ts
Add Ableton Live Suite to maintained apps and frontend. Creates a homebrew input (ee/maintained-apps/inputs/homebrew/ableton-live-suite.json) and a darwin output (ee/maintained-apps/outputs/ableton-live-suite/darwin.json) with version 12.4.1, installer URL, sha256, and installer/uninstaller script refs. Update apps index (ee/maintained-apps/outputs/apps.json) to include the new app. Add a React SVG icon component and PNG asset, and register the icon in the icons index so the UI displays the new app.
Summary by CodeRabbit
New Features
Improvements
Tests