-
Notifications
You must be signed in to change notification settings - Fork 1.8k
feat: Add provider-level todo list toggle with advanced settings section #5624
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
- Add todoListEnabled field to provider settings schema - Implement migration logic for global to provider-level settings - Create TodoListSettingsControl component for UI toggle - Create AdvancedSettingsSection to group diff and todo list settings - Update system prompt generation to respect todoListEnabled setting - Update task creation logic to conditionally include update_todo_list tool - Add comprehensive tests for tool inclusion/exclusion logic - Add translation keys for new settings UI This allows users to disable todo lists at the API profile level, similar to how diff edits can be disabled, with both toggles organized in a collapsible advanced settings section.
const { t } = useAppTranslation() | ||
|
||
const handleTodoListEnabledChange = useCallback( | ||
(e: any) => { |
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.
Consider replacing the generic 'any' type for the event parameter with a more specific type (e.g. React.ChangeEvent) for better type safety.
(e: any) => { | |
(e: React.ChangeEvent<HTMLInputElement>) => { |
✅ No security or compliance issues detected. Reviewed everything up to fb92feb. Security Overview
Detected Code ChangesThe diff is too large to display a summary of code changes. Reply to this PR with |
@roomote-bot some feedback:
Please fix all of that and update the PR. |
Hi @mrubens, thanks for the feedback! I understand the issues you've raised:
I'm working on implementing these fixes now and will update the PR shortly. Thanks for the clear guidance! |
- Remove unnecessary backfill logic for non-existent setting - Move temperature and rate limit controls under advanced settings toggle - Fix text wrapping issue with whitespace-nowrap class Addresses feedback from issue #5624
@roomote-bot a couple more things:
|
Hi @mrubens! I've seen your comment and I'm working on both issues:
I'll analyze the current implementation, implement the fixes, and report back with another comment when completed. Thanks for the detailed feedback! |
…tional - Fix Advanced Settings button layout with proper flex spacing and alignment - Remove excessive left border when expanded (pl-0) - Make update_todo_list tool conditional on alwaysAllowUpdateTodoList setting - Update architect mode instructions to be conditional on tool availability - Update reminder text to be conditional on feature being enabled - Filter out empty tool descriptions from tools list - Update test snapshots to reflect conditional behavior Fixes issues reported in GitHub issue #5624
…tional - Fix Advanced Settings button layout with proper flex spacing and alignment - Remove excessive left border when expanded (pl-0) - Make update_todo_list tool conditional on alwaysAllowUpdateTodoList setting - Update architect mode instructions to be conditional on tool availability - Update reminder text to be conditional on feature being enabled - Filter out empty tool descriptions from tools list - Update test snapshots to reflect conditional behavior Fixes issues reported in GitHub issue #5624
@@ -72,7 +72,7 @@ export const modes: readonly ModeConfig[] = [ | |||
description: "Plan and design before implementation", | |||
groups: ["read", ["edit", { fileRegex: "\\.md$", description: "Markdown files only" }], "browser", "mcp"], | |||
customInstructions: | |||
"1. Do some information gathering (using provided tools) to get more context about the task.\n\n2. You should also ask the user clarifying questions to get a better understanding of the task.\n\n3. Once you've gained more context about the user's request, break down the task into clear, actionable steps and create a todo list using the `update_todo_list` tool. Each todo item should be:\n - Specific and actionable\n - Listed in logical execution order\n - Focused on a single, well-defined outcome\n - Clear enough that another mode could execute it independently\n\n4. As you gather more information or discover new requirements, update the todo list to reflect the current understanding of what needs to be accomplished.\n\n5. Ask the user if they are pleased with this plan, or if they would like to make any changes. Think of this as a brainstorming session where you can discuss the task and refine the todo list.\n\n6. Include Mermaid diagrams if they help clarify complex workflows or system architecture. Please avoid using double quotes (\"\") and parentheses () inside square brackets ([]) in Mermaid diagrams, as this can cause parsing errors.\n\n7. Use the switch_mode tool to request that the user switch to another mode to implement the solution.\n\n**IMPORTANT: Focus on creating clear, actionable todo lists rather than lengthy markdown documents. Use the todo list as your primary planning tool to track and organize the work that needs to be done.**", | |||
"1. Do some information gathering (using provided tools) to get more context about the task.\n\n2. You should also ask the user clarifying questions to get a better understanding of the task.\n\n3. Once you've gained more context about the user's request, break down the task into clear, actionable steps. If the `update_todo_list` tool is available, create a todo list using it. Each todo item should be:\n - Specific and actionable\n - Listed in logical execution order\n - Focused on a single, well-defined outcome\n - Clear enough that another mode could execute it independently\n\n4. As you gather more information or discover new requirements, update your planning to reflect the current understanding of what needs to be accomplished.\n\n5. Ask the user if they are pleased with this plan, or if they would like to make any changes. Think of this as a brainstorming session where you can discuss the task and refine your approach.\n\n6. Include Mermaid diagrams if they help clarify complex workflows or system architecture. Please avoid using double quotes (\"\") and parentheses () inside square brackets ([]) in Mermaid diagrams, as this can cause parsing errors.\n\n7. Use the switch_mode tool to request that the user switch to another mode to implement the solution.\n\n**IMPORTANT: Focus on creating clear, actionable plans rather than lengthy markdown documents. Use structured planning to track and organize the work that needs to be done.**", |
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.
I'm not sure the best thing to do here
This PR implements a provider-level toggle to disable todo lists, similar to the existing diff edits toggle. Both settings are now organized in a collapsible Advanced Settings section to prevent UI crowding.
Key changes:
The implementation follows established patterns for provider-level settings with automatic migration and backward compatibility. All tests pass and the build is successful.
Important
Adds provider-level toggle for todo lists with migration logic, UI components, and tests, organized in an Advanced Settings section.
enableTodoList
field to provider settings schema inprovider-settings.ts
.getEnvironmentDetails.ts
to conditionally include reminder section based onenableTodoList
.Task.ts
to conditionally includeupdate_todo_list
tool.ProviderSettingsManager.ts
to migrate todo list settings to provider-level.TodoListSettingsControl
component for UI toggle.AdvancedSettingsSection
to group diff and todo list settings.ApiOptions.tsx
to includeAdvancedSettingsSection
.index.spec.ts
to verify tool inclusion/exclusion logic based onenableTodoList
.This description was created by
for fb92feb. You can customize this summary. It will automatically update as commits are pushed.