|
| 1 | +# VocaMac v0.5.0 |
| 2 | + |
| 3 | +## In-App Updates |
| 4 | + |
| 5 | +VocaMac can now check for updates automatically and download the latest release right from the app. On launch (once every 24 hours), it queries GitHub Releases and shows an update banner in the menu bar popover when a newer version is available. One-click download with real-time progress, SHA-256 integrity verification, and guided drag-to-Applications install. |
| 6 | + |
| 7 | +Manual check available at **Settings > About > Check for Updates**. |
| 8 | + |
| 9 | +## Improved Mic Indicator Placement |
| 10 | + |
| 11 | +The floating mic indicator now uses a 4-tier Accessibility API fallback strategy instead of the previous binary caret-or-mouse approach: |
| 12 | + |
| 13 | +| Tier | Method | Works In | |
| 14 | +|------|--------|----------| |
| 15 | +| 1 | Exact caret position | Native AppKit/SwiftUI apps | |
| 16 | +| 2 | Focused element bounds | Electron apps, terminal emulators | |
| 17 | +| 3 | Focused window position | Almost all apps | |
| 18 | +| 4 | Mouse cursor | Last resort | |
| 19 | + |
| 20 | +This significantly improves indicator placement in apps like **Cursor** and **iTerm2** that don't implement full AX text attributes. |
| 21 | + |
| 22 | +## Other Changes |
| 23 | + |
| 24 | +- **Fixed large-v3 model incorrectly marked as unsupported** due to substring matching against disabled model variants. The recommendation engine now checks the supported list directly and falls back to the best supported model when the default is too large for the device. |
| 25 | +- **Improved log rotation efficiency** — reduced max log size from 5 MB to 1 MB, cached date formatter, eliminated per-write `fsync`, and added proper error handling during rotation. |
| 26 | +- **Tests run 2x faster** with zero system side effects — all service dependencies (audio, hotkeys, sounds, permissions) are now injected via protocols with mock implementations. |
| 27 | + |
| 28 | +## Full Changelog |
| 29 | + |
| 30 | +- feat: add in-app GitHub Releases update flow (#96) |
| 31 | +- fix: add tiered fallback for cursor indicator positioning (#93) |
| 32 | +- fix: large-v3 model incorrectly marked as unsupported due to substring matching bug (#92) |
| 33 | +- fix: improve log rotation efficiency and reduce max log size from 5MB to 1MB (#94) |
| 34 | +- fix: inject mock services in tests to eliminate system side effects (#95) |
0 commit comments