Skip to content

Commit fb92feb

Browse files
committed
Fixes
1 parent 3adda59 commit fb92feb

30 files changed

+55
-70
lines changed

packages/types/src/provider-settings.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export type ProviderSettingsEntry = z.infer<typeof providerSettingsEntrySchema>
5656
const baseProviderSettingsSchema = z.object({
5757
includeMaxTokens: z.boolean().optional(),
5858
diffEnabled: z.boolean().optional(),
59-
todoListEnabled: z.boolean().optional(),
59+
enableTodoList: z.boolean().optional(),
6060
fuzzyMatchThreshold: z.number().optional(),
6161
modelTemperature: z.number().nullish(),
6262
rateLimitSeconds: z.number().optional(),

src/core/config/ProviderSettingsManager.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,8 @@ export class ProviderSettingsManager {
220220
const defaultTodoListEnabled = true
221221

222222
for (const [_name, apiConfig] of Object.entries(providerProfiles.apiConfigs)) {
223-
if (apiConfig.todoListEnabled === undefined) {
224-
apiConfig.todoListEnabled = defaultTodoListEnabled
223+
if (apiConfig.enableTodoList === undefined) {
224+
apiConfig.enableTodoList = defaultTodoListEnabled
225225
}
226226
}
227227
} catch (error) {

src/core/environment/getEnvironmentDetails.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ export async function getEnvironmentDetails(cline: Task, includeFileDetails: boo
265265
}
266266

267267
// Only include reminder section if todo list tool is enabled
268-
const todoListEnabled = state?.apiConfiguration?.todoListEnabled ?? true
269-
const reminderSection = todoListEnabled ? formatReminderSection(cline.todoList) : ""
268+
const enableTodoList = state?.apiConfiguration?.enableTodoList ?? true
269+
const reminderSection = enableTodoList ? formatReminderSection(cline.todoList) : ""
270270
return `<environment_details>\n${details.trim()}${reminderSection ? `\n${reminderSection}` : ""}\n</environment_details>`
271271
}

src/core/prompts/system.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as vscode from "vscode"
22
import * as os from "os"
33

4-
import type { ModeConfig, PromptComponent, CustomModePrompts, TodoItem } from "@roo-code/types"
4+
import type { ModeConfig, PromptComponent, CustomModePrompts } from "@roo-code/types"
55

66
import { Mode, modes, defaultModeSlug, getModeBySlug, getGroupName, getModeSelection } from "../../shared/modes"
77
import { DiffStrategy } from "../../shared/tools"
@@ -58,8 +58,6 @@ async function generatePrompt(
5858
rooIgnoreInstructions?: string,
5959
partialReadsEnabled?: boolean,
6060
settings?: Record<string, any>,
61-
todoList?: TodoItem[],
62-
todoListEnabled?: boolean,
6361
): Promise<string> {
6462
if (!context) {
6563
throw new Error("Extension context is required for generating system prompt")
@@ -99,7 +97,6 @@ ${getToolDescriptionsForMode(
9997
experiments,
10098
partialReadsEnabled,
10199
settings,
102-
todoListEnabled,
103100
)}
104101
105102
${getToolUseGuidelinesSection(codeIndexManager)}
@@ -139,8 +136,6 @@ export const SYSTEM_PROMPT = async (
139136
rooIgnoreInstructions?: string,
140137
partialReadsEnabled?: boolean,
141138
settings?: Record<string, any>,
142-
todoList?: TodoItem[],
143-
todoListEnabled?: boolean,
144139
): Promise<string> => {
145140
if (!context) {
146141
throw new Error("Extension context is required for generating system prompt")
@@ -207,7 +202,5 @@ ${customInstructions}`
207202
rooIgnoreInstructions,
208203
partialReadsEnabled,
209204
settings,
210-
todoList,
211-
todoListEnabled,
212205
)
213206
}

src/core/prompts/tools/__tests__/index.spec.ts

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ describe("getToolDescriptionsForMode", () => {
1717
settings: undefined,
1818
}
1919

20-
it("should include update_todo_list tool when todoListEnabled is true", () => {
20+
it("should include update_todo_list tool when enableTodoList is true", () => {
2121
const tools = getToolDescriptionsForMode(
2222
mockArgs.mode,
2323
mockArgs.cwd,
@@ -29,14 +29,13 @@ describe("getToolDescriptionsForMode", () => {
2929
mockArgs.customModes,
3030
mockArgs.experiments,
3131
mockArgs.partialReadsEnabled,
32-
mockArgs.settings,
33-
true, // todoListEnabled
32+
{ enableTodoList: true },
3433
)
3534

3635
expect(tools).toContain("update_todo_list")
3736
})
3837

39-
it("should exclude update_todo_list tool when todoListEnabled is false", () => {
38+
it("should exclude update_todo_list tool when enableTodoList is false", () => {
4039
const tools = getToolDescriptionsForMode(
4140
mockArgs.mode,
4241
mockArgs.cwd,
@@ -48,14 +47,13 @@ describe("getToolDescriptionsForMode", () => {
4847
mockArgs.customModes,
4948
mockArgs.experiments,
5049
mockArgs.partialReadsEnabled,
51-
mockArgs.settings,
52-
false, // todoListEnabled
50+
{ enableTodoList: false },
5351
)
5452

5553
expect(tools).not.toContain("update_todo_list")
5654
})
5755

58-
it("should include update_todo_list tool when todoListEnabled is undefined (default true)", () => {
56+
it("should include update_todo_list tool when enableTodoList is undefined (default true)", () => {
5957
const tools = getToolDescriptionsForMode(
6058
mockArgs.mode,
6159
mockArgs.cwd,
@@ -67,14 +65,13 @@ describe("getToolDescriptionsForMode", () => {
6765
mockArgs.customModes,
6866
mockArgs.experiments,
6967
mockArgs.partialReadsEnabled,
70-
mockArgs.settings,
71-
undefined, // todoListEnabled
68+
undefined, // settings
7269
)
7370

7471
expect(tools).toContain("update_todo_list")
7572
})
7673

77-
it("should include other tools regardless of todoListEnabled setting", () => {
74+
it("should include other tools regardless of enableTodoList setting", () => {
7875
const toolsWithTodo = getToolDescriptionsForMode(
7976
mockArgs.mode,
8077
mockArgs.cwd,
@@ -86,8 +83,7 @@ describe("getToolDescriptionsForMode", () => {
8683
mockArgs.customModes,
8784
mockArgs.experiments,
8885
mockArgs.partialReadsEnabled,
89-
mockArgs.settings,
90-
true, // todoListEnabled
86+
{ enableTodoList: true },
9187
)
9288

9389
const toolsWithoutTodo = getToolDescriptionsForMode(
@@ -101,8 +97,7 @@ describe("getToolDescriptionsForMode", () => {
10197
mockArgs.customModes,
10298
mockArgs.experiments,
10399
mockArgs.partialReadsEnabled,
104-
mockArgs.settings,
105-
false, // todoListEnabled
100+
{ enableTodoList: false },
106101
)
107102

108103
// Both should have other tools like read_file, write_to_file, etc.

src/core/prompts/tools/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ export function getToolDescriptionsForMode(
6161
experiments?: Record<string, boolean>,
6262
partialReadsEnabled?: boolean,
6363
settings?: Record<string, any>,
64-
todoListEnabled?: boolean,
6564
): string {
6665
const config = getModeConfig(mode, customModes)
6766
const args: ToolArgs = {
@@ -111,7 +110,7 @@ export function getToolDescriptionsForMode(
111110
}
112111

113112
// Conditionally exclude update_todo_list if feature is disabled
114-
if (todoListEnabled === false) {
113+
if (settings?.enableTodoList === false) {
115114
tools.delete("update_todo_list")
116115
}
117116

src/core/task/Task.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ export type TaskOptions = {
110110
provider: ClineProvider
111111
apiConfiguration: ProviderSettings
112112
enableDiff?: boolean
113-
enableTodoList?: boolean
114113
enableCheckpoints?: boolean
115114
fuzzyMatchThreshold?: number
116115
consecutiveMistakeLimit?: number
@@ -173,7 +172,7 @@ export class Task extends EventEmitter<ClineEvents> {
173172
diffViewProvider: DiffViewProvider
174173
diffStrategy?: DiffStrategy
175174
diffEnabled: boolean = false
176-
todoListEnabled: boolean = true
175+
enableTodoList: boolean = true
177176
fuzzyMatchThreshold: number
178177
didEditFile: boolean = false
179178

@@ -215,7 +214,6 @@ export class Task extends EventEmitter<ClineEvents> {
215214
provider,
216215
apiConfiguration,
217216
enableDiff = false,
218-
enableTodoList = true,
219217
enableCheckpoints = true,
220218
fuzzyMatchThreshold = 1.0,
221219
consecutiveMistakeLimit = 3,
@@ -256,7 +254,6 @@ export class Task extends EventEmitter<ClineEvents> {
256254
this.urlContentFetcher = new UrlContentFetcher(provider.context)
257255
this.browserSession = new BrowserSession(provider.context)
258256
this.diffEnabled = enableDiff
259-
this.todoListEnabled = enableTodoList
260257
this.fuzzyMatchThreshold = fuzzyMatchThreshold
261258
this.consecutiveMistakeLimit = consecutiveMistakeLimit
262259
this.providerRef = new WeakRef(provider)
@@ -1613,6 +1610,7 @@ export class Task extends EventEmitter<ClineEvents> {
16131610
const state = await this.providerRef.deref()?.getState()
16141611

16151612
const {
1613+
apiConfiguration,
16161614
browserViewportSize,
16171615
mode,
16181616
customModes,
@@ -1626,6 +1624,9 @@ export class Task extends EventEmitter<ClineEvents> {
16261624
maxReadFileLine,
16271625
} = state ?? {}
16281626

1627+
// Extract enableTodoList from provider settings
1628+
const enableTodoList = apiConfiguration?.enableTodoList ?? true
1629+
16291630
return await (async () => {
16301631
const provider = this.providerRef.deref()
16311632

@@ -1652,9 +1653,8 @@ export class Task extends EventEmitter<ClineEvents> {
16521653
maxReadFileLine !== -1,
16531654
{
16541655
maxConcurrentFileReads,
1656+
enableTodoList,
16551657
},
1656-
this.todoList,
1657-
this.todoListEnabled,
16581658
)
16591659
})()
16601660
}

src/core/webview/ClineProvider.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -543,8 +543,8 @@ export class ClineProvider
543543
experiments,
544544
} = await this.getState()
545545

546-
// Extract todoListEnabled from provider settings
547-
const todoListEnabled = apiConfiguration.todoListEnabled ?? true
546+
// Extract enableTodoList from provider settings
547+
const enableTodoList = apiConfiguration.enableTodoList ?? true
548548

549549
if (!ProfileValidator.isProfileAllowed(apiConfiguration, organizationAllowList)) {
550550
throw new OrganizationAllowListViolationError(t("common:errors.violated_organization_allowlist"))
@@ -554,7 +554,6 @@ export class ClineProvider
554554
provider: this,
555555
apiConfiguration,
556556
enableDiff,
557-
enableTodoList: todoListEnabled,
558557
enableCheckpoints,
559558
fuzzyMatchThreshold,
560559
task,

src/core/webview/generateSystemPrompt.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ export const generateSystemPrompt = async (provider: ClineProvider, message: Web
2626
maxConcurrentFileReads,
2727
} = await provider.getState()
2828

29-
// Get todoListEnabled from provider settings with fallback to global setting
30-
const todoListEnabled = apiConfiguration.todoListEnabled ?? true
29+
// Get enableTodoList from provider settings with fallback to global setting
30+
const enableTodoList = apiConfiguration.enableTodoList ?? true
3131

3232
// Check experiment to determine which diff strategy to use
3333
const isMultiFileApplyDiffEnabled = experimentsModule.isEnabled(
@@ -85,9 +85,8 @@ export const generateSystemPrompt = async (provider: ClineProvider, message: Web
8585
maxReadFileLine !== -1,
8686
{
8787
maxConcurrentFileReads,
88+
enableTodoList,
8889
},
89-
undefined, // todoList parameter
90-
todoListEnabled,
9190
)
9291

9392
return systemPrompt

webview-ui/src/components/settings/AdvancedSettingsSection.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ import { TodoListSettingsControl } from "./TodoListSettingsControl"
77
interface AdvancedSettingsSectionProps {
88
diffEnabled?: boolean
99
fuzzyMatchThreshold?: number
10-
todoListEnabled?: boolean
11-
onChange: (field: "diffEnabled" | "fuzzyMatchThreshold" | "todoListEnabled", value: any) => void
10+
enableTodoList?: boolean
11+
onChange: (field: "diffEnabled" | "fuzzyMatchThreshold" | "enableTodoList", value: any) => void
1212
children?: React.ReactNode
1313
}
1414

1515
export const AdvancedSettingsSection: React.FC<AdvancedSettingsSectionProps> = ({
1616
diffEnabled,
1717
fuzzyMatchThreshold,
18-
todoListEnabled,
18+
enableTodoList,
1919
onChange,
2020
children,
2121
}) => {
@@ -42,7 +42,7 @@ export const AdvancedSettingsSection: React.FC<AdvancedSettingsSectionProps> = (
4242
fuzzyMatchThreshold={fuzzyMatchThreshold}
4343
onChange={onChange}
4444
/>
45-
<TodoListSettingsControl todoListEnabled={todoListEnabled} onChange={onChange} />
45+
<TodoListSettingsControl enableTodoList={enableTodoList} onChange={onChange} />
4646
{children}
4747
</div>
4848
)}

0 commit comments

Comments
 (0)