Repository navigation
Fixes the app quitting partway through a browser switch — the change was lost and the menu-bar icon disappeared.
It was never a crash. macOS asks the app to terminate ~250–300ms after the Focus Filter's perform() returns, since it's an accessory app with nothing on screen. But NSWorkspace.setDefaultApplication doesn't call back until its confirmation dialog resolves — 1–5 seconds — so obliging that request killed the switch in flight.
The intent now stays alive until the switch settles, and the app declines quit requests while one is running.
Also fixed:
- Duplicate switches coalesced. macOS calls the filter six times for a single Focus change; each of those was raising its own confirmation dialog and fighting over the activation policy.
- Guarded the LaunchServices callback, so a repeat call can't take the process down.
- Better diagnostics in
~/Library/Logs/FocusBrowser.log, which now records how the app dies if it ever does again.
Install into /Applications — macOS only indexes App Intents there, so a copy anywhere else (including ~/Applications) never shows its Focus Filter and the app does nothing.