v0.6.0-beta
Zero-Download First Launch 🚀
VocaMac now ships with the Whisper Tiny model bundled inside the app. On first launch, it's automatically installed into Application Support so you can start dictating immediately — no internet connection required, no waiting for a model download.
Previously, every fresh install would fail to load a model until the user manually triggered a download. This eliminates that friction entirely.
Note: The bundled Tiny model is optimised for speed on all Apple Silicon devices. You can switch to a larger model any time via Settings.
Nightly Builds — Now Signed & Notarized ✅
Nightly builds now go through the same Developer ID signing and notarization pipeline as stable releases. Every nightly DMG:
- Is signed with Apple Developer ID — no Gatekeeper warnings
- Is notarized and stapled — validates offline
- Embeds a proper SemVer pre-release version string (e.g.
0.6.0-nightly.20260414+abc1234) so you always know exactly which nightly you're running
Nightly builds also now have an on-demand /build trigger — comment /build on any PR and a signed, notarized DMG is built from that branch and posted as a comment within ~10–20 minutes.
Bug Fixes
Fixed: Stale Paste After Transcription
After injecting transcribed text, pressing Cmd+V within ~2 seconds would paste the transcribed text instead of the user's original clipboard contents. The clipboard restore had a race condition — it was scheduled after the simulated Cmd+V keypress instead of running before it.
Reported by Dinç Ciftci (via #104). Fixed in #106 by @jatinkrmalik.
Fixed: Tokenizer Asset Crash on First-Run Download
Fresh installs showed "No model loaded" with [ERROR] Tokenizer assets are missing immediately after the model downloaded successfully. Two separate issues were fixed:
ensureTokenizerAssetswas pre-validating tokenizer files before passing the folder to WhisperKit — but WhisperKit fetches tokenizers itself during load. Removed the redundant pre-validation entirely. (#113 by @jatinkrmalik)- An incorrect path construction caused the validation to look for tokenizer files in the wrong directory anyway. (#112 by @jatinkrmalik)
Fixed: Double Startup / Duplicate Model Loading
Every launch showed duplicate startup sequences in the logs, meaning the model was being loaded 2–3× unnecessarily. SwiftUI was instantiating multiple AppState objects and performStartup was called on all of them. Fixed by guarding startup with a Task-based once-flag keyed to the specific instance. (#114 by @jatinkrmalik)
Fixed: GitHub Update Checker Rate Limiting (HTTP 403)
The update checker was consuming one of GitHub's 60 unauthenticated API requests/hour per IP on every check — easily exhausting the pool on shared networks (office NAT, VPN). Fixed by sending If-None-Match ETag headers so GitHub returns a rate-limit-free 304 Not Modified when nothing has changed. (#115 by @jatinkrmalik)
What's Changed
| PR | Description | Author |
|---|---|---|
| #110 | feat: support bundled tiny model installs | @jatinkrmalik |
| #101 | feat: sign, notarize, and version nightly builds | @jatinkrmalik |
| #106 | fix: eliminate clipboard restore race condition — closes #104 (reported by Dinç Ciftci) | @jatinkrmalik |
| #112 | fix: resolve tokenizer asset crash on first-run download | @jatinkrmalik |
| #113 | fix: let WhisperKit handle tokenizer fetching instead of pre-validating | @jatinkrmalik |
| #114 | fix: prevent double performStartup across multiple AppState instances | @jatinkrmalik |
| #115 | fix: add ETag caching to UpdateChecker to avoid GitHub rate limits | @jatinkrmalik |
| #107 | ci: add on-demand PR build workflow with /build comment trigger | @jatinkrmalik |
| #111 | ci: use Python venv for huggingface-cli on macOS 15 runners | @jatinkrmalik |
| #103 | fix: correct version extraction in nightly build workflow | @jatinkrmalik |
| #102 | docs: add nightly builds section to README | @jatinkrmalik |
Issue Credits 🙏
| Issue | Reporter | Description |
|---|---|---|
| #104 | Dinç Ciftci | Clipboard restore delay causes stale paste after transcription |
Installation
- Download
VocaMac-0.6.0-arm64.dmg - Open the DMG and drag VocaMac to Applications
- Open VocaMac from Applications
- Grant Microphone, Accessibility, and Input Monitoring permissions when prompted
This release is Developer ID signed and notarized by Apple.
macOS will open it without any security warnings.
Requirements
- macOS 13 (Ventura) or later
- Apple Silicon (arm64)
Checksums (SHA-256)
See checksums.txt for verification.
Full Changelog: v0.5.0...v0.6.0