refactor: migrate local transcription to Soniqo#5153
refactor: migrate local transcription to Soniqo#5153ComputelessComputer merged 2 commits intomainfrom
Conversation
✅ Deploy Preview for hyprnote ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
1e35c80 to
fb6c1a9
Compare
fb6c1a9 to
be9c285
Compare
be9c285 to
7a05082
Compare
Add Soniqo on-device model management, live transcription routing, batch transcription support, desktop model selection, and workspace dependency wiring while keeping Cactus available.
Only route Soniqo live/default modes for soniqo://local and share the local URL constant across call sites.
7a05082 to
6e3f9f2
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 6e3f9f2. Configure here.
| && let Ok(model) = model.parse::<hypr_transcribe_soniqo::SoniqoModel>() | ||
| { | ||
| return Ok(model.supports_live() && model.supports_languages(&languages_parsed)); | ||
| } |
There was a problem hiding this comment.
Duplicated Soniqo language-support check logic across crates
Low Severity
The Soniqo-specific provider/model parsing and language-checking pattern is duplicated between is_supported_languages_live in the transcription plugin and is_supported_languages_batch in listener2-core. Both implement near-identical logic for parsing "soniqo" and "hyprnote" providers, resolving the SoniqoModel, and calling supports_languages. If the Soniqo model resolution logic changes (e.g., new model prefixes or provider names), both locations need coordinated updates.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 6e3f9f2. Configure here.


Add Soniqo on-device model management, live transcription routing, batch transcription support, desktop model selection, and workspace dependency wiring while keeping Cactus available.
Note
High Risk
High risk because it introduces a new macOS Swift bridge and changes core live/batch transcription routing and local model management, which can affect capture stability and model downloads.
Overview
Adds a new on-device STT backend, Soniqo, including a new
transcribe-soniqocrate that bridges to a macOS Swift package (speech-swift) for model download state, file transcription, and live streaming sessions.Updates the Rust transcription stack to route live audio to Soniqo when
base_urlissoniqo://local(with batch-only models rejected for live), and adds batch execution via a newBatchProvider::Soniqopath.Extends local model plumbing (
local-model,local-sttplugin, and generated TS bindings) to treat Soniqo models as first-class local models (download polling, delete, per-model cache dir), and updates the desktop UI to list/select Soniqo models, show download progress, and maphyprnote+soniqo-*models to thesoniqobatch provider.Reviewed by Cursor Bugbot for commit 6e3f9f2. Bugbot is set up for automated code reviews on this repo. Configure here.
This is part 1 of 2 in a stack made with GitButler: