Add granular brew package tracking with formulae/casks distinction and improved UI clarity#161
Conversation
Co-authored-by: paolomainardi <8747+paolomainardi@users.noreply.github.com>
Co-authored-by: paolomainardi <8747+paolomainardi@users.noreply.github.com>
…chctl compatibility Co-authored-by: paolomainardi <8747+paolomainardi@users.noreply.github.com>
|
/describe |
|
/review |
|
/improve |
|
PR Description updated to latest commit (06c84ba) |
PR Reviewer Guide 🔍(Review updated until commit 905b831)Here are some key observations to aid the review process:
|
|
Persistent review updated to latest commit 06c84ba |
|
@copilot consider this review: Ah, that explains it! claude-code is a cask (GUI application), not a formula (command-line tool). This is why you're seeing the discrepancy. brew outdated -q: Lists both outdated formulae AND casks To upgrade casks, you need a separate command: or for dry-run:brew upgrade --cask --dry-run |
Changed "Update Now" to "Upgrade Sparkdock" throughout the menu bar app for better clarity and to avoid confusion. The menu item now clearly indicates it will upgrade Sparkdock specifically. Fixed in commit 0f7d2e8. |
|
/describe |
|
/review |
|
/improve |
|
PR Description updated to latest commit (42d5cf9) |
|
Persistent review updated to latest commit 42d5cf9 |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
/review |
|
/improve |
|
/description |
PR Code Suggestions ✨Latest suggestions up to 905b831
Previous suggestionsSuggestions up to commit 42d5cf9
Suggestions up to commit 06c84ba
Suggestions up to commit 06c84ba
|
|
Persistent review updated to latest commit 905b831 |
There was a problem hiding this comment.
Pull Request Overview
This PR enhances the Sparkdock menu bar app with granular Homebrew package monitoring that distinguishes between formulae (command-line tools) and casks (GUI applications), providing users with detailed upgrade information and comprehensive one-click functionality.
Key changes include:
- Separate tracking for brew formulae and casks with dedicated count properties
- Enhanced UI with smart tooltips showing breakdown of outdated packages by type
- New upgrade functionality with compound commands for both package types
Reviewed Changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| main.swift | Implements granular brew monitoring with separate formulae/casks tracking, enhanced UI display with detailed tooltips, and compound upgrade commands |
| SparkdockManagerTests.swift | Adds test coverage for new brew functionality including menu item tag uniqueness and command validation |
| swift-macos-engineer.md | Updates agent model configuration from sonnet to opus |
User description
Enhances the Sparkdock menu bar app with granular Homebrew package monitoring that distinguishes between formulae (command-line tools) and casks (GUI applications), providing users with detailed upgrade information and comprehensive one-click functionality.
Enhanced Brew Package Monitoring
🔍 Separate Formula and Cask Tracking
brew outdated --formula --quiet | wc -lbrew outdated --cask --quiet | wc -loutdatedBrewFormulaeCount,outdatedBrewCasksCount)📱 Detailed UI Display
⚡ Complete Upgrade Support
brew upgrade && brew upgrade --caskTechnical Implementation
Robust Architecture
/opt/homebrew/bin/brew,/usr/local/bin/brew) for launchctl compatibilityBackward Compatibility
User Experience Examples
This enhancement addresses the distinction between brew formulae and casks that was highlighted during testing, where GUI applications like
claude-code(a cask) weren't being properly categorized in the original implementation.Fixes #160.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.
PR Type
Enhancement
Description
Add Homebrew package outdated indicator to menu bar
Integrate brew upgrade functionality with one-click terminal execution
Update UI to show combined Sparkdock and brew status
Add comprehensive test coverage for brew functionality
Changes walkthrough 📝
main.swift
Implement brew package monitoring and upgrade functionalitysrc/menubar-app/Sources/SparkdockManager/main.swift
runBrewOutdatedCheck()method to detect outdated Homebrew packagesupgradeBrew()action to execute brew upgrade in terminaland menu
SparkdockManagerTests.swift
Add test coverage for brew functionalitysrc/menubar-app/Tests/SparkdockManagerTests/SparkdockManagerTests.swift
upgradeBrewmenu item tag uniquenesswhichcommand pathPR Type
Enhancement
Description
Add granular brew package monitoring with formulae/casks distinction
Implement separate status tracking for Sparkdock and Homebrew updates
Enhance UI with detailed tooltips and menu items
Add one-click brew upgrade functionality with compound commands
Changes walkthrough 📝
main.swift
Implement granular brew monitoring and UI enhancementssrc/menubar-app/Sources/SparkdockManager/main.swift
properties
text
upgradeBrewaction with compound command executionBrew
SparkdockManagerTests.swift
Add tests for new brew functionalitysrc/menubar-app/Tests/SparkdockManagerTests/SparkdockManagerTests.swift
upgradeBrewTagmenu item tag uniquenesswhichcommand and brew command formatsswift-macos-engineer.md
Update agent model configuration.claude/agents/swift-macos-engineer.md
sonnettoopus