Summary
On first launch, if apfel is not installed, grapfel should install it automatically rather than walking the user through manual Homebrew steps.
Current behavior
SetupView / HomebrewInstaller / SetupChecker guide the user through installation but require them to run brew install apfel themselves.
Target behavior
- Detect apfel missing at launch
- If Homebrew is present, invoke
brew install apfel programmatically (show progress in SetupView)
- If Homebrew is absent, offer to install Homebrew first, then apfel
- Graceful error handling if install fails (show log, offer retry)
Notes
HomebrewInstaller already has brewURL and canInstallApfel — build on that foundation. Test coverage gap #5 covers this class.
Summary
On first launch, if
apfelis not installed, grapfel should install it automatically rather than walking the user through manual Homebrew steps.Current behavior
SetupView/HomebrewInstaller/SetupCheckerguide the user through installation but require them to runbrew install apfelthemselves.Target behavior
brew install apfelprogrammatically (show progress in SetupView)Notes
HomebrewInstalleralready hasbrewURLandcanInstallApfel— build on that foundation. Test coverage gap #5 covers this class.