FlowVoice — part 3 (delivery and history)
Two promises about a dictation's words, and where the words you have dictated are kept: a dictation is delivered whole or its audio is kept rather than half-lost, and every dictation you have made sits in a history list inside the settings card. Part 1 covers the hotkeys, the speech engines and what they cost, the HUD and where to configure it; Part 2 covers the recording kept for every dictation.
What it is
What a delivered dictation promises and where it is kept: the words the speech engine heard are delivered even when it never finalized them, a transcript far too short for its audio keeps that recording instead of being trusted, and every dictation you have made stays in a history list inside the settings card. Part 1, flowvoice.md, covers the two hotkey slots, the speech engines and their costs, the floating HUD and the settings card; Part 2, flowvoice-part-2.md, covers the recording kept for every dictation.
Where to find it
The dictation history is inside the settings card — Settings → Voice Control, under the Dictation (FlowVoice) heading. The CLI routes that trigger dictation are listed in Part 1 of this page.
How it behaves
A dictation is delivered whole — or its audio is kept, never both lost
Two promises, added 2026-09-30 after a 53-second dictation delivered 285 characters and its audio was then deleted as a success:
- What the engine heard is delivered, even when it never finalized it. Speech engines stream a dictation on two channels: the committed text, and the in-progress read of the sentence still being spoken. The in-progress channel is not a preview — measured against Google's Gemini Live model, a dictation's last sentences can exist ONLY there, with the committed text stopping mid-thought. FlowVoice now takes whatever the in-progress channel carries that the committed text does not, so the words arrive instead of being dropped. Nothing is ever repeated: text the committed channel already delivered is recognised and skipped.
- A transcript that cannot match its audio keeps that audio. Once a dictation's text is safely in history the recording is normally deleted — it has done its job. But text far too short for the audio it came from is not a success worth being certain about, so the recording is kept instead and appears under Saved recordings as Transcription may be incomplete — retry for the rest, with the same Transcribe again action as any other kept recording. Ordinary dictation is unaffected, twice over: only dictations of twenty seconds or more are judged at all (a nine-second sentence is too brief for the ratio to mean anything), and every long dictation on record reads 15–21 characters per second of speech against an incident reading of 5.3.
If a dictation ever comes back looking short, the pill says so — "Some of that dictation may be missing — your recording is saved. Click to transcribe it again." — and clicking it re-transcribes that recording rather than starting a new one.
What happens to a dictation's audio — that every recording is kept, and how a failed or empty transcription is recovered from it — is on FlowVoice — part 2.
History (inline in the settings card)
The standalone FlowVoice sidebar tile + FlowVoiceView panel were retired; FLOWVOICE_PROJECT_ID (__flowvoice__) survives in src/shared/virtual-project-ids.ts only so stored references still resolve. History now renders inline in the settings card: the 20 most recent dictations (the store caps at 50 in flowvoice-history.json under userData, history-store.ts), each showing target app, window title, relative time, and duration, plus the cleaned text, a raw-transcript disclosure when it differs, per-row Copy / Remove, and a Clear all action. The list live-updates on the flowvoice:result push.
History is age-purged as well as capped. The 50-record cap is only the first limit — what is kept is also deleted once it is older than your data-retention window (30 days by default, set at Settings → Data & Storage), so a dictation you made months ago is gone whether or not the 50 slots filled up. The purge covers everything a dictation record holds: the raw transcript, the cleaned text, and the app and window title you dictated into — that last one is why the window matters if you dictate into something sensitive. It runs on the app's periodic retention sweep rather than on a timer of its own, and the Clear all action and the per-row Remove clear a record immediately if you would rather not wait. There is a kill switch for the sweep (AMC_DISABLE_FLOWVOICE_HISTORY_PURGE=1).
Related
- flowvoice.md — Part 1: the two hotkey slots, the speech engines and what they cost, the HUD, and the settings card
- flowvoice-part-2.md — Part 2: every dictation keeps its audio, and a failed or empty transcription is recovered from it
- cost-control.md — where FlowVoice's metered costs are surfaced
Last verified 2026-10-06