v0.5.25
v0.5.25 — Audit Fixes
Fix all 13 codebase audit findings (5 high, 8 medium):
Security
- API key no longer stored in plaintext settings file when keyring works
- Overlay theme reads from Tauri store instead of non-existent command
Correctness
theme_modefield added to Rust AppSettings (no longer dropped on backend writes)- Frontend
history_limitdefault matches backend (10000) - Model ID fallback uses correct registry ID ("small")
shutdown_health_checkwired into app exit handler
Performance
emit_levelsuses cached overlay position (no per-callback disk reads)play_feedback_soundreads settings once instead of 4 times
Code Health
- History row mapping extracted to shared function (was duplicated 7x)
- AudioRecordingManager mutexes consolidated to prevent deadlocks
- Settings commands moved from shortcut.rs to commands/settings.rs
- Health-check thread has clean shutdown mechanism
- Clippy clean, dead code removed, profile ID wired to history