Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
9574f0f
feat(voice): add OpenAI text-to-speech
johnmatthewtennant Aug 26, 2026
8e4a880
fix(voice): smooth OpenAI speech startup
johnmatthewtennant Aug 26, 2026
9e9ba5b
fix(voice): defer secure credential access
johnmatthewtennant Aug 26, 2026
5f51297
fix(voice): replace stale OpenAI playback
johnmatthewtennant Aug 26, 2026
df6d163
fix(voice): keep OpenAI speech portable
johnmatthewtennant Aug 26, 2026
06e3c18
fix(voice): harden OpenAI speech lifecycle
johnmatthewtennant Aug 26, 2026
e64516c
fix(voice): follow Goose OpenAI configuration
johnmatthewtennant Aug 26, 2026
1eb2167
fix(voice): keep OpenAI setup and playback synchronized
johnmatthewtennant Aug 26, 2026
2d898b4
fix(voice): load OpenAI status without event listener
johnmatthewtennant Aug 26, 2026
f112a4e
fix(voice): keep transcription status in STT layer
johnmatthewtennant Aug 26, 2026
98c931d
fix(voice): gate macOS speech playback internals
johnmatthewtennant Aug 26, 2026
ff49e26
fix(voice): keep OpenAI status cross-platform
johnmatthewtennant Aug 26, 2026
1cfc4ab
feat(voice): add a dedicated OpenAI TTS key
johnmatthewtennant Aug 28, 2026
3b82a50
refactor(voice): isolate OpenAI voice credentials
johnmatthewtennant Aug 28, 2026
e9f01d8
fix(voice): harden OpenAI speech playback
johnmatthewtennant Aug 28, 2026
2aca321
refactor(voice): name OpenAI TTS readiness explicitly
johnmatthewtennant Aug 28, 2026
2497d62
fix(voice): harden OpenAI TTS configuration
johnmatthewtennant Aug 28, 2026
e09edea
fix(voice): guard macOS keyring constant
johnmatthewtennant Aug 28, 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
30 changes: 28 additions & 2 deletions src-tauri/Cargo.lock

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

1 change: 1 addition & 0 deletions src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ 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
1 change: 1 addition & 0 deletions src-tauri/src/commands/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ pub mod model_setup;
mod native_input_mute;
pub mod native_voice;
pub mod notifications;
pub mod openai_audio;
#[cfg(feature = "block-voice-dictation")]
pub mod openai_realtime;
pub mod path_resolver;
Expand Down
2 changes: 2 additions & 0 deletions src-tauri/src/commands/native_voice.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2178,6 +2178,8 @@ pub fn handle_voice_owner_window_destroyed(app: &AppHandle, window_label: &str)
}
app.state::<super::siri_voice::SiriVoiceState>()
.stop_for_window_destroyed(window_label);
app.state::<super::openai_audio::OpenAiVoiceState>()
.stop_for_window_destroyed(window_label);
}

fn software_microphone_mute(native_microphone_mute_control: bool, muted: bool) -> bool {
Expand Down
Loading