jetbrains-toolbox: add uninstall quit#275525
Merged
bevanjkay merged 1 commit intoJul 17, 2026
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
aholland
force-pushed
the
jetbrains-toolbox-uninstall-quit
branch
from
July 17, 2026 05:56
13c65a1 to
3cb023f
Compare
Contributor
Author
|
Apologies for the noisy timeline: the close/reopens and force-pushes were retries against the GitHub attestations/REST API outage (16–17 July UTC), which failed CI during tool install and cancelled test runs. The cask change itself never changed and never failed a step; the last push was just a fresh SHA to get a clean run once the service recovered. |
bevanjkay
enabled auto-merge
July 17, 2026 06:22
bevanjkay
approved these changes
Jul 17, 2026
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.
Adds
uninstall quit:to the JetBrains Toolbox cask — the same treatment as calendr (#269810), for the same reason.The cask already tries to handle the resident menu-bar process, but with
signal:, whichbrew upgradedeliberately skips (UPGRADE_REINSTALL_SKIP_DIRECTIVESin brew'scask/artifact/uninstall.rb). So an upgrade swaps the bundle on disk while the old process keeps running. On my machine, yesterday's 3.6.1 → 3.6.2 upgrade left a 3.6.1 process (running since 8 July) in the menu bar, offering "Download update" to the version already sitting on disk — and taking that offer would replace the brew-managed install with an unquarantined self-update.quit:runs during upgrades, and brew reopens the app on the new version afterwards.The
signal:directive stays: it still serves plain uninstalls as the escalation when quit isn't enough. The bundle id matches the existinglaunchctl/signaldirectives.After making any changes to a cask, existing or new, verify:
brew audit --cask --online jetbrains-toolboxis error-free.brew style --fix jetbrains-toolboxreports no offenses.zapstanza paths.Diagnosed and written with AI assistance (Claude / Claude Code) under my direction and review. How AI was used: to trace why the resident Toolbox survived a brew upgrade (the verbose upgrade log shows the launchctl removal but no signalling line; the surviving process predates the upgrade by a week) and to locate the cause in brew's
UPGRADE_REINSTALL_SKIP_DIRECTIVES. Manual verification: bundle idcom.jetbrains.toolboxmatches the cask's existinglaunchctlandsignaldirectives (thezapstanza is unchanged);brew styleclean andbrew audit --cask --onlineerror-free against the edited cask.