feat(packaging): unbundle whisper.cpp + Kokoro to on-demand verified downloads (PRD 10.2.4) - #764
Merged
Merged
Conversation
…d (PRD 10.2.4)
Proof-of-concept unbundle that actually shrinks the installer ~120 MB, taken
safely. The Kokoro neural voices are no longer staged into the installer; they
download on demand from QUILL's pinned, SHA-256-verified release asset
(kokoro-models.zip on assets-v1) to %APPDATA%/kokoro-models, which the runtime
prefers.
Upgraders are protected automatically (verified): Inno only overlays new [Files]
and never removes old ones, [InstallDelete] does not touch kokoro-models, and
runtime resolution still checks {app}/kokoro-models -- so a user upgrading from a
release that bundled Kokoro keeps their copy with nothing to re-download. Kokoro is
"safe to unbundle": other read-aloud voices (DECtalk/eSpeak/Piper/SAPI) work offline
meanwhile.
- release_assets.py: add the pinned "kokoro" entry; add should_cancel/DownloadCancelled
(cancel handled in-module, not via a swallowed progress-raise) and a `version` field
(groundwork for newer-version notifications); the whisper handler uses should_cancel too.
- _download_kokoro_models: route through release_assets; SMART re-download -- if the
voices are already present it offers to replace rather than silently re-fetching
~120 MB, and declining keeps the existing copy.
- build: stop staging Kokoro by default (still possible via --kokoro-dir for portable);
remove the speechkokoro component + kokoro-models [Files] from the installer; iss
regenerated; iss test updated to assert absence.
- Docs everywhere (CHANGELOG, release notes, user guide, PRD 5.25c, roadmap).
- Builds on #760 (release_assets). GATE-9/GATE-11 green; e2e verified against the
published asset (downloads, verifies, unpacks the 88 MB model + 26 MB voices).
Co-Authored-By: Claude Opus 4.8 <[email protected]>
…oad (PRD 10.2.4)
Per decision, fully unbundle the offline speech engine like Kokoro. whisper.cpp is
no longer staged into the installer; fresh installs download the ~8 MB engine on
demand from QUILL's pinned, SHA-256-verified release asset (assets-v1) to
%APPDATA%/speech-engine, which the runtime searches.
Protected at point of use (it is the default offline engine): the dictation
pre-flight now OFFERS to download it ("Download it now? ~8 MB, verified") instead of
just pointing at a menu, so a fresh install is never stranded. The provider's
not-installed guidance points at Tools > Speech > Download Offline Speech Engine.
Upgraders keep their existing {app}/tools/speech/whispercpp copy automatically
(Inno never removes it; [InstallDelete] does not touch it; resolver still checks it).
- build: stop auto-staging whisper (still stageable via --whisper-dir); remove the
speechwhisper component + whispercpp [Files]; iss regenerated.
- tests updated (bundledTools/speechAssets/iss assertions assert absence).
- docs updated everywhere (CHANGELOG, release notes, user guide, PRD 5.25c).
- GATE-9/GATE-11 green; main_frame_dictation_hotkeys rebaselined (+12 for the offer).
Co-Authored-By: Claude Opus 4.8 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes #761 (rebased onto main after #760's squash-merge; same content, conflict-free).
Unbundles both the offline speech engine (whisper.cpp, ~8 MB) and the Kokoro neural voices (~120 MB) from the installer — they download on demand from QUILL's pinned, SHA-256-verified release assets (assets-v1). The dictation pre-flight offers the engine download in-flow; Kokoro downloads on first voice use; both offer-to-replace and are version-aware. Upgraders keep their existing copies automatically (Inno never removes them; [InstallDelete] untouched; runtime resolution still checks {app}). Build/iss updated, iss regenerated, tests + docs everywhere, GATE-9/GATE-11 green. Builds on #760 (release_assets).
🤖 Generated with Claude Code