Skip to content

Voice: show "Answered" instead of "Skipped" for externally-answered questions#325698

Open
meganrogge wants to merge 2 commits into
mainfrom
megrogge/voice-question-answered-summary
Open

Voice: show "Answered" instead of "Skipped" for externally-answered questions#325698
meganrogge wants to merge 2 commits into
mainfrom
megrogge/voice-question-answered-summary

Conversation

@meganrogge

Copy link
Copy Markdown
Collaborator

Fixes microsoft/vscode-internalbacklog#8157

Problem

When a question the agent asks is answered outside the carousel UI — e.g. by a voice or free-text response the model interprets — the agent host completes the input request with Accept but no structured answers. The carousel summary then rendered "Skipped", even though the user actually did respond.

Fix

  • Track the completion outcome (ChatInputResponseKind) in agentHostSessionHandler, and mark the carousel answeredExternally when it is accepted without structured answers (both the live ChatInputCompleted echo and the disposal settle path).
  • Add answeredExternally to IChatQuestionCarousel / ChatQuestionCarouselData (serialized via toJSON so it survives reload).
  • Render "Answered" instead of "Skipped" in the carousel summary when answeredExternally is set.

Genuinely skipped/cancelled/abandoned questions (no Accept) still render "Skipped".

Tests

  • shows answered message when answeredExternally but no data
  • toJSON preserves answeredExternally

All 71 carousel tests pass.

…uestions

When a question carousel is answered outside its own UI (e.g. a voice or
free-text response the model interprets), the agent host completes the input
request with Accept but no structured answers, so the summary rendered
"Skipped" even though the user did respond.

Track the completion outcome and mark the carousel answeredExternally when it
is accepted without structured answers, then render "Answered" in the summary.

Fixes microsoft/vscode-internalbacklog#8157

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 13, 2026 21:30

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

Updates question carousels to distinguish externally answered requests from skipped requests.

Changes:

  • Tracks and persists externally answered input requests.
  • Renders “Answered” for accepted requests without structured answers.
  • Adds serialization and rendering tests.
Show a summary per file
File Description
agentHostSessionHandler.ts Tracks external acceptance outcomes.
chatService.ts Extends the carousel contract.
chatQuestionCarouselData.ts Persists the new state.
chatQuestionCarouselPart.ts Renders the “Answered” summary.
chatQuestionCarousel.css Styles the new summary.
chatQuestionCarouselPart.test.ts Tests summary rendering.
chatQuestionCarouselData.test.ts Tests serialization.

Review details

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

@meganrogge meganrogge self-assigned this Jul 13, 2026
@meganrogge meganrogge modified the milestones: 1.129.0, 1.133.0, 1.130.0 Jul 13, 2026
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