voice: add voice.md, dictation.md customization - #327418
Merged
meganrogge merged 3 commits intoJul 28, 2026
Merged
Conversation
Use trusted workspace and user voice instructions for dictation post-processing and Voice Mode sessions.\n\nFixes microsoft#327334\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
benvillalobos
previously approved these changes
Jul 24, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Adds voice.md customization for dictation cleanup and Voice Mode.
Changes:
- Discovers user and trusted-workspace voice instructions.
- Applies instructions to dictation prompts and Voice Mode payloads.
- Adds targeted tests and documentation.
Show a summary per file
| File | Description |
|---|---|
promptsService.test.ts |
Tests instruction discovery and trust filtering. |
voiceSessionController.test.ts |
Adds the prompts-service dependency. |
voiceClientService.test.ts |
Tests start/resume serialization. |
chatSpeechToTextService.test.ts |
Tests prompt composition. |
common/voiceClientService.ts |
Extends voice session APIs. |
promptsServiceImpl.ts |
Loads and combines voice.md files. |
promptsService.ts |
Exposes voice-instruction discovery. |
promptFileLocations.ts |
Defines the voice.md filename. |
voiceSessionController.ts |
Supplies instructions during connections. |
browser/voiceClientService.ts |
Serializes voice_instructions. |
chatSpeechToTextService.ts |
Adds instructions to cleanup prompts. |
AI_CUSTOMIZATIONS.md |
Documents voice customization behavior. |
Review details
- Files reviewed: 12/12 changed files
- Comments generated: 4
- Review effort level: Medium
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8e7dfb9e-dd5b-4c0a-b15c-0428a236e584
Use dictation.md for local dictation cleanup while keeping voice.md exclusive to Voice Mode, with dedicated discovery and configuration entry points. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 42d07485-994d-482e-9f78-862fc4e11d89
meganrogge
marked this pull request as ready for review
July 28, 2026 16:05
meganrogge
enabled auto-merge (squash)
July 28, 2026 16:08
vritant24
approved these changes
Jul 28, 2026
Closed
eli-w-king
added a commit
that referenced
this pull request
Jul 28, 2026
Three things the card was getting wrong. It drew a *chart*. Each stroke was an independent FFT band, so neighbours jumped independently and the row read as a spectrum analyser rather than as a voice. Replace that with the instrument Voice Mode already uses: a travelling sine composite under a centre taper, with the microphone driving amplitude rather than per-band height. Dropping the spectrum takes the logarithmic band mapping, the noise floor, the response curve and the dB window with it - all of which only ever existed to make `getByteFrequencyData` behave. It was painted in an accent colour that ignored the theme. The strokes now inherit `currentColor` at 1px with 2px gaps, matching both the toolbar pill and Voice Mode's own card, and the row's opacity rides the same level that drives its height - quiet at rest, brighter as you speak, dimmer still when there is no microphone to read. The bar count follows the measured width so that 1px/2px rhythm survives a resize. It was a dead end. Neither `dictation.enabled` nor the `dictation.md` customization added in #327418 was reachable from the one surface a first-time user is actually looking at. The description now carries two links, in the same `renderFormattedText` shape the Voice Mode card uses so translators get a whole sentence rather than concatenated fragments. Both anchors are promoted to real controls; the callback distinguishes them by index, so the localization comment pins their order. Voice Mode is no longer mentioned: it introduces itself. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
dictation.md.mov
Summary
~/.copilot/voice.mdand trusted workspace.github/voice.mdfiles~/.copilot/dictation.mdand trusted workspace.github/dictation.mdfilesvoice_instructionson session start and resumeAdds commands to the command palette and to the context menus:

Voice Mode backend support
The Voice Mode backend must:
voice_instructionsstring on bothstart_sessionandresume_sessionvoice.mdfiles are foundvoice_instructionsfor Dictation;dictation.mdis consumed locally by VS Code's Dictation cleanup pathFixes #327334