Add optional streaming output #12

Merged
kleb merged 1 commit from feature/streaming-output into main 2026-08-23 18:26:27 +02:00
Owner

Purpose

Add an optional streaming dictation mode that inserts finalized phrases after short pauses while preserving the existing whole-recording workflow as the default.

Key changes

  • Add the default-off Stream output setting with English and German copy.
  • Segment AudioWorklet PCM using lightweight pause detection with pre-roll and bounded utterance lengths.
  • Serialize segment transcription and typing in the main process to preserve output order.
  • Combine streamed phrases into one history entry when recording stops.
  • Preserve cancellation, clipboard fallback, settings migration, and the existing buffered path.

Verification

  • bun run typecheck
  • bun run lint
  • bun run lint:eslint
  • bun run format:check
  • bun run knip
  • bun run test (79 passing)
  • bun run build
  • bunx electron-builder --win --dir
  • Packaged Windows E2E with fake microphone audio, Parakeet, real Electron IPC, and native paste into an external Edge textarea
  • Streaming phrases appeared in order at 5.598s and 11.389s; stop produced one matching history entry with no errors or leftover WAV files
  • Buffered mode produced no text before stop, then inserted the complete result once after stop

Notes

Physical-microphone testing in noisy environments may still inform future threshold tuning.

## Purpose Add an optional streaming dictation mode that inserts finalized phrases after short pauses while preserving the existing whole-recording workflow as the default. ## Key changes - Add the default-off **Stream output** setting with English and German copy. - Segment AudioWorklet PCM using lightweight pause detection with pre-roll and bounded utterance lengths. - Serialize segment transcription and typing in the main process to preserve output order. - Combine streamed phrases into one history entry when recording stops. - Preserve cancellation, clipboard fallback, settings migration, and the existing buffered path. ## Verification - `bun run typecheck` - `bun run lint` - `bun run lint:eslint` - `bun run format:check` - `bun run knip` - `bun run test` (79 passing) - `bun run build` - `bunx electron-builder --win --dir` - Packaged Windows E2E with fake microphone audio, Parakeet, real Electron IPC, and native paste into an external Edge textarea - Streaming phrases appeared in order at 5.598s and 11.389s; stop produced one matching history entry with no errors or leftover WAV files - Buffered mode produced no text before stop, then inserted the complete result once after stop ## Notes Physical-microphone testing in noisy environments may still inform future threshold tuning.
Collaborator

kReview review

Verdict: no findings

No findings to address in the reviewed diff.

No concrete correctness, security, data integrity, concurrency, or performance defects were established from the visible changes and verified repository context.

Reviewed by kReview at 193c34ada6. This comment is conservative and based only on the PR diff, metadata, and supplied repository context.

Est. cost ~$1.31 (901.4k in / 3.6k out / gpt-5.6-sol).

<!-- codex-forgejo-review --> <!-- codex-forgejo-review-head:193c34ada65955131c3ad9494db770110f8b08e7 --> ## kReview review **Verdict:** no findings No findings to address in the reviewed diff. No concrete correctness, security, data integrity, concurrency, or performance defects were established from the visible changes and verified repository context. _Reviewed by kReview at `193c34ada6`. This comment is conservative and based only on the PR diff, metadata, and supplied repository context._ _Est. cost ~$1.31 (901.4k in / 3.6k out / gpt-5.6-sol)._ <!-- codex-forgejo-review-state:eyJoZWFkU2hhIjoiMTkzYzM0YWRhNjU5NTUxMzFjM2FkOTQ5NGRiNzcwMTEwZjhiMDhlNyIsInN1bW1hcnkiOiJObyBjb25jcmV0ZSBjb3JyZWN0bmVzcywgc2VjdXJpdHksIGRhdGEgaW50ZWdyaXR5LCBjb25jdXJyZW5jeSwgb3IgcGVyZm9ybWFuY2UgZGVmZWN0cyB3ZXJlIGVzdGFibGlzaGVkIGZyb20gdGhlIHZpc2libGUgY2hhbmdlcyBhbmQgdmVyaWZpZWQgcmVwb3NpdG9yeSBjb250ZXh0LiIsImZpbmRpbmdzIjpbXSwiY3VtdWxhdGl2ZUNvc3QiOnsidXNkIjoxLjMwNjM4Nzk5OTk5OTk5OTksImlucHV0VG9rZW5zIjo5MDEzNjIsIm91dHB1dFRva2VucyI6MzYxNiwibW9kZWwiOiJncHQtNS42LXNvbCJ9fQ== -->
kleb merged commit ab53b420ed into main 2026-08-23 18:26:27 +02:00
kleb deleted branch feature/streaming-output 2026-08-23 18:26:27 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 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
kleb/VoiceTyper!12
No description provided.