diff --git a/packages/types/src/mode.ts b/packages/types/src/mode.ts index 88dcbb95747..f4bf1a1b543 100644 --- a/packages/types/src/mode.ts +++ b/packages/types/src/mode.ts @@ -144,7 +144,7 @@ export const DEFAULT_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\n **Note:** If the `update_todo_list` tool is not available, write the plan to a markdown file (e.g., `plan.md` or `todo.md`) instead.\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. If not, write the plan to a markdown file (e.g., `plan.md` or `todo.md`). 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 plan 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 plan.\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 your available planning tools to track and organize the work that needs to be done.**", }, { slug: "code", diff --git a/src/core/environment/getEnvironmentDetails.ts b/src/core/environment/getEnvironmentDetails.ts index c0139649ab5..ea33ee8c597 100644 --- a/src/core/environment/getEnvironmentDetails.ts +++ b/src/core/environment/getEnvironmentDetails.ts @@ -272,6 +272,6 @@ export async function getEnvironmentDetails(cline: Task, includeFileDetails: boo state && typeof state.apiConfiguration?.todoListEnabled === "boolean" ? state.apiConfiguration.todoListEnabled : true - const reminderSection = todoListEnabled ? formatReminderSection(cline.todoList) : "" + const reminderSection = todoListEnabled ? formatReminderSection(cline.todoList, todoListEnabled) : "" return `\n${details.trim()}\n${reminderSection}\n` } diff --git a/src/core/environment/reminder.ts b/src/core/environment/reminder.ts index 6edb24364df..48aaecfc37d 100644 --- a/src/core/environment/reminder.ts +++ b/src/core/environment/reminder.ts @@ -3,9 +3,13 @@ import { TodoItem, TodoStatus } from "@roo-code/types" /** * Format the reminders section as a markdown block in English, with basic instructions. */ -export function formatReminderSection(todoList?: TodoItem[]): string { +export function formatReminderSection(todoList?: TodoItem[], todoListEnabled: boolean = true): string { if (!todoList || todoList.length === 0) { - return "You have not created a todo list yet. Create one with `update_todo_list` if your task is complicated or involves multiple steps." + if (todoListEnabled) { + return "You have not created a todo list yet. Create one with `update_todo_list` if your task is complicated or involves multiple steps." + } else { + return "Todo list functionality is disabled for this provider." + } } const statusMap: Record = { pending: "Pending", @@ -29,10 +33,12 @@ export function formatReminderSection(todoList?: TodoItem[]): string { }) lines.push("") - lines.push( - "", - "IMPORTANT: When task status changes, remember to call the `update_todo_list` tool to update your progress.", - "", - ) + if (todoListEnabled) { + lines.push( + "", + "IMPORTANT: When task status changes, remember to call the `update_todo_list` tool to update your progress.", + "", + ) + } return lines.join("\n") } diff --git a/webview-ui/src/components/chat/CodeIndexPopover.tsx b/webview-ui/src/components/chat/CodeIndexPopover.tsx index 45bf4224a12..5e108ea9500 100644 --- a/webview-ui/src/components/chat/CodeIndexPopover.tsx +++ b/webview-ui/src/components/chat/CodeIndexPopover.tsx @@ -1187,10 +1187,10 @@ export const CodeIndexPopover: React.FC = ({