-
Notifications
You must be signed in to change notification settings - Fork 2.8k
feat: enhance ask_followup_question to support multiple questions #11139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Separate navigation logic from submission logic in MultiQuestionHandler - Add dedicated handleFinish function to send combined responses - Prevent immediate sending when navigating between questions - Add comprehensive tests to verify the UX fix - All existing functionality preserved, tests passing
Reviewed the multi-question enhancement for
Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues. |
| <SearchableSetting | ||
| settingId="ui-show-questions-one-by-one" | ||
| section="ui" | ||
| label={t("settings:ui.showQuestionsOneByOne.label")}> | ||
| <div className="flex flex-col gap-1"> | ||
| <VSCodeCheckbox | ||
| checked={showQuestionsOneByOne} | ||
| onChange={(e: any) => handleShowQuestionsOneByOneChange(e.target.checked)} | ||
| data-testid="show-questions-one-by-one-checkbox"> | ||
| <span className="font-medium">{t("settings:ui.showQuestionsOneByOne.label")}</span> | ||
| </VSCodeCheckbox> | ||
| <div className="text-vscode-descriptionForeground text-sm ml-5 mt-1"> | ||
| {t("settings:ui.showQuestionsOneByOne.description")} | ||
| </div> | ||
| </div> | ||
| </SearchableSetting> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing translation keys. The settings:ui.showQuestionsOneByOne.label and settings:ui.showQuestionsOneByOne.description keys are referenced here but not defined in webview-ui/src/i18n/locales/en/settings.json. The UI section in that file only has collapseThinking and requireCtrlEnterToSend. This will cause the raw translation keys to be displayed in the UI instead of human-readable text.
Fix it with Roo Code or mention @roomote and request a fix.
| /** Array of questions being asked by the LLM */ | ||
| questions?: string[] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Type mismatch between this interface and the actual data sent by AskFollowupQuestionTool. This defines questions as string[], but the tool sends Array<string | { text: string; options?: string[] }> to support multiple-choice questions. The Zod schema below has the same issue. This inconsistency means:
- TypeScript types don't match runtime data
- The Zod schema would fail validation if used on actual data with object questions
ChatRow.tsxusessafeJsonParse<FollowUpData>with an incorrect type assertion
Consider updating the type to: questions?: Array<string | { text: string; options?: string[] }>
Fix it with Roo Code or mention @roomote and request a fix.
This PR enhances the
ask_followup_questiontool to support multiple questions and optional multiple-choice responses.Key changes:
ask_followup_questionschema to accept aquestionsarray.Questionobjects withtextandoptions.Important
Enhance
ask_followup_questionto support multiple questions and multiple-choice responses, with updated schema, UI, and tests.ask_followup_questionnow supports multiple questions and multiple-choice options.ask_followup_questionschema inask_followup_question.tsto acceptquestionsarray.MultiQuestionHandlerinChatRow.tsxto handle multiple questions.showQuestionsOneByOneinUISettings.tsxto toggle question display mode.AskFollowupQuestionTool.tsto show first question while accumulating others.MultiQuestionHandlerinMultiQuestionHandler.spec.tsx.askFollowupQuestionTool.spec.tsto cover new functionality.showQuestionsOneByOnesetting toExtensionStateContext.tsxandSettingsView.tsx.chat.jsonfor new question handling.This description was created by
for d3028c3. You can customize this summary. It will automatically update as commits are pushed.