Skip to content

Address important dictation feedback - #327684

Merged
meganrogge merged 10 commits into
microsoft:mainfrom
meganrogge:agents/transcript-setting-glow-animation
Jul 27, 2026
Merged

Address important dictation feedback#327684
meganrogge merged 10 commits into
microsoft:mainfrom
meganrogge:agents/transcript-setting-glow-animation

Conversation

@meganrogge

@meganrogge meganrogge commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator
fixes.mov

Summary

Improves dictation feedback and first-use polish across the Chat and Agents composer surfaces.

Transcript visibility

  • Add a dictation.showTranscript setting (default on) controlling whether interim dictation text is shown while dictating.
  • When the transcript is hidden, still insert the final transcript when dictation ends, so nothing is lost.

Microphone feedback

  • Add an audio-reactive microphone glow while recording (regardless of transcript visibility), using the focus border color.
  • Respect reduced-motion and high-contrast preferences (visible outline, no animation).

Model download / connect state

  • Show the mic download icon (not the cloud icon) while the on-device model downloads.
  • Convey download/load progress via the mic icon spinner/ring instead of placeholder progress text, and keep the previous placeholder until the model is ready.
  • Pause chat input placeholder rotation during dictation so the dictation placeholder is not clobbered (Chat and Agents window).
  • Add a "Downloading local model, click to cancel" hover on the dictation download affordance; clicking cancels the pending download/connect (Chat and Agents window).

All changes apply to both the main Chat composer and the Agents window composer.

Testing

  • targeted DictationSession unit tests
  • client typecheck
  • layer validation
  • compile
  • precommit hygiene

Fixes https://github.com/microsoft/vscode-internalbacklog/issues/8607
Fixes https://github.com/microsoft/vscode-internalbacklog/issues/8609
Fixes https://github.com/microsoft/vscode-internalbacklog/issues/8629
Fixes https://github.com/microsoft/vscode-internalbacklog/issues/8601
Fixes https://github.com/microsoft/vscode-internalbacklog/issues/8632

Hide live dictation transcripts by default while preserving final insertion, and provide audio-reactive microphone feedback across dictation surfaces.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 27, 2026 19:05
@meganrogge meganrogge self-assigned this Jul 27, 2026
@meganrogge meganrogge added this to the 1.131.0 milestone Jul 27, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds optional hidden interim dictation transcripts with microphone glow feedback across Chat and Agents surfaces.

Changes:

  • Adds the default-off dictation.showTranscript setting.
  • Preserves final transcript insertion when interim text is hidden.
  • Adds audio-reactive glow with reduced-motion and high-contrast handling.
Show a summary per file
File Description
dictationSession.test.ts Tests hidden interim and final insertion.
voiceInputModeActionViewItem.ts Adds glow to the segmented dictation control.
dictationMicGlow.css Styles glow levels and HC fallback.
dictationSession.ts Conditionally suppresses interim text.
dictationMicGlow.ts Implements reactive microphone feedback.
dictationActionViewItem.ts Adds glow to Chat’s dictation action.
chatSpeechToTextService.ts Exposes configuration and audio analyser state.
chat.shared.contribution.ts Registers the transcript setting.
newChatInput.ts Adds glow to the Agents composer.

Review details

  • Files reviewed: 9/9 changed files
  • Comments generated: 3
  • Review effort level: Medium

Comment thread src/vs/workbench/contrib/chat/browser/speechToText/dictationSession.ts Outdated
meganrogge and others added 2 commits July 27, 2026 15:14
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Read dictation.showTranscript live in the transcript handler so it stays
in sync with the mic glow, and force full opacity on the high-contrast
outline so the contrast fallback is not faint.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
vijayupadya
vijayupadya previously approved these changes Jul 27, 2026
The on-device (non-cloud) dictation preparing affordance used the cloud
download icon while the model was downloading. Use the mic download icon
instead so it reads as a microphone download, matching the Voice Mode
toolbar, and swap that icon for the spinner on the cloud backend.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…pares

While the on-device dictation model downloads/loads, the editor placeholder
churned through 'Downloading… X%' / 'Preparing…' text. Rely on the mic icon
download spinner (DictationDownloadRing) to convey progress and keep the
placeholder on its previous value until the model is ready, then show
'Listening…'. This applies to both the chat input and the Agents window,
which share startDictation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@meganrogge
meganrogge marked this pull request as draft July 27, 2026 19:24
meganrogge and others added 4 commits July 27, 2026 15:29
The Agents window (and empty agent-host chat sessions) rotate the input
placeholder on a timer. With the transcript hidden the dictation input
stays empty, so the rotation clobbered the dictation session's
"Listening…" placeholder. Skip rotating while the editor is the active
dictation editor so the dictation UX (no progress text; mic spinner shows
download progress) applies consistently in the Agents window too.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@meganrogge meganrogge changed the title Add hidden dictation transcript feedback Address important dictation feedback Jul 27, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@meganrogge
meganrogge marked this pull request as ready for review July 27, 2026 19:52
@meganrogge
meganrogge enabled auto-merge (squash) July 27, 2026 19:55
@meganrogge
meganrogge disabled auto-merge July 27, 2026 20:06
@meganrogge
meganrogge merged commit 2b0ff3a into microsoft:main Jul 27, 2026
29 checks passed
eli-w-king added a commit that referenced this pull request Jul 27, 2026
Refines the dictation mic glow added in #327684.

The glow currently spreads outward from the button as a focus-colored halo,
and steps through four discrete intensity levels driven directly by each
analyser frame. The stepping is visible as the level crosses a threshold, and
tracking the waveform frame-for-frame reads as a level meter rather than as a
microphone that is simply on.

Move the light inside the button and smooth its response:

- Light now gathers along the button's inner edge over a faint bloom, with the
  middle left clear so the glyph is never clouded.
- Replace the four level classes with a continuous `--dictation-mic-level`,
  eased asymmetrically (fast attack, slow release) so the glow swells into
  speech and drifts back out of it. The level is also shaped to lift quiet
  speech and clamp loud speech, keeping opacity in a narrow band.
- Add a `chat.dictationActiveMicGlow` theme color, defaulting to the blue Voice
  Mode's listening glow uses so the two features read as one family.
- Suppress the glow while the model is preparing, so it doesn't compete with
  the download ring, and wind it down while the final transcript lands rather
  than cutting out the moment recording stops.

The `setupDictationMicGlow` signature and its three call sites are unchanged,
as is the high-contrast outline fallback and the reduced-motion behavior (the
glow still shows, held at a steady level).

Refs microsoft/vscode-internalbacklog#8607

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants