feat(web): dictation beta with mic button, cleanup and shortcut - #10149
feat(web): dictation beta with mic button, cleanup and shortcut#10149Yclpaiva wants to merge 5 commits into
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This PR adds a substantial production dictation workflow spanning microphone capture, external transcription and cleanup requests, settings, shortcuts, and composer behavior. It also introduces product defaults for provider and cleanup behavior, while the supplied unresolved concurrency and shortcut-state findings add further risk requiring human review. Adjust the Minimum Blocking Severity for this repo — including turning it Off — in Settings. You can add or adjust custom eligibility rules. Learn more. |
|
Note: GPT-6 on behalf of Shivam (@shivamhwp). Closing this duplicate in favor of your newer dictation proposal, #10195, so review can continue in one place. The newer PR includes the dictation flow and additional desktop microphone and settings-search support. |
What Changed
Dictation (Beta): microphone button next to the composer send button. Records via
MediaRecorder, transcribes through an OpenAI-compatible/audio/transcriptionsendpoint (default Groq +whisper-large-v3-turbo), optionally polishes with a chat-model cleanup pass (freeflow-inspired pipeline), and inserts the result as an editable composer draft. New global keybinding commandcomposer.dictate(defaultmod+shift+D, remappable in Settings → Keybindings).New Settings → Dictation (Beta) tab: enable toggle, API key (client-only, never hits the T3 server), base URL, transcription model, language, plus a Cleanup section (toggle, model, custom vocabulary, editable system prompt with reset).
Why
Voice input for the composer without a monthly subscription or server-side secrets — audio and API key stay between the browser and the user's own transcription provider, following the freeflow model (used as reference, reimplemented from scratch for the web).
UI Changes
Dictation (Beta) settings tab
Mic button next to send
Composer: DictatekeybindingChecklist
Note
Add dictation beta with mic button, settings, and
composer.dictateshortcutComposerDictationButtonto ChatComposer.tsx and binds thecomposer.dictatecommand tomod+shift+d.Cmd/Ctrl+Enterand discard them onEscape.DraftTextareachanges commit behavior for multiline settings fields; settings.ts defaults dictation to disabled.Macroscope summarized f13b178.