[BUG] VS Code extension: AskUserQuestion option `preview` is silently dropped by the webview — options render as label + description only

Status Open
Reported on v2.1.195
Maintainer reply None cached
Activity 0 comments · opened Sep 17, 2026

[BUG] VS Code extension: AskUserQuestion option preview is silently dropped by the webview — options render as label + description only

Refiling #73009 (opened 2026-07-01, closed 2026-08-20 as not_planned by the stale bot, no maintainer reply) at the bot's own invitation. That report was against Cursor's build on macOS at 2.1.195–2.1.197; this one is against the first-party extension on Windows at 2.1.273 and 2.1.274, with the cause located in the shipped bundle so it needs no repro environment to confirm.

What happens

AskUserQuestion options carrying a preview field render with no preview anywhere, in any layout. The user sees the question, the option labels and the descriptions. The preview content is parsed, discarded, and never displayed.

The CLI renders these correctly — the side-by-side layout is real enough elsewhere that it has its own bug reports (#91135, #88657, #80070, #65894).

Cause

resources/../webview/index.js, the option renderer. Deobfuscated:

div(optionContent, [
  div(optionLabel, option.label),
  option.description && div(optionDescription, option.description)
])

option.preview is never read. Verbatim from 2.1.274:

{className:O4.optionContent,children:[F("div",{className:O4.optionLabel,children:T.label}),
 T.description&&F("div",{className:O4.optionDescription,children:T.description})]})

and from 2.1.273 (same code, different mangled names):

{className:j4.optionContent,children:[F("div",{className:j4.optionLabel,children:L.label}),
 L.description&&F("div",{className:j4.optionDescription,children:L.description})]})

Corroborating: there is no optionPreview class anywhere in the bundle, no previewPane / previewBox / previewContent identifier, and webview/index.css contains the substring preview exactly once — for image-attachment thumbnails, unrelated to this component.

So this is not a layout or CSS regression. The field was never wired into the webview.

Why it is worse than a missing feature

The tool's own description instructs the model to use preview for "concrete artifacts that users need to visually compare — ASCII mockups of UI layouts or components, code snippets showing different implementations, diagram variations, configuration examples", and states that "when any option has a preview, the UI switches to a side-by-side layout."

The model is therefore told the field renders, and complies. The client drops it. Neither end learns anything:

  • the model believes it showed the user a mockup and phrases the rest of the turn on that assumption;
  • the user is asked to pick between visual alternatives with the visual part removed, and has no way to know anything was withheld.

That is silent lossy truncation of model output between the model and the user, which is a different severity class from an unimplemented field. It also explains why #73009 drew no corroborating reports in fifty days and was closed for inactivity: an absent preview produces no visible defect to report. The CLI's preview bugs get filed steadily precisely because there the thing renders and then misbehaves in view.

Repro

  1. In the VS Code extension, have the model call AskUserQuestion (single-select) with at least one option carrying a multi-line preview.
  2. Focus each option in turn.

Expected: a preview pane showing the content, per the tool description.
Actual: a single-column list of labels and descriptions; no preview pane in any layout, on focus or otherwise.

Scale, on one machine

From one user's ~/.claude/projects/** transcripts, 2026-07-20 to 2026-09-17: 706 AskUserQuestion rounds, of which 125 carried at least one preview, spanning seven repositories. Every one ran under entrypoint: claude-vscode, so every one was discarded unseen. The user discovered this only by chance, after months of answering design questions — building silhouettes, layout mockups, diagram variants — from the text descriptions alone, and had assumed the gap was their own.

Suggested fix

Render option.preview in the option card, or in a pane beside the list as the CLI does and the tool description promises.

If it is not going to be implemented, the more valuable fix is to stop telling the model otherwise: gate the preview guidance in the AskUserQuestion description on the client's capability, or have the extension surface a one-time notice when it drops a preview. Either makes the loss visible. Silence is the actual defect here — a model that knows previews will not render simply writes the drawing into its chat message, which works today and is what this user now does.

Environment

  • Extension: anthropic.claude-code 2.1.273 and 2.1.274, win32-x64
  • VS Code on Windows 10 Pro 19045
  • Not Cursor — this is the first-party extension, unlike #73009

View original on GitHub ↗