v0.3.19

debpalash/VoiceStudiov0.3.19Jul 12, 2026by github-actions[bot]

Upgrading?

AI Summary

Improves error honesty and user experience with streaming audio playback, a proper uninstaller script, and more transparent crash reporting.

Key Highlights

  • Audio now streams and plays on the first chunk instead of waiting for the entire generation.
  • New uninstall scripts (`.sh` and `.ps1`) for manual cleanup.
  • Dubbing errors now show actual crash details instead of generic guesses.

New Features

  • Streaming audio playback for generated speech.
  • Uninstall scripts for macOS, Linux, and Windows.
  • Crash detail view for dubbing sessions.

Full Release Notes

The honesty release. Every error in here was already *technically* true and practically useless — so this round went after the lies the app tells when something goes wrong. "Can't reach the local OmniVoice backend" no longer fires while the backend is simply still starting; a dead Hugging Face mirror no longer strands the setup wizard with advice it can't follow; and a dub that dies mid-transcription now names the actual cause instead of guessing at it. Alongside that: generated speech starts playing on the *first* chunk instead of the last, and there's finally a real uninstaller.

### Added

- **Generated speech starts playing on the first chunk, instead of after the last one.** Long text is synthesized in chunks, but you used to sit through the entire render before hearing anything. The Studio now streams the preview: audio begins the moment the first chunk is ready and the rest arrives as it renders, so a long passage is audible in about the time the first sentence takes. The take saved to your history is **byte-identical** to the non-streaming render — streaming is a delivery channel, not a different synthesis path — and if a stream fails mid-flight the app falls back to the classic whole-file flow with nothing half-written to disk. (#1088)

- **A clean uninstaller + a straight answer to "where's my data?"** OmniVoice is fully local, so removing it is just deleting the folders it wrote — but until now users had to guess which ones. New `scripts/uninstall.sh` (macOS/Linux) and `scripts/uninstall.ps1` (Windows) find every OmniVoice folder — app data, the multi-GB managed Python env, config, logs, and (separately, because it's shared) the Hugging Face model cache — print each with its size as a **dry-run first**, and delete only on `--yes`. They honor your custom locations (`OMNIVOICE_DATA_DIR`, `HF_HOME`, portable mode) and never touch the app binary. The complete per-platform path list lives in the new `docs/install/uninstall.md`, linked from the README FAQ, SUPPORT, and troubleshooting. (#1089)

### Fixed

- **A dub that dies mid-transcription now says what actually happened instead of guessing.** "Transcribe stream dropped before emitting any segments. Likely ASR backend failed to load" was a *guess* — and usually the wrong one. The backend is contract-bound to emit a terminal event on every stream even when it fails, so a stream that simply goes silent means the backend **process died underneath it** — on smaller GPUs, almost always a native out-of-memory abort while loading the ASR model on top of a still-resident TTS model. The app now consults the desktop shell's crash forensics and tells you that: the exit code, when it happened, a one-click "View crash details" with the captured error output, and the actual next step (free VRAM / pick a smaller ASR model) rather than "check the backend log". With no crash recorded, the original message still stands. (#1062)

- **"Can't reach the local OmniVoice backend" stopped crying wolf during startups and restarts.** A real backend start or auto-restart takes 10–20+ seconds (Python spawn plus the PyTorch import), but the app's transport retry only bridged ~3 seconds — every click inside that window dead-ended with the scary toast, over and over, even though the backend healed itself moments later. The app now asks the desktop shell whether a start/restart is actually in progress and simply waits for it (up to the shell's own 2-minute restart budget), and shows a single "backend is restarting — hang tight" banner with a "back — carrying on" confirmation — the reconnecting affordance the supervisor has promised since #567. A truly dead backend (or a non-desktop deployment) still errors promptly, and the crash notice keeps telling the honest story.

- **A dead Hugging Face mirror can no longer strand the first-run wizard.** When a model download failed because the *configured* mirror was unreachable, the error pointed at Settings — which first-run users can't open (the wizard gates the studio) — and falsely claimed the mirror setting only applies after a restart (downloads actually pick it up per call, immediately). Now the wizard shows the mirror quick-pick (including "Hugging Face (official)") right next to the failed download and retries it the moment you switch; the corrected hint says retry-first, restart only if it still fails. Two backend holes in the same flow are closed too: switching endpoints clears the "failed recently" retry cooldown (no more 429 on the immediate retry), and clearing to official also removes the legacy `hf_endpoint` pref, which used to silently keep the dead mirror in effect.

### Changed

- **The first-run wizard shows the app version in its masthead**, next to the OmniVoice Studio title — so setup-time screenshots and bug reports identify the build at a glance (the install splash already did).

- **Repo root decluttered.** Retired the finished planning archives (`.planning/`, `specs/`), the pre-React design mockups (`design/`), the legacy research dir (`research/`), and stale third-party agent rules (`.agents/`) — ~110 files of process noise gone; everything stays in git history, and the four load-bearing engine decision docs moved to `docs/adr/`. Contributor-facing only; the app is unchanged.
### Linux x64 artifacts

```
4aae088250f48d6da432ea10483875ccf26647b60be67de65cfebf465cc6622b  OmniVoice Studio_0.3.19_amd64.AppImage
0fada05ba551b7a2f325fd9ad132f1c48dcf13ee8c6e005120410443a2eb218c  OmniVoice Studio_0.3.19_amd64.AppImage.sig
```


### Windows x64 artifacts

```
373a7eace6dd9ae279f5ccadfe681dd5beb1b1144981a5ca38cf44e4d1954ef0 *OmniVoice Studio_0.3.19_x64_en-US.msi
3b2083d13093031137e46f46693b5851b01d13cdf9c111d7eecf1aae32ca5c6f *OmniVoice Studio_0.3.19_x64_en-US.msi.sig
```


### macOS Intel artifacts

```
70499c162e027395894b8a4f0c959e69a926f1a660036a2c552fe106dd69e789  OmniVoice Studio_0.3.19_x64.dmg
586bdb50baf290476bfdc011d6f1a8f2355d919d8aff8b342027fdebe2ff8d93  OmniVoice Studio.app.tar.gz
570c608c81e67ca975f6a90ec07ad3c2336e1b0daa71e1393149944bff278f92  OmniVoice Studio.app.tar.gz.sig
```

Related Repositories