Skip to content

fix: native Keychain-prompt parity + Linuxbrew PATH (follow-up to #152) - #155

Merged
msitarzewski merged 1 commit into
mainfrom
fix/native-keychain-parity-linuxbrew-path
Jul 20, 2026
Merged

msitarzewski merged 1 commit into
mainfrom
fix/native-keychain-parity-linuxbrew-path

Conversation

@msitarzewski

Copy link
Copy Markdown
Owner

Follow-up to #152 (@fallenmaverick) — closes the two parity/coverage gaps that PR left open, keeping both shells and all three platforms consistent.

1. Native Keychain-prompt parity

#152 gated the Tauri app's eager startup GitHub-status read behind a localStorage brew-browser:github:signed-in flag, so users who never touch GitHub get no macOS Keychain prompt on launch. The native app had the identical eager read (ContentView.swift.task { await model.loadGithubStatus() }). This adds a UserDefaults hint of the same name — set on any signed-in status read and on device-flow sign-in — and gates the startup task on it. Mirrors the Tauri behavior exactly: sign-in sets the hint, so the first post-sign-in launch (and every one after) reads status; a never-signed-in user's launch never touches the Keychain.

2. Linuxbrew PATH

#152's PATH prepend in brew/exec.rs covered macOS /opt/homebrew (Apple Silicon) + /usr/local (Intel) but not Linuxbrew. Adds /home/linuxbrew/.linuxbrew/{bin,sbin} so GUI-launched Linux builds resolve brew subcommands (git, openssl, …). Non-existent prefixes on a given host are harmless.

Testing

  • native swift build + 199 tests pass
  • Rust build clean

Thanks @fallenmaverick — this rides on top of your #152.

🤖 Generated with Claude Code

https://claude.ai/code/session_01X9iMFjHE21ePTjcbHpTXt6

Two gaps left after #152 (@fallenmaverick), which fixed the Tauri app:

1. Native Keychain prompt parity. #152 gated the Tauri app's eager startup
   GitHub-status read behind a localStorage "signed-in" flag so users who never
   use GitHub get no macOS Keychain prompt on launch. The native app had the
   same eager read (ContentView `.task { loadGithubStatus() }`). Add a
   UserDefaults hint `brew-browser:github:signed-in` (set on any signed-in
   status read + on device-flow sign-in), and gate the startup task on it —
   mirroring the Tauri behavior exactly.

2. Linuxbrew PATH. #152's PATH prepend covered macOS `/opt/homebrew` +
   `/usr/local` but not Linuxbrew; add `/home/linuxbrew/.linuxbrew/{bin,sbin}`
   so GUI-launched Linux builds resolve brew subcommands (git, openssl, …).
   Non-existent prefixes per host are harmless.

Gate: native swift build + 199 tests · Rust build clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01X9iMFjHE21ePTjcbHpTXt6
@fallenmaverick

Copy link
Copy Markdown
Contributor

Absolutely loved the app by the way 👌🏻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants