MoonshotAI / MoonshotAI/kimi-code

vscode: QuestionDialog lacks multi-select support; consider a single-form layout

Open
#2,463 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
7.5k
Forks
1.2k
Avg merge
11h 53m
Merged PRs (30d)
350

Description

Problem

The VS Code webview QuestionDialog (apps/vscode/webview-ui/src/components/QuestionDialog.tsx) treats every question as single-select: clicking an option immediately advances to the next question or submits. When the agent sends a question with multi_select: true (allowed per-question by the AskUserQuestion schema), the user can only pick one option and the agent receives just the first clicked label instead of the full selection.

This is a pre-existing gap, not introduced by #2326 — before that PR only the first question was shown at all, with the same single-select behavior. Surfaced by a review comment on #2326.

Two related UX gaps in the current step-through design:

  • No way to go back and change a previous answer.
  • No skip: users must answer every question (or abort the whole run), even though partial answers are contract-legal — only an all-empty submission counts as dismissed.

Proposal

Render all questions (the schema caps at 4) as one scrollable form instead of a step-through wizard:

  • Radio semantics for single-select questions, checkboxes for multi-select questions.
  • One explicit Submit at the bottom; the form itself serves as the review.
  • Allow submitting with unanswered questions (show a hint, don't block); an all-empty submission keeps the current dismiss semantics.

Multi-select answer format must match the TUI convention: selected labels joined with ', ' (see updateAnswer in apps/kimi-code/src/tui/components/dialogs/question-dialog.ts). Answers stay keyed by question text; uniqueness is enforced tool-side.

Refs: #2299, #2326

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in apps/vscode/webview-ui/src/components/QuestionDialog.tsx and compare its answer handling with updateAnswer in apps/kimi-code/src/tui/components/dialogs/question-dialog.ts. Implement a single scrollable form for up to four questions, using radio or checkbox semantics and explicit Submit behavior. Done means multi-select labels are joined with ', ', unanswered questions can be submitted, and an all-empty submission retains dismiss semantics.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.