Skip to content

feat(voice): add OpenAI text-to-speech - #233

Merged
johnmatthewtennant merged 22 commits into
mainfrom
openai-tts-base
Aug 30, 2026
Merged

feat(voice): add OpenAI text-to-speech#233
johnmatthewtennant merged 22 commits into
mainfrom
openai-tts-base

Conversation

@johnmatthewtennant

@johnmatthewtennant johnmatthewtennant commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds OpenAI text-to-speech as a Voice Conversation output backend.

  • Adds an OpenAI API-key field in Voice settings.
  • Stores the key as Berd's shared OpenAI voice credential and never reads Goose provider credentials.
  • Streams synthesized speech through the selected output device with interruption and delivery tracking.
  • Stops active playback when the credential changes or is removed.
  • Localizes setup guidance and distinguishes missing TTS prerequisites.

Configuration

Enter an OpenAI key in Settings → Voice → Speech output after selecting OpenAI. Berd stores it in the system credential manager under the shared OpenAI voice entry. Goose provider credentials remain separate.

@johnmatthewtennant
johnmatthewtennant changed the base branch from main to jtennant/voice-transcript-routing August 28, 2026 19:27
@johnmatthewtennant
johnmatthewtennant marked this pull request as ready for review August 29, 2026 16:41
morgmart
morgmart previously approved these changes Aug 29, 2026

@morgmart morgmart left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Automated code review

APPROVE. Fresh static review completed for the exact three-dot comparison 771776f...382df01. The code-review and wes-review passes covered the OpenAI TTS credential setup, readiness and settings UI, backend selection, streaming synthesis/playback, interruption and delivery accounting, window teardown, persistence, platform behavior, localization, and tests. Final self-check covered every changed user flow; accessibility; English and Spanish localization completeness; navigation and consent guards; async failure, never-completes, lifecycle, and race behavior; test honesty; design-system and project rules; duplicate overlap; and the evidence/user-effect bar for blocking severity. No publishable findings survived. Supplied GitHub evidence was inspected: all ten reported check runs completed successfully; the separate combined commit-status state is pending and required checks still govern merge readiness.

Deterministic publication result: 0 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.

Pending checks: 1 check(s) are not complete.

This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.

@morgmart morgmart left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Automated code review

REQUEST_CHANGES. Fresh static review completed for the exact three-dot comparison 771776f...b1268c3. The code-review and wes-review passes covered credential setup and migration, readiness and settings UI, backend selection, streaming synthesis and playback, interruption and delivery accounting, window teardown, persistence, platform behavior, localization, and changed tests. Final self-check covered every changed user flow; accessibility; English and Spanish localization completeness; navigation and consent guards; async failure, never-completes, lifecycle, and race behavior; test honesty; design-system and project rules; duplicate and overlapping findings; and concrete evidence plus user effect for blocking severity. One blocking credential-state consistency issue remains. Supplied GitHub evidence was inspected: all ten reported check runs completed successfully; the separate combined commit-status state is pending, and required checks still govern merge readiness.

Deterministic publication result: 1 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.

Comment thread src-tauri/src/commands/openai_voice_credentials.rs Outdated

@morgmart morgmart left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Automated code review

APPROVE. Fresh static review completed for the exact three-dot comparison 96a91d9...02b5005. The code-review and wes-review passes covered credential setup and migration, readiness and settings UI, backend selection, streaming synthesis and playback, interruption and delivery accounting, window teardown, persistence, platform behavior, localization, and changed tests. The previously reported credential-state inconsistency is fixed: canonical mutation now determines success while legacy cleanup is best-effort, with regression coverage. Final self-check covered every changed user flow; accessibility; English and Spanish localization completeness; navigation and consent guards; async failure, never-completes, lifecycle, and race behavior; test honesty; design-system and project rules; duplicate and overlapping findings; and concrete evidence plus user effect for blocking severity. No publishable findings survived. Supplied GitHub evidence was inspected: all ten reported check runs completed successfully; required checks still govern merge readiness.

Deterministic publication result: 0 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.

Pending checks: 1 check(s) are not complete.

This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.

Base automatically changed from jtennant/voice-transcript-routing to main August 30, 2026 02:24
@johnmatthewtennant
johnmatthewtennant merged commit 9d6cb91 into main Aug 30, 2026
15 of 16 checks passed
@johnmatthewtennant
johnmatthewtennant deleted the openai-tts-base branch August 30, 2026 02:47
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.

2 participants