Skip to content

v0.9.5

Choose a tag to compare

@github-actions github-actions released this 08 Oct 21:21
Immutable release. Only release title and notes can be modified.
e46a3b2

Model changes

Coco Voice now offers only models whose licences allow it. 18 models are no
longer offered and sense-voice-int8 is removed. If you used one of them, it
won't load after this update: pick another model in Settings > Models
(Parakeet V3 is a good default). The full list is in the README under
Models no longer offered.

A more dependable Coco Voice

This release is about reliability. Dictation now recovers by itself after an
internal error, a model that fails to load no longer leaves the app stuck, and
a streaming transcription that times out no longer blocks the next one.

Smaller fixes:

  • Mute while recording no longer leaves your speakers muted.
  • A failed shortcut change keeps your old shortcut working.
  • Spoken corrections replace exactly the right text, emoji included.

New signing key

Coco Voice 0.9.5 is signed with a new update key. Copies on 0.9.4 cannot
update to it automatically: download 0.9.5 once from the release page. On
macOS, grant Accessibility to Coco Voice again after installing; that is a
one-time step. Later updates arrive through "Check for updates" as usual.

These builds are not signed or notarized. Verify downloads with SHA256SUMS. On macOS, right-click the app and choose Open the first time.

0.9.5 (2026-10-07)

Fixed

  • build PR code without repository secrets or a write token (#22) (b5459a1)
  • ci: keep PR test builds out of the Rust cache (#56) (b60cc6e)
  • clear model loading if the load thread panics (#29) (475c32e), closes #10
  • delete graphemes, including the trailing space, when a correction replaces text (#34) (88f8c04), closes #16
  • do not panic when the settings store fails (2cf64fd), closes #18
  • do not wipe a non-text clipboard when pasting (#32) (28c4187)
  • fall back to batch only after a timed-out stream returns the engine (#31) (a96f30f), closes #11
  • keep apostrophes and quotes in corrections (#55) (c350285)
  • let build.yml inherit permissions from its caller (2c3cdd3)
  • make main CI green (translations, lint, format, nix) (#20) (f7f4c9b)
  • make mute-while-recording ordered, tracked and restored (#24) (f6cc024), closes #4 #5 #6
  • make unsigned builds pass on macOS and the Linux package check (2c3cdd3)
  • match the npm dialog and updater plugins to their Rust crates (#72) (864bca7)
  • move existing installs from the old 60 ms restore delay to 300 ms (212a631)
  • never paste an empty cleanup result (#66) (cc459ed)
  • never save defaults over settings after a failed read (#27) (2cf64fd)
  • point the Windows package check at coco-voice.exe (2c3cdd3)
  • put the old hotkey back if rebinding fails (#25) (2582832), closes #7
  • refuse a microphone change while a take is in progress (#35) (1203be9)
  • register and unregister the cancel shortcut in order (#26) (fa78499), closes #8
  • restart the dictation coordinator after a panic (#30) (0bfb087), closes #12
  • run the macOS build scripts from the repo, not a personal path (#23) (c2f6bb3)
  • serialize settings writes and roll back only the failed key (#28) (892bc79)
  • stop a stale shortcut-capture loop when a new capture starts (#36) (e6937cc), closes #19
  • translate the download labels in the progress bar (197e769)
  • wait 300ms after the paste key before restoring the clipboard (#33) (212a631)
  • withhold non-commercial and uncleared models, keep upstream attribution (#63) (f8488f5)