Add support for parsing and installing taps from Brewfile entries. Taps are automatically installed at startup before updating Homebrew data. Tap package information is cached for faster subsequent startups. Also fixes thread safety issues with UI notifications in background goroutines and improves error handling for brew command execution.
* feat: add Brewfile mode for curated package collections
This commit introduces Brewfile mode, allowing users to launch bbrew with
a curated list of packages using the -f flag. When a Brewfile is provided,
the application displays only those packages, enabling themed collections
like IDE choosers or developer tool sets.
The implementation includes a Brewfile parser for brew and cask entries,
automatic filtering of the package catalog, and a refactored API with the
IsBrewfileMode() method for cleaner code. Critical bugs were fixed including
a synchronization issue between the displayed table and the filtered packages
array that caused incorrect package selection.
This feature is designed for Project Bluefin integration, providing curated
package experiences where users can browse predefined collections. Includes
example Brewfiles and comprehensive documentation.
* feat: add Install All functionality for Brewfile mode
Add ctrl+a keybinding to install all packages from a Brewfile at once,
available exclusively in Brewfile mode.
* feat: add Remove All for Brewfile mode
Add ctrl+r keybinding to batch remove all installed packages from
Brewfile with real-time progress counter. Validates packages are
installed before proceeding and skips non-installed packages.
Available only in Brewfile mode
* feat: add leaves filter to show explicitly installed packages (#25)
Add new filter [L] to display only "leaf" packages - those installed
explicitly by the user and not as dependencies of other packages.
* refactor: Migrate to Podman with OCI Containerfile and enhanced Makefile (#26)
* refactor: migrate from Docker to Podman with OCI Containerfile
Replace Docker with Podman for better security and OCI compliance.
Switch from Dockerfile to standard Containerfile format.
* chore: upgrade Go from 1.24 to 1.25
Update Go version to 1.25 to support latest goreleaser v2 and benefit from improved performance and language features.
* refactor: migrate to Podman and enhance Makefile
Replace Docker with Podman and upgrade Makefile with help system and new developer-friendly targets.
* chore: upgrade to Go 1.25 and golangci-lint v2.5.0
Update Go to 1.25 and golangci-lint to v2.5.0 for better tooling support.
* feat: add security scanning with govulncheck and gosec (#27)
Add comprehensive security scanning to the project with vulnerability checks and static analysis tools.
* feat: Add complete Casks support with unified UI (#28)
* feat(cask): add backend support for Homebrew casks
Implement complete backend infrastructure for managing Homebrew casks alongside formulae, preparing for unified UI.
* feat(cask): add complete Homebrew casks support with unified UI
Implement full backend and UI support for managing Homebrew casks alongside formulae in a unified interface.
* fix(cask): parse cask analytics correctly
Fix cask analytics not being displayed (showing 0 for all casks).
* feat(cask): add complete Homebrew casks support with unified UI
Implement full backend and UI support for managing Homebrew casks alongside formulae in a unified interface.
* fix: create copy to avoid implicit memory aliasing
* feat: implement XDG Base Directory Specification with github.com/adrg/xdg (#29)
Implement XDG Base Directory Specification using the github.com/adrg/xdg package for robust cross-platform support.
* refactored move formatting logic to Details ui component
* refactored the setContent for details formatting and remove setFormula
* refactor: clean up LocalPath handling and improve details formatting