Skip to content

v0.6.0-beta

Choose a tag to compare

@github-actions github-actions released this 16 Apr 19:38
· 60 commits to main since this release
a49aebe

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:

  1. ensureTokenizerAssets was 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)
  2. 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

  1. Download VocaMac-0.6.0-arm64.dmg
  2. Open the DMG and drag VocaMac to Applications
  3. Open VocaMac from Applications
  4. 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