fix(system): remove brew cli proxying#10381
Conversation
📝 WalkthroughWalkthroughThis PR removes custom Homebrew tap support and restricts ChangesRestrict Brew to Core and Remove Custom Taps
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
Greptile SummaryThis PR removes the previous
Confidence Score: 4/5Safe to merge for users with homebrew/core-only configs; users who have tapped formulae alongside core formulae in the same [system.packages] block will find that core installs are blocked too. In both install and upgrade, bail_unsupported_taps fires before the core-formula path runs, so a config mixing brew:jq with brew:owner/tap/pkg fails to install jq at all. src/system/packages/brew/mod.rs — the install/upgrade ordering means tapped formulae block core formulae from being processed. Important Files Changed
Reviews (2): Last reviewed commit: "fix(system): remove brew cli proxying" | Re-trigger Greptile |
Hyperfine Performance
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.6.5 x -- echo |
18.0 ± 0.7 | 16.6 | 21.1 | 1.00 |
mise x -- echo |
18.7 ± 1.4 | 17.1 | 42.1 | 1.04 ± 0.09 |
mise env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.6.5 env |
18.2 ± 0.9 | 16.3 | 22.9 | 1.00 |
mise env |
18.5 ± 0.8 | 16.8 | 22.8 | 1.02 ± 0.06 |
mise hook-env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.6.5 hook-env |
18.6 ± 0.7 | 16.9 | 22.5 | 1.00 |
mise hook-env |
19.2 ± 0.7 | 17.7 | 23.0 | 1.03 ± 0.06 |
mise ls
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.6.5 ls |
15.0 ± 0.6 | 13.6 | 17.6 | 1.00 |
mise ls |
15.7 ± 0.7 | 14.2 | 18.9 | 1.04 ± 0.06 |
xtasks/test/perf
| Command | mise-2026.6.5 | mise | Variance |
|---|---|---|---|
| install (cached) | 132ms | 132ms | +0% |
| ls (cached) | 59ms | 59ms | +0% |
| bin-paths (cached) | 62ms | 63ms | -1% |
| task-ls (cached) | 125ms | 127ms | -1% |
3bd88a5 to
b7415a3
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit b7415a3. Configure here.
| self.install_via_pour(&core, opts).await?; | ||
| } | ||
| self.upgrade_via_brew(&tapped, opts).await | ||
| Ok(()) |
There was a problem hiding this comment.
Tapped brew blocks core installs
Medium Severity
When one brew install or upgrade batch mixes third-party tap formulae with homebrew/core packages, bail_unsupported_taps fails the entire brew manager call before any core pour runs, so valid core packages in the same config or CLI invocation never install or upgrade.
Reviewed by Cursor Bugbot for commit b7415a3. Configure here.
|
Closing this PR because its scope drifted in the wrong direction. I will replace it with a single PR that implements direct tap and cask support without proxying to the brew CLI.\n\nThis comment was generated by an AI coding assistant. |
| @@ -299,13 +259,13 @@ impl SystemPackageManager for BrewManager { | |||
| .collect::<Vec<_>>(); | |||
| self.install_via_pour(&core, opts).await?; | |||
| } | |||
| self.install_via_brew(&tapped, opts).await | |||
| Ok(()) | |||
| } | |||
There was a problem hiding this comment.
Tapped-formula error blocks core-formula install in mixed configs
bail_unsupported_taps is called before core formulae are processed. A config containing both "brew:jq" = "latest" and "brew:owner/tap/formula" = "latest" will fail entirely — jq never gets installed — because the bail for the tapped formula short-circuits the core path. The same ordering issue exists in upgrade. Processing core formulae first (or skipping/warning on unsupported tapped ones) would avoid leaving a machine in a half-installed state.


Summary
mise system brew tap/untap, which proxied to the Homebrew CLIbrewbrewValidation
cargo fmt --all -- --checkcargo check --all-featuresmise run render:usagemise run test:e2e cli/test_system_statusmise run test:unit test_parse_use_specmise run test:unit test_brew_tap_namemise run test:unit test_system_packagesgit diff --checkThis PR was generated by an AI coding assistant.
Summary by CodeRabbit
Breaking Changes
mise system brew tapandmise system brew untapcommands.New Features
brew-caskas a package manager option formise system installandmise system upgrade.Documentation