feat(voice): add OpenAI speech-to-text - #232
Conversation
8f05ad1 to
31c5425
Compare
06c926a to
7bdb07d
Compare
7bdb07d to
0f7c252
Compare
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
REQUEST_CHANGES: the OpenAI STT startup path reports readiness after only writing session.update, before the server confirms that the transcription session is configured. Static review covered all 18 changed files and the complete exact three-dot comparison. Supplied GitHub evidence was inspected; all captured checks for the exact head SHA are completed successfully. No local code, tests, builds, package managers, hooks, binaries, or project scripts were run.
Deterministic publication result: 1 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
APPROVE: fresh static inspection of all 19 changed files in the exact three-dot comparison found no publishable findings. The prior server-readiness issue is fixed: startup now waits for session.updated, propagates pre-acknowledgement errors and timeouts, and has discriminating delayed-acknowledgement and rejection coverage. Final self-check covered every changed voice setup and conversation flow; accessibility; English and Spanish localization; navigation, foreground ownership, and consent guards; async failure, never-completes, shutdown, mute-boundary, transcript-ordering, and race behavior; test honesty; design-system and project rules; duplicates and overlap; and the evidence required for blocking severity. Supplied GitHub evidence is structurally valid and was inspected: DCO, frozen install, Semgrep, and zizmor succeeded, while frontend and Tauri Rust checks were still in progress, so required checks still govern merge readiness. No local code, tests, builds, package managers, generated binaries, hooks, or project scripts were run.
Deterministic publication result: 0 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.
Pending checks: 5 check(s) are not complete.
This approval reflects the completed code review only; merge readiness remains governed by the repository's required checks.
9a1bcd5 to
ec3d305
Compare
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
REQUEST_CHANGES: fresh static inspection of all 19 changed files in the exact three-dot comparison found one blocking credential-state consistency issue. Final self-check covered every changed voice settings and conversation flow; accessibility; English and Spanish localization; navigation, foreground ownership, and consent guards; async failure, never-completes, shutdown, mute-boundary, transcript-ordering, startup, and race behavior; test honesty; design-system and project rules; duplicate/overlapping findings; and concrete evidence plus user effect for blocking severity. The prior server-readiness issue remains fixed and is protected by a resolved thread with a substantive human reply, so it is neither a finding nor a suppression. Supplied GitHub evidence is structurally valid and was inspected; all captured checks for the exact head SHA completed successfully. No local code, tests, builds, package managers, generated binaries, hooks, or project scripts were run.
Deterministic publication result: 1 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.
be01187 to
1279d4c
Compare
1279d4c to
570a115
Compare
570a115 to
3e23013
Compare
3e23013 to
f121bd3
Compare
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
APPROVE: fresh static inspection of all 19 changed files in the exact three-dot comparison found no publishable findings. The prior readiness issue remains fixed by waiting for session.updated and covering delayed acknowledgement and pre-acknowledgement rejection. The prior credential consistency issue remains fixed: canonical save/delete determines success while legacy cleanup is best-effort, with discriminating regression coverage. Final self-check covered every changed voice settings and conversation flow; accessibility; English and Spanish localization; navigation, foreground ownership, and consent guards; async failure, never-completes, startup, shutdown, mute-boundary, transcript-ordering, credential migration, lifecycle, and race behavior; test honesty; design-system and project rules; duplicate/overlapping findings; and concrete evidence plus user effect for blocking severity. Supplied GitHub evidence is structurally valid and was inspected; all captured checks for the exact head SHA completed successfully. No local code, tests, builds, package managers, generated binaries, hooks, or project scripts were run.
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.
Summary
Adds OpenAI realtime speech-to-text as a Voice Conversation input backend.
OPENAI_API_KEYenvironment variable.Configuration
Enter an OpenAI key in either Settings → Voice → Speech input or Settings → Voice → Speech output. Saving or clearing it from either location updates the same system credential-manager entry for both voice backends. Berd-scoped environment variables may override voice models and the OpenAI voice base URL, but not the credential.