Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
52c009a
feat(voice): add OpenAI speech-to-text
johnmatthewtennant Aug 26, 2026
6393214
fix(voice): open a transcription realtime session
johnmatthewtennant Aug 26, 2026
60f129a
fix(voice): bound OpenAI transcription shutdown
johnmatthewtennant Aug 26, 2026
7fb8ae7
fix(voice): defer OpenAI STT credential access
johnmatthewtennant Aug 26, 2026
8fc0bcd
fix(voice): bound OpenAI transcription work
johnmatthewtennant Aug 26, 2026
f95a332
fix(voice): preserve OpenAI STT finalization
johnmatthewtennant Aug 26, 2026
b2f6393
fix(voice): expose transcription model with STT
johnmatthewtennant Aug 26, 2026
1eb9bc5
fix(voice): share OpenAI setup with cross-platform STT
johnmatthewtennant Aug 26, 2026
9d9f92c
fix(voice): read Goose credentials on every desktop
johnmatthewtennant Aug 26, 2026
2b48876
ci: install Linux keyring dependency
johnmatthewtennant Aug 26, 2026
7b2a36d
fix(voice): vendor Linux secret service support
johnmatthewtennant Aug 26, 2026
d7fbcbb
fix(voice): tolerate OpenAI credential prompt
johnmatthewtennant Aug 27, 2026
dd90215
feat(voice): add a dedicated OpenAI STT key
johnmatthewtennant Aug 28, 2026
3685ce9
fix(voice): finalize OpenAI transcription safely
johnmatthewtennant Aug 28, 2026
07b4314
fix(voice): synchronize OpenAI transcription startup
johnmatthewtennant Aug 28, 2026
bad9a1e
fix(voice): distinguish OpenAI setup requirements
johnmatthewtennant Aug 28, 2026
15f483a
fix(ci): rebuild Sherpa before Linux tests
johnmatthewtennant Aug 29, 2026
6757e2f
fix(ci): clear Sherpa native cache on Linux
johnmatthewtennant Aug 29, 2026
053fdac
fix(voice): await OpenAI transcription readiness
johnmatthewtennant Aug 29, 2026
57a902a
fix(voice): close OpenAI setup lifecycle gaps
johnmatthewtennant Aug 29, 2026
1e922d3
fix(voice): serialize STT credential changes
johnmatthewtennant Aug 29, 2026
49f72da
fix(voice): read STT credentials under lifecycle guard
johnmatthewtennant Aug 29, 2026
20b35a7
refactor(voice): share OpenAI key across speech
johnmatthewtennant Aug 29, 2026
f121bd3
fix(voice): retain STT environment configuration
johnmatthewtennant Aug 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,8 @@ test-siri-tts-stream-regression:

[unix]
_tauri-test-unix:
# rust-cache can restore Sherpa's generated cache directory without its native libraries.
if [ "$(uname -s)" = "Linux" ]; then rm -rf src-tauri/target/sherpa-onnx-prebuilt; fi
just _tauri-cargo-unix test -p tauri-plugin-berdctl --features server
just _tauri-cargo-unix test -p berdctl
just _tauri-cargo-unix test --lib telemetry
Expand Down
145 changes: 143 additions & 2 deletions src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ hex = "0.4"
ignore = "0.4.25"
fern = "0.7"
infer = "0.19.0"
keyring = { version = "3.6.3", default-features = false, features = ["apple-native"] }
libc = "0.2"
log = "0.4.29"
mime_guess = "2"
Expand Down Expand Up @@ -101,11 +100,14 @@ tauri-plugin-updater = "2"
tauri-plugin-window-state = "2"
time = { version = "0.3", features = ["formatting"] }
tokio = { version = "1.50.0", features = ["full"] }
tokio-tungstenite = { version = "0.27", features = ["rustls-tls-webpki-roots"] }
rustls = { version = "0.23", default-features = false, features = ["aws_lc_rs", "std", "tls12"] }
url = "2"
uuid = { version = "1", features = ["v4", "serde"] }
zip = { version = "2", default-features = false, features = ["deflate"] }

[target.'cfg(windows)'.dependencies]
keyring = { version = "3.6.3", default-features = false, features = ["windows-native"] }
windows-sys = { version = "0.59", features = [
"Win32_Foundation",
"Win32_Globalization",
Expand All @@ -118,6 +120,7 @@ windows-sys = { version = "0.59", features = [
[target.'cfg(target_os = "macos")'.dependencies]
block2 = "0.6"
coreaudio-rs = "0.14.2"
keyring = { version = "3.6.3", default-features = false, features = ["apple-native"] }
objc2 = "0.6"
objc2-app-kit = { version = "0.3.2", features = ["NSApplication", "NSRunningApplication", "NSImage", "NSMenu", "NSMenuItem", "NSAlert", "NSButton", "NSControl", "NSCell", "NSResponder", "NSView"] }
objc2-avf-audio = { version = "0.3.2", features = ["AVAudioApplication", "block2"] }
Expand All @@ -126,6 +129,9 @@ objc2-foundation = { version = "0.3.2", features = ["NSDictionary", "NSError", "
objc2-user-notifications = "0.3.2"
rodio = { version = "0.22", default-features = false, features = ["playback"] }

[target.'cfg(target_os = "linux")'.dependencies]
keyring = { version = "3.6.3", default-features = false, features = ["sync-secret-service", "vendored"] }


[features]
default = []
Expand Down
Loading