diff --git a/evals/packages/types/src/roo-code-defaults.ts b/evals/packages/types/src/roo-code-defaults.ts index 940b9bfd87c..8def51f0853 100644 --- a/evals/packages/types/src/roo-code-defaults.ts +++ b/evals/packages/types/src/roo-code-defaults.ts @@ -59,7 +59,6 @@ export const rooCodeDefaults: RooCodeSettings = { terminalOutputLineLimit: 500, terminalShellIntegrationTimeout: 15000, - rateLimitSeconds: 0, diffEnabled: true, fuzzyMatchThreshold: 1.0, experiments: { diff --git a/evals/packages/types/src/roo-code.ts b/evals/packages/types/src/roo-code.ts index 423df28377d..22bff70d16e 100644 --- a/evals/packages/types/src/roo-code.ts +++ b/evals/packages/types/src/roo-code.ts @@ -518,7 +518,6 @@ export const globalSettingsSchema = z.object({ terminalOutputLineLimit: z.number().optional(), terminalShellIntegrationTimeout: z.number().optional(), - rateLimitSeconds: z.number().optional(), diffEnabled: z.boolean().optional(), fuzzyMatchThreshold: z.number().optional(), experiments: experimentsSchema.optional(), @@ -588,7 +587,6 @@ const globalSettingsRecord: GlobalSettingsRecord = { terminalOutputLineLimit: undefined, terminalShellIntegrationTimeout: undefined, - rateLimitSeconds: undefined, diffEnabled: undefined, fuzzyMatchThreshold: undefined, experiments: undefined, diff --git a/src/core/Cline.ts b/src/core/Cline.ts index 7f5ef949da3..df0d5f7160a 100644 --- a/src/core/Cline.ts +++ b/src/core/Cline.ts @@ -1080,7 +1080,7 @@ export class Cline extends EventEmitter { async *attemptApiRequest(previousApiReqIndex: number, retryAttempt: number = 0): ApiStream { let mcpHub: McpHub | undefined - const { mcpEnabled, alwaysApproveResubmit, requestDelaySeconds, rateLimitSeconds } = + const { apiConfiguration, mcpEnabled, alwaysApproveResubmit, requestDelaySeconds } = (await this.providerRef.deref()?.getState()) ?? {} let rateLimitDelay = 0 @@ -1089,7 +1089,7 @@ export class Cline extends EventEmitter { if (this.lastApiRequestTime) { const now = Date.now() const timeSinceLastRequest = now - this.lastApiRequestTime - const rateLimit = rateLimitSeconds || 0 + const rateLimit = apiConfiguration?.rateLimitSeconds || 0 rateLimitDelay = Math.ceil(Math.max(0, rateLimit * 1000 - timeSinceLastRequest) / 1000) } diff --git a/src/core/config/ProviderSettingsManager.ts b/src/core/config/ProviderSettingsManager.ts index 8b9c5e23508..35ee6709a0a 100644 --- a/src/core/config/ProviderSettingsManager.ts +++ b/src/core/config/ProviderSettingsManager.ts @@ -32,12 +32,7 @@ export class ProviderSettingsManager { private readonly defaultProviderProfiles: ProviderProfiles = { currentApiConfigName: "default", - apiConfigs: { - default: { - id: this.defaultConfigId, - rateLimitSeconds: 0, - }, - }, + apiConfigs: { default: { id: this.defaultConfigId } }, modeApiConfigs: this.defaultModeApiConfigs, migrations: { rateLimitSecondsMigrated: true, // Mark as migrated on fresh installs diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 0d3f21478a9..7e4409323d8 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -1202,7 +1202,6 @@ export class ClineProvider extends EventEmitter implements enableMcpServerCreation, alwaysApproveResubmit, requestDelaySeconds, - rateLimitSeconds, currentApiConfigName, listApiConfigMeta, pinnedApiConfigs, @@ -1270,7 +1269,6 @@ export class ClineProvider extends EventEmitter implements enableMcpServerCreation: enableMcpServerCreation ?? true, alwaysApproveResubmit: alwaysApproveResubmit ?? false, requestDelaySeconds: requestDelaySeconds ?? 10, - rateLimitSeconds: rateLimitSeconds ?? 0, currentApiConfigName: currentApiConfigName ?? "default", listApiConfigMeta: listApiConfigMeta ?? [], pinnedApiConfigs: pinnedApiConfigs ?? {}, @@ -1358,7 +1356,6 @@ export class ClineProvider extends EventEmitter implements enableMcpServerCreation: stateValues.enableMcpServerCreation ?? true, alwaysApproveResubmit: stateValues.alwaysApproveResubmit ?? false, requestDelaySeconds: Math.max(5, stateValues.requestDelaySeconds ?? 10), - rateLimitSeconds: stateValues.rateLimitSeconds ?? 0, currentApiConfigName: stateValues.currentApiConfigName ?? "default", listApiConfigMeta: stateValues.listApiConfigMeta ?? [], pinnedApiConfigs: stateValues.pinnedApiConfigs ?? {}, diff --git a/src/core/webview/__tests__/ClineProvider.test.ts b/src/core/webview/__tests__/ClineProvider.test.ts index 9f89a01e9f2..a034a58861d 100644 --- a/src/core/webview/__tests__/ClineProvider.test.ts +++ b/src/core/webview/__tests__/ClineProvider.test.ts @@ -414,7 +414,6 @@ describe("ClineProvider", () => { mcpEnabled: true, enableMcpServerCreation: false, requestDelaySeconds: 5, - rateLimitSeconds: 0, mode: defaultModeSlug, customModes: [], experiments: experimentDefault, diff --git a/src/core/webview/webviewMessageHandler.ts b/src/core/webview/webviewMessageHandler.ts index 8e1d6637b63..c8c61a4e55a 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -717,10 +717,6 @@ export const webviewMessageHandler = async (provider: ClineProvider, message: We await updateGlobalState("requestDelaySeconds", message.value ?? 5) await provider.postStateToWebview() break - case "rateLimitSeconds": - await updateGlobalState("rateLimitSeconds", message.value ?? 0) - await provider.postStateToWebview() - break case "writeDelayMs": await updateGlobalState("writeDelayMs", message.value) await provider.postStateToWebview() diff --git a/src/shared/ExtensionMessage.ts b/src/shared/ExtensionMessage.ts index 1a0d5035805..38277a7c2de 100644 --- a/src/shared/ExtensionMessage.ts +++ b/src/shared/ExtensionMessage.ts @@ -153,7 +153,6 @@ export type ExtensionState = Pick< // | "maxReadFileLine" // Optional in GlobalSettings, required here. | "terminalOutputLineLimit" | "terminalShellIntegrationTimeout" - // | "rateLimitSeconds" // Optional in GlobalSettings, required here. | "diffEnabled" | "fuzzyMatchThreshold" // | "experiments" // Optional in GlobalSettings, required here. @@ -187,7 +186,6 @@ export type ExtensionState = Pick< showRooIgnoredFiles: boolean // Whether to show .rooignore'd files in listings maxReadFileLine: number // Maximum number of lines to read from a file before truncating - rateLimitSeconds: number // Minimum time between successive requests (0 = disabled). experiments: Record // Map of experiment IDs to their enabled state mcpEnabled: boolean diff --git a/src/shared/WebviewMessage.ts b/src/shared/WebviewMessage.ts index 2cb16589884..972845959e3 100644 --- a/src/shared/WebviewMessage.ts +++ b/src/shared/WebviewMessage.ts @@ -87,7 +87,6 @@ export interface WebviewMessage { | "searchCommits" | "alwaysApproveResubmit" | "requestDelaySeconds" - | "rateLimitSeconds" | "setApiConfigPassword" | "requestVsCodeLmModels" | "mode" diff --git a/webview-ui/src/components/settings/ExperimentalSettings.tsx b/webview-ui/src/components/settings/ExperimentalSettings.tsx index bff96d092bd..a2d6fbd274f 100644 --- a/webview-ui/src/components/settings/ExperimentalSettings.tsx +++ b/webview-ui/src/components/settings/ExperimentalSettings.tsx @@ -13,7 +13,7 @@ import { ExperimentalFeature } from "./ExperimentalFeature" type ExperimentalSettingsProps = HTMLAttributes & { setCachedStateField: SetCachedStateField< - "rateLimitSeconds" | "terminalOutputLineLimit" | "maxOpenTabsContext" | "diffEnabled" | "fuzzyMatchThreshold" + "terminalOutputLineLimit" | "maxOpenTabsContext" | "diffEnabled" | "fuzzyMatchThreshold" > experiments: Record setExperimentEnabled: SetExperimentEnabled diff --git a/webview-ui/src/context/ExtensionStateContext.tsx b/webview-ui/src/context/ExtensionStateContext.tsx index 33be4e1509b..477c9f9f7c5 100644 --- a/webview-ui/src/context/ExtensionStateContext.tsx +++ b/webview-ui/src/context/ExtensionStateContext.tsx @@ -58,8 +58,6 @@ export interface ExtensionStateContextType extends ExtensionState { setAlwaysApproveResubmit: (value: boolean) => void requestDelaySeconds: number setRequestDelaySeconds: (value: number) => void - rateLimitSeconds: number - setRateLimitSeconds: (value: number) => void setCurrentApiConfigName: (value: string) => void setListApiConfigMeta: (value: ApiConfigMeta[]) => void mode: Mode @@ -142,7 +140,6 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode enableMcpServerCreation: true, alwaysApproveResubmit: false, requestDelaySeconds: 5, - rateLimitSeconds: 0, // Minimum time between successive requests (0 = disabled) currentApiConfigName: "default", listApiConfigMeta: [], mode: defaultModeSlug, @@ -296,7 +293,6 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode setState((prevState) => ({ ...prevState, enableMcpServerCreation: value })), setAlwaysApproveResubmit: (value) => setState((prevState) => ({ ...prevState, alwaysApproveResubmit: value })), setRequestDelaySeconds: (value) => setState((prevState) => ({ ...prevState, requestDelaySeconds: value })), - setRateLimitSeconds: (value) => setState((prevState) => ({ ...prevState, rateLimitSeconds: value })), setCurrentApiConfigName: (value) => setState((prevState) => ({ ...prevState, currentApiConfigName: value })), setListApiConfigMeta, setMode: (value: Mode) => setState((prevState) => ({ ...prevState, mode: value })), diff --git a/webview-ui/src/context/__tests__/ExtensionStateContext.test.tsx b/webview-ui/src/context/__tests__/ExtensionStateContext.test.tsx index c4f1d163add..9113f7a8dbc 100644 --- a/webview-ui/src/context/__tests__/ExtensionStateContext.test.tsx +++ b/webview-ui/src/context/__tests__/ExtensionStateContext.test.tsx @@ -193,7 +193,6 @@ describe("mergeExtensionState", () => { checkpointStorage: "task", writeDelayMs: 1000, requestDelaySeconds: 5, - rateLimitSeconds: 0, mode: "default", experiments: {} as Record, customModes: [],