Skip to content

v0.2.16

Choose a tag to compare

@rcourtman rcourtman released this 10 Jun 13:35

What's Changed

  • Hotkey responsiveness: System-audio mute calls, corrections-sync
    file checks, and update helpers now run off the main thread that
    services the global hotkey tap. A slow call (iCloud-synced corrections
    file, Homebrew, AppleScript) can no longer stall typing system-wide or
    cause macOS to drop a hotkey press.
  • Mute reliability: If the system-audio mute succeeds but its
    verification read fails, Parakey now keeps the crash-recovery marker
    and watchdog armed instead of tearing them down — the Mac can no
    longer be left muted with no recovery path. The mute lifecycle is now
    driven by pure, self-tested decision functions.
  • Toggle mode: Pressing the hotkey while a transcription is still
    finishing no longer silently swallows presses; the toggle state only
    advances when a recording can actually start.
  • Filler-word removal: Fixed punctuation artifacts with consecutive
    or sentence-final fillers ("So, um, uh, yes." no longer becomes
    "So,, yes."), and fillers before "?" or "!" are now cleaned up.
  • Update check: "Remind me later" now survives relaunch instead of
    re-prompting shortly after the next launch. Manual check failures
    distinguish being offline from GitHub rate limiting and unexpected
    responses. The check now sends a fixed parakey-update-check
    User-Agent, documented in the privacy table.
  • Text corrections: Failed saves now surface an alert instead of
    silently dropping the edit, the corrections file cap is raised to
    4 MiB so maximum-size sets always fit, imports say when a file was
    truncated to the 512-entry cap, and sync no longer loses near-cap
    entries after a merge or skips an explicit "Sync Corrections Now"
    behind a stalled background scan.
  • Audio capture hardening: Closed a data race on audio-converter
    state during engine stop/restart.
  • Text insertion: The fallback typing path now posts matching
    key-up events so apps that track key state behave correctly.
  • Privacy documentation: Now lists every model re-download trigger,
    the Homebrew hosts contacted during a user-triggered update, and the
    fact that the last transcript stays on the clipboard after pasting.
  • Release and CI hardening: Release tags are annotated and pushed
    explicitly, releases run QA gates (CI-green check, self-test suite,
    packaged smoke test) before notarization, a --cask-only mode
    resumes half-finished releases, CI actions are SHA-pinned, the
    benchmark harness is compiled in CI, and docs deploy only after
    checks pass.

Manual Checks

  • Run the signed-app hotkey and dictation smoke from docs/manual-qa.md.