Skip to content

feat(voice): show what was spoken before interruption - #177

Merged
johnmatthewtennant merged 20 commits into
mainfrom
jtennant/voice-delivery-estimate
Aug 24, 2026
Merged

feat(voice): show what was spoken before interruption#177
johnmatthewtennant merged 20 commits into
mainfrom
jtennant/voice-delivery-estimate

Conversation

@johnmatthewtennant

Copy link
Copy Markdown
Contributor

Summary

When voice playback is interrupted, Berd estimates the last completed word from actual Pocket or Siri playback progress. The transcript keeps heard text normally and strikes the estimated unheard remainder, while a bounded hidden delivery notice tells the model what was and was not spoken. Delivery decoration remains ephemeral and clears on reload.

Reviewer-reproducible examples

Start a voice conversation, request a multi-paragraph response, and interrupt it mid-reply by speaking. The spoken prefix remains normal, all estimated unspoken text is struck, and the next assistant turn receives the delivery estimate. Repeat with Pocket and Siri, and use hang-up to confirm the stop reason is reported without claiming the user spoke.

@johnmatthewtennant
johnmatthewtennant marked this pull request as ready for review August 24, 2026 01:59
@johnmatthewtennant
johnmatthewtennant requested a review from a team August 24, 2026 01:59

@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 of exact range 8e59aac...7fb7891 found 2 blocking and 1 non-blocking findings. The supplied GitHub evidence was inspected: it is structurally available for the exact head, reports no check runs, and has a pending combined status with zero statuses; required checks still govern merge readiness. Final self-check covered every changed voice-interruption and transcript-rendering flow, accessibility, localization, navigation/consent, async/error/never-completes/lifecycle/races, test honesty, design-system/project rules, duplicate overlap, and concrete user effect. No supplied review threads exist, so no finding was suppressed as a duplicate.

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

Comment thread src/features/voice-conversation/lib/nativeAssistantSpeech.ts
Comment thread src-tauri/src/commands/pocket_voice.rs Outdated
Comment thread src/features/voice-conversation/lib/nativeAssistantSpeech.ts

@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 of exact range 8e59aac...dbc92b1 found 2 blocking and 3 non-blocking publishable findings. One additional proposed finding was suppressed because it overlaps a resolved automation thread with a substantive human-account reply. The supplied GitHub evidence was inspected for the exact head; it reports a pending combined status with zero statuses/check runs, so required checks still govern merge readiness. Final self-check covered the complete voice interruption, hang-up, native delivery accounting, transcript and agent-work rendering flows; accessibility; localization; navigation and consent; async errors, never-completes, lifecycle and races; test honesty; design-system/project rules; duplicate overlap; and concrete evidence plus user effect for blocking severity.

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

Comment thread src/features/voice-conversation/lib/nativeAssistantSpeech.ts
Comment thread src/features/voice-conversation/lib/nativeAssistantSpeech.ts
Comment thread src/features/voice-conversation/lib/nativeAssistantSpeech.ts Outdated
Comment thread src/features/chat/ui/AgentWorkPanel.tsx
Comment thread src/shared/ui/ai-elements/message.tsx 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

COMMENT. Fresh static review of exact range 8e59aac...ab87901 found 0 blocking and 1 non-blocking publishable finding. Three additional proposed findings were suppressed because each maps to the same underlying issue as a resolved automation thread with a substantive human-account reply. The supplied GitHub evidence was inspected for the exact head: all eight supplied check runs completed successfully, while required checks still independently govern merge readiness. Final self-check covered every changed voice start, streaming, interruption, hang-up, failure, delivery-estimation, transcript, agent-work, Markdown and accessibility flow; localization; navigation and consent; async errors, never-completes, lifecycle and races; test honesty; design-system/project rules; duplicate overlap; and concrete evidence plus user effect for severity.

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

Comment thread src-tauri/src/commands/pocket_voice.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 of exact range 8e59aac...4c4cf4d found no publishable findings. Five proposed concerns were suppressed because each maps to a resolved prior automation thread with a substantive human-account reply; no unresolved or unmatched suppression remains. The supplied GitHub evidence was inspected for the exact head: all eight supplied check runs completed successfully, while required checks still independently govern merge readiness. Final self-check covered every changed voice startup, streaming, interruption, hang-up, timeout, failure and delivery-accounting path; transcript, agent-work and Markdown rendering; accessibility; localization; navigation and consent; async errors, never-completes, lifecycle and races; test honesty; design-system/project rules; duplicate overlap; and concrete evidence plus user effect for blocking severity.

Deterministic publication result: 0 blocking and 0 non-blocking finding(s) publishable; 5 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.

@johnmatthewtennant
johnmatthewtennant merged commit 722726f into main Aug 24, 2026
8 checks passed
@johnmatthewtennant
johnmatthewtennant deleted the jtennant/voice-delivery-estimate branch August 24, 2026 11:05
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