This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Affected surfaces
Summary
AI summaryUpdates Under the hood, Acknowledgments, and cask across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds in-app updater with automatic version detection and manual check. Adds in-app updater with automatic version detection and manual check. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Medium |
Expands GitHub coverage to show Star, Watch, File‑issue, and stats for packages with GitHub source. Expands GitHub coverage to show Star, Watch, File‑issue, and stats for packages with GitHub source. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Medium |
Adds GitHub Octocat status chip in the title bar indicating auth state. Adds GitHub Octocat status chip in the title bar indicating auth state. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Medium |
Adds actionable "Re‑authorize" toast when OAuth scopes are missing. Adds actionable "Re‑authorize" toast when OAuth scopes are missing. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Medium |
Renames "Paranoid Mode" to "Offline Mode" while keeping internal field name. Renames "Paranoid Mode" to "Offline Mode" while keeping internal field name. Source: llm_adapter@2026-05-28 Confidence: low |
— |
| Feature | Medium |
Implements per‑action OAuth scope gating: Star/File‑issue need public_repo, Watch needs notifications, enforced server‑side before GitHub calls. Implements per‑action OAuth scope gating: Star/File‑issue need public_repo, Watch needs notifications, enforced server‑side before GitHub calls. Source: granite4.1:30b@2026-05-28-audit Confidence: low |
— |
| Feature | Low |
Adds tolerant `extract_github_repo` URL parser handling archive and release URLs. Adds tolerant `extract_github_repo` URL parser handling archive and release URLs. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Feature | Low |
Implements per‑action OAuth scope gating for GitHub features. Implements per‑action OAuth scope gating for GitHub features. Source: llm_adapter@2026-05-28 Confidence: low |
— |
| Dependency | Low |
Upgrades to Tauri 2 with embedded minisign pubkey and sha256 manifest verification. Upgrades to Tauri 2 with embedded minisign pubkey and sha256 manifest verification. Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Performance | Low |
Improves test coverage to 473 passing tests (up from 411). Improves test coverage to 473 passing tests (up from 411). Source: llm_adapter@2026-05-28 Confidence: high |
— |
| Bugfix | Medium |
Fixes toast cascade on disconnect/reconnect reported in issue #1. Fixes toast cascade on disconnect/reconnect reported in issue #1. Source: llm_adapter@2026-05-28 Confidence: low |
— |
Full changelog
brew-browser v0.3.0 — In-app updater + GitHub coverage + issue #1 fixes
Signed + notarized. macOS 13+, Apple Silicon.
Highlights
In-app updater. brew-browser now tells you when a new version exists. A title-bar pill appears when a newer release is detected; Settings → Network → Updates owns the manual "Check now" button, the off-by-default daily auto-check, and the install action. Every artifact is verified against an embedded minisign public key before any on-disk side effect (sha256 first, then signature — mismatch aborts with no install). Skipping a version is per-release, so a future update re-triggers the notice.
"Offline Mode" instead of "Paranoid Mode." Same kill switch, friendlier name. Toggle in Settings → Network blocks every outbound feature: catalog refresh, trending, GitHub, updater. The internal field stays paranoid_mode to avoid migrating existing settings files.
GitHub coverage expansion. Packages like bat, fd, ripgrep, tealdeer — marketing-page homepages but GitHub-hosted source — now light up Star / Watch / File-issue / Stats. Backend walks homepage → urls.stable.url → urls.head.url (formula) or homepage → url (cask). The Dashboard's personal-stats card sees a bigger denominator.
GitHub Octocat status chip in the title bar. Green when signed in with required scopes, amber when a scope is missing (click → Settings → GitHub to re-authorize), hidden when signed out.
Actionable Re-authorize toast. If an action fails because your token doesn't carry the required scope (typical for tokens minted before v0.3.0 added notifications scope for Watch), the failure toast offers a one-click "Re-authorize" button. GitHub's consent screen shows only the missing scope. No sign-out needed.
Issue #1 fixes. Resolves the toast cascade on disconnect/reconnect that @heyjawrsh reported. Root cause was a cache loop in PackageDetail hammering Svelte's scheduler combined with a structural misuse of $effect for one-shot side effects. Star, Watch, File-issue, and the sign-in flow all work cleanly now.
Under the hood
- 473 backend tests passing (up from 411 in v0.2.1).
- Tauri 2 in-app updater plugin with embedded minisign pubkey + sha256 manifest verification.
- Per-action OAuth scope gating — Star/File-issue need
public_repo, Watch/Unwatch neednotifications. The gate runs server-side before any GitHub round-trip. - New
extract_github_repotolerant URL parser that handles archive + release URLs (.../archive/refs/tags/v1.2.3.tar.gz,.../releases/download/v1.2.3/foo.dmg) while applying every strict-parser defense (host, scheme, character set, path traversal). - Lazy Keychain probe preserved — fresh launches still don't trigger the macOS "wants to use your confidential information" prompt unless you actually use a GitHub feature.
Install
Download brew-browser_0.3.0_aarch64.dmg, double-click, drag to Applications. macOS Gatekeeper will accept the signed + notarized binary without warnings.
If you're on v0.2.1, the in-app updater will surface this release after you upgrade once — manual .dmg installs are still supported but the auto-updater path is the recommended cadence going forward.
Acknowledgments
- @heyjawrsh for filing issue #1 with a clear reproduction. Six hours of debugging surfaced two genuinely interesting Svelte 5 rabbit holes; the diagnosis is in
memory-bank/tasks/2026-05/14-issue-1-hunt-cache-loop.mdand15-github-integration-completion.mdfor the curious.
Full diff: v0.2.1...v0.3.0
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Brew-browser
All releases →Related context
Related tools
Earlier breaking changes
- v0.3.1 Bundle identifier changed from `dev.openbrew.browser` to `com.zerologic.brew-browser`, requiring re‑authorization on upgrade.
Beta — feedback welcome: [email protected]