Skip to content

Test: voice mode onboarding and customization #328443

Description

@meganrogge

Refs #327418, #327853, #328058, #328094, #328259

  • Windows
  • macOS
  • Linux

Complexity: 4


Setup

  1. Use the latest VS Code Insiders and sign in with an account that has Voice Mode access.
  2. Enable chat.enableNewVoiceFeatures and agents.voice.enabled.
  3. Test in an empty trusted workspace unless a section says otherwise.
  4. For microphone-picker coverage, test once with one physical microphone and once with at least two.
  5. Before each first-run pass, run Developer: Reset Voice Mode Onboarding.

First use and onboarding

  1. Start Voice Mode from a chat input or the Command Palette.
  2. Confirm Voice Mode connects immediately and a Welcome to Voice Mode card appears above the active chat input.
  3. Confirm the card explains that it configures how the agent speaks and includes a working settings link.
  4. Confirm the broad waveform is always visible in both automatic and manually opened Voice Mode cards, regardless of microphone count. This is an agent-voice visualization, not a live microphone-level meter: it animates at rest and reacts to prerecorded voice-preview playback.
  5. With only one normalized physical microphone available, confirm the waveform remains visible but the microphone picker is hidden.
  6. With multiple normalized physical microphones available, confirm a picker appears. Open it and verify each physical device appears once, virtual default and communications duplicates are absent, and the physical system-default device appears once as <device name> (System default).
  7. Select another microphone and confirm the selection is retained and shared with Dictation and Voice: Select Microphone. The Voice Mode onboarding waveform should not react to microphone input.
  8. With agents.voice.handsFree enabled, confirm Voice Mode listens while the card is open. Play voice samples and confirm their audio is not submitted as user speech or treated as a new question.
  9. With agents.voice.handsFree disabled, confirm the initial action connects Voice Mode without beginning continuous listening; use the microphone button or shortcut again to start recording.
  10. Close the card and confirm Voice Mode remains connected and usable.
  11. Disconnect and reconnect Voice Mode and confirm the automatic card does not reappear.

Manual introduction

  1. Run Voice: Show Voice Mode Introduction from the Command Palette or the microphone context menu.
  2. Confirm the same voice visualization and conditional microphone-picker behavior described above.
  3. Confirm normal chat tips are hidden while the card is open and return after it closes. No separate chat notification should appear.
  4. Verify keyboard behavior: Tab reaches settings, voice previews, the microphone picker when present, and close; Enter/Space activate controls; Escape dismisses.

Voice and language previews

  1. For English, or a locale without a native Voice Mode voice, confirm four preview choices appear: Maya (Default), Victoria, Kevin, and Daniel.
  2. Confirm no English voice is selected when the card first opens.
  3. Select each voice and confirm:
    • its prerecorded sample plays;
    • its button shows the playing state;
    • the broad waveform changes to that voice's visual signature and responds to sample loudness;
    • the chosen voice is saved immediately.
  4. Select the currently playing voice again and confirm playback stops without clearing the selection.
  5. Change agents.voice.language to each natively spoken language and reopen the introduction:
    • German: Marc
    • Spanish: Maria
    • French: David
    • Italian: Eva
    • Japanese: Aruha
    • Korean: Jiyon
    • Portuguese: Gil
    • Chinese: Wuzhi
  6. For each supported non-English language, confirm exactly one localized preview button appears instead of the four-voice English chooser. It should play and stop the native sample without persisting an English voice choice.
  7. With agents.voice.language set to auto, confirm the system/browser locale selects the native preview when supported and otherwise falls back to the four English choices.
  8. Verify the English radio group with keyboard-only input: arrows move and select, Enter/Space play or stop, and only one choice is in the Tab order.

Voice Mode instructions

  1. Run Voice: Configure Voice Mode Instructions from the Command Palette, or choose Configure Instructions from the Voice Mode microphone menu. The command is also linked from Voice Mode settings.
  2. Create or open the user-level ~/.copilot/voice.md, add distinctive safe guidance such as a preferred pronunciation or response style, reconnect Voice Mode, and confirm the instructions are applied.
  3. Add trusted workspace .github/voice.md guidance and confirm it combines with the user-level file after reconnecting.
  4. Mark the workspace untrusted and confirm workspace instructions are ignored while user-level instructions remain available.
  5. Empty or remove both files, reconnect, and confirm Voice Mode returns to default behavior.

General Voice Mode behavior

  1. Confirm a spoken prompt is transcribed and submitted after the end-of-speech timeout.
  2. Ask multiple questions in one utterance and confirm all are addressed.
  3. Ask another question while a request is running and confirm concurrent-question handling queues or routes it correctly without losing either request.
  4. Enable verbose spoken progress updates and confirm useful progress is spoken while a request runs; disable it and confirm those updates stop.
  5. When approval is required, confirm the agent explains the request, listens for approve/deny, and follows the spoken response.
  6. With live transcripts disabled, confirm the input shows Listening... rather than an empty cursor while listening.
  7. Try voice mode in multiple sessions. Ensure confirmations and responses are read out upon your return to a session.

Spoken barge-in

  1. Enable hands-free mode and start a request that produces a long spoken response.
  2. While the agent is speaking, begin a new utterance such as "Stop" or a new question.
  3. Confirm playback stops promptly, the new utterance is captured from its beginning, and it is submitted after end-of-speech.
  4. Repeat while a spoken progress update is playing and confirm the interruption behaves the same way.
  5. Confirm audio from the agent itself does not trigger barge-in without user speech.

Accessibility

  1. Enable screen-reader optimized mode and open both automatic and manual introductions.
  2. Confirm the card is announced as Voice Mode introduction and focus moves into it when appropriate.
  3. Confirm voice choices expose useful roles, labels, selected state, and play/stop state.
  4. Confirm microphone selection and voice selection changes are announced.
  5. Enable reduced motion and confirm the card avoids unnecessary motion while preserving understandable state.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions