Keep multi-segment mobile voice dictation free of repeated phrases #935

Closed
opened 2026-08-16 03:53:51 +00:00 by timmy · 0 comments
Owner

User problem

Mobile browsers emit cumulative Web Speech result lists. The current voice-to-draft flow re-appends every prior final result on each event, so dictation across pauses can become First point. First point. Second point. and persist that corruption into the private recovery checkpoint.

Evidence

frontend/voice-issue-capture.js iterates all event.results rather than starting at event.resultIndex. Existing tests model each event as containing only its newest segment. Historical issue/title and recent commit review found voice capture, recovery, and microphone-policy work, but no cumulative-result handling.

Acceptance criteria

  • Process newly changed recognition results beginning at event.resultIndex.
  • Append only final segments; interim segments never enter review or persistence.
  • Browser-realistic cumulative events produce each phrase exactly once.
  • The account-bound checkpoint receives the exact deduplicated transcript.
  • Existing transcript mapping, recovery, permission, and unsupported-browser behavior remains green.
  • Add a failing behavioral regression test before implementation.
## User problem Mobile browsers emit cumulative Web Speech result lists. The current voice-to-draft flow re-appends every prior final result on each event, so dictation across pauses can become `First point. First point. Second point.` and persist that corruption into the private recovery checkpoint. ## Evidence `frontend/voice-issue-capture.js` iterates all `event.results` rather than starting at `event.resultIndex`. Existing tests model each event as containing only its newest segment. Historical issue/title and recent commit review found voice capture, recovery, and microphone-policy work, but no cumulative-result handling. ## Acceptance criteria - Process newly changed recognition results beginning at `event.resultIndex`. - Append only final segments; interim segments never enter review or persistence. - Browser-realistic cumulative events produce each phrase exactly once. - The account-bound checkpoint receives the exact deduplicated transcript. - Existing transcript mapping, recovery, permission, and unsupported-browser behavior remains green. - Add a failing behavioral regression test before implementation.
timmy closed this issue 2026-08-16 04:00:48 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#935
No description provided.