From 741f9572b7798f22c7be9723d47c9dcb3dc2bbcb Mon Sep 17 00:00:00 2001 From: maxsoch Date: Mon, 6 Jul 2026 22:16:22 +0200 Subject: [PATCH] fix: Upgrade All must pass --greedy when greedy listing is on --greedy exists on both brew commands: outdated --greedy lists self-updating casks, upgrade --greedy actually upgrades them (plain upgrade skips them, per brew's own help). The listing and auto-upgrade paths had the flag but manual Upgrade All didn't, so greedy-listed casks would survive Upgrade All and reappear as outdated forever. Single-package upgrades don't need it: brew upgrades an explicitly named cask even when it self-updates. Co-Authored-By: Claude Fable 5 --- BrewBar/BrewBarApp.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/BrewBar/BrewBarApp.swift b/BrewBar/BrewBarApp.swift index df5552f..3024413 100644 --- a/BrewBar/BrewBarApp.swift +++ b/BrewBar/BrewBarApp.swift @@ -216,8 +216,12 @@ class AppDelegate: NSObject, NSApplicationDelegate { statusMenuItem.title = "Upgrading..." + // must match the outdated listing: greedy-listed casks are skipped by + // plain "upgrade" and would stay outdated forever + let command = Settings.includeGreedyCasks ? "upgrade --greedy" : "upgrade" + runBrew("update") { _ in - self.runBrew("upgrade") { _ in + self.runBrew(command) { _ in // everything was just upgraded; don't chain an auto-upgrade self.fetchOutdated(allowAutoUpgrade: false) }