v0.1.1 — 2.5x faster search
Performance and reliability pass.
What changed
Search 2.5x faster
- Pre-computed UTF-8 byte arrays at index time, not per-query
- Replaced grapheme-aware String ops with
memcmp-based byte loops - Added first-byte rejection as cheap pathological-case guard
- Bench: 0.460 → 0.182 ms / query (180 apps)
Reliability
- FSEvents watcher — new apps appear without restart
CFBundleDisplayNamefallback — finds apps whose displayed name differs from filename- Stale entries auto-removed when index points to deleted .app
- Filter background services (
LSUIElement,LSBackgroundOnly) so the index isn't polluted withloginwindowand friends - Finder explicitly indexed (lives in
/System/Library/CoreServices/, not in scan roots) - Setapp +
/System/Library/CoreServices/Applications/added to scan roots - Symlinks resolved for proper dedup
- Multi-screen support — window centers on screen with mouse cursor
- Empty-state UI ("No Results")
- Esc reliably hides via
NSApp.hide - 0 leaks (verified with
leaksandvmmap)
Diagnostic CLI
Launcher --self-test— 13 scenario testsLauncher --bench— scan + search timingLauncher --integrity— verify all indexed paths existLauncher --probe \"<query>\"— show variants and top 10 matches
Install
- Download `Launcher-v0.1.1.zip`
- Unzip, drag `Launcher.app` to `/Applications`
- First launch: right-click → Open (ad-hoc signed)
- Right-click dock icon → Options → Keep in Dock
Verify
```
shasum -a 256 Launcher-v0.1.1.zip
3a0ac11e2f088c097e3b7213ef83a72bb83fb67fa4e0608b057c366eb256682f
```
Requirements
- macOS 14 (Sonoma) or later
- Universal binary (Apple Silicon + Intel)