Skip to content

refactor: migrate local transcription to Soniqo#5153

Merged
ComputelessComputer merged 2 commits intomainfrom
refactor/soniqo-transcription
May 3, 2026
Merged

refactor: migrate local transcription to Soniqo#5153
ComputelessComputer merged 2 commits intomainfrom
refactor/soniqo-transcription

Conversation

@ComputelessComputer
Copy link
Copy Markdown
Collaborator

@ComputelessComputer ComputelessComputer commented May 3, 2026

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-soniqo crate 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_url is soniqo://local (with batch-only models rejected for live), and adds batch execution via a new BatchProvider::Soniqo path.

Extends local model plumbing (local-model, local-stt plugin, 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 map hyprnote + soniqo-* models to the soniqo batch 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:

@netlify
Copy link
Copy Markdown

netlify Bot commented May 3, 2026

Deploy Preview for hyprnote ready!

Name Link
🔨 Latest commit 6e3f9f2
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/69f71203a124d1000874df57
😎 Deploy Preview https://deploy-preview-5153--hyprnote.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

Comment thread plugins/local-stt/src/ext.rs
@ComputelessComputer ComputelessComputer force-pushed the refactor/soniqo-transcription branch from 1e35c80 to fb6c1a9 Compare May 3, 2026 08:27
@ComputelessComputer ComputelessComputer force-pushed the refactor/soniqo-transcription branch from fb6c1a9 to be9c285 Compare May 3, 2026 08:32
Comment thread plugins/transcription/src/listener/commands.rs
@ComputelessComputer ComputelessComputer force-pushed the refactor/soniqo-transcription branch from be9c285 to 7a05082 Compare May 3, 2026 08:53
Add Soniqo on-device model management, live transcription routing, batch transcription support, desktop model selection, and workspace dependency wiring while keeping Cactus available.
Comment thread crates/listener-core/src/actors/listener/adapters.rs
Only route Soniqo live/default modes for soniqo://local and share the local URL constant across call sites.
@ComputelessComputer ComputelessComputer force-pushed the refactor/soniqo-transcription branch from 7a05082 to 6e3f9f2 Compare May 3, 2026 09:14
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ 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));
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 6e3f9f2. Configure here.

@ComputelessComputer ComputelessComputer merged commit 502ed6a into main May 3, 2026
10 checks passed
@ComputelessComputer ComputelessComputer deleted the refactor/soniqo-transcription branch May 3, 2026 09:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant