Pause transcription when a recording is paused#1640
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Here's a visual recap of what changed:
Open the full interactive recap |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
We've been automatically notified and are looking into it. Push a new commit to re-trigger the review, or contact support@builder.io if this keeps happening. Error ID: |
There was a problem hiding this comment.
Builder reviewed your changes and found 2 potential issues 🟡
Review Details
This incremental update addresses the two previously open concerns I reviewed: native transcription resume is now moved back behind a successful native_fullscreen_recording_resume, and the Whisper pause/resume error path no longer snaps desiredPaused back to the old engine state. I verified both of those changes and resolved the stale PR comments before posting this review.
Risk assessment: standard (medium) because this is recorder/transcription lifecycle logic in user-facing capture flows. The overall approach is still sound: the PR now pauses transcription with recording, preserves trailing Whisper finals when stopping from paused state, and keeps the desired pause state queued across in-flight transitions. The remaining issues are around edge-case ordering in the fallback/browser path and around mixing late Whisper finals from the old session with resumed speech from the new session.
Key findings:
- 🟡 MEDIUM Stopping immediately after a Web Speech pause can drop the last finalized words.
- 🟡 MEDIUM Whisper can interleave late pre-pause finals after post-resume speech on a quick pause→resume.
🧪 Browser testing: Will run after this review (PR touches UI code)
| .then(() => { | ||
| pausedAt = at; | ||
| emitState(); | ||
| console.log("[clips-recorder] native pause: pausing transcription"); |
There was a problem hiding this comment.
yep. Helps with debugging when stuff break
Previously, pausing a recording only paused the video - the live transcription engine kept running, so the app kept using the mic and CPU while "paused".
This wires transcription pause/resume into all recording paths so it stops with the recording and restarts on resume. Adds
pause()/resume()to the transcription capture (whisper and web-speech), handles the case where the user pauses while the engine is still starting up, and adds debug logs around each transition.