Skip to content

Commit 63a82bf

Browse files
committed
use experimental setting instead
1 parent 1765c6e commit 63a82bf

File tree

9 files changed

+49
-6
lines changed

9 files changed

+49
-6
lines changed

evals/packages/types/src/roo-code.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ export type CommandExecutionStatus = z.infer<typeof commandExecutionStatusSchema
297297
* ExperimentId
298298
*/
299299

300-
export const experimentIds = ["powerSteering"] as const
300+
export const experimentIds = ["autoCondenseContext", "powerSteering"] as const
301301

302302
export const experimentIdsSchema = z.enum(experimentIds)
303303

@@ -308,6 +308,7 @@ export type ExperimentId = z.infer<typeof experimentIdsSchema>
308308
*/
309309

310310
const experimentsSchema = z.object({
311+
autoCondenseContext: z.boolean(),
311312
powerSteering: z.boolean(),
312313
})
313314

src/core/task/Task.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1421,7 +1421,6 @@ export class Task extends EventEmitter<ClineEvents> {
14211421
enableMcpServerCreation,
14221422
browserToolEnabled,
14231423
language,
1424-
enableAutoContextCondensing,
14251424
} = (await this.providerRef.deref()?.getState()) ?? {}
14261425

14271426
const { customModes } = (await this.providerRef.deref()?.getState()) ?? {}
@@ -1484,7 +1483,7 @@ export class Task extends EventEmitter<ClineEvents> {
14841483
const contextWindow = modelInfo.contextWindow
14851484

14861485
let condensedMessages
1487-
if (enableAutoContextCondensing) {
1486+
if (experiments?.autoCondenseContext) {
14881487
condensedMessages = await summarizeConversationIfNeeded(
14891488
this.apiConversationHistory,
14901489
totalTokens,

src/exports/roo-code.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ type GlobalSettings = {
100100
fuzzyMatchThreshold?: number | undefined
101101
experiments?:
102102
| {
103+
autoCondenseContext: boolean
103104
powerSteering: boolean
104105
}
105106
| undefined
@@ -786,6 +787,7 @@ type IpcMessage =
786787
terminalCompressProgressBar?: boolean | undefined
787788
experiments?:
788789
| {
790+
autoCondenseContext: boolean
789791
powerSteering: boolean
790792
}
791793
| undefined
@@ -1248,6 +1250,7 @@ type TaskCommand =
12481250
terminalCompressProgressBar?: boolean | undefined
12491251
experiments?:
12501252
| {
1253+
autoCondenseContext: boolean
12511254
powerSteering: boolean
12521255
}
12531256
| undefined

src/exports/types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ type GlobalSettings = {
100100
fuzzyMatchThreshold?: number | undefined
101101
experiments?:
102102
| {
103+
autoCondenseContext: boolean
103104
powerSteering: boolean
104105
}
105106
| undefined
@@ -798,6 +799,7 @@ type IpcMessage =
798799
terminalCompressProgressBar?: boolean | undefined
799800
experiments?:
800801
| {
802+
autoCondenseContext: boolean
801803
powerSteering: boolean
802804
}
803805
| undefined
@@ -1262,6 +1264,7 @@ type TaskCommand =
12621264
terminalCompressProgressBar?: boolean | undefined
12631265
experiments?:
12641266
| {
1267+
autoCondenseContext: boolean
12651268
powerSteering: boolean
12661269
}
12671270
| undefined

src/schemas/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ export type CommandExecutionStatus = z.infer<typeof commandExecutionStatusSchema
312312
* ExperimentId
313313
*/
314314

315-
export const experimentIds = ["powerSteering"] as const
315+
export const experimentIds = ["autoCondenseContext", "powerSteering"] as const
316316

317317
export const experimentIdsSchema = z.enum(experimentIds)
318318

@@ -323,6 +323,7 @@ export type ExperimentId = z.infer<typeof experimentIdsSchema>
323323
*/
324324

325325
const experimentsSchema = z.object({
326+
autoCondenseContext: z.boolean(),
326327
powerSteering: z.boolean(),
327328
})
328329

src/shared/__tests__/experiments.test.ts

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,54 @@ describe("experiments", () => {
1010
})
1111
})
1212

13+
describe("AUTO_CONDENSE_CONTEXT", () => {
14+
it("is configured correctly", () => {
15+
expect(EXPERIMENT_IDS.AUTO_CONDENSE_CONTEXT).toBe("autoCondenseContext")
16+
expect(experimentConfigsMap.AUTO_CONDENSE_CONTEXT).toMatchObject({
17+
enabled: false,
18+
})
19+
})
20+
})
21+
1322
describe("isEnabled", () => {
14-
it("returns false when experiment is not enabled", () => {
23+
it("returns false when POWER_STEERING experiment is not enabled", () => {
1524
const experiments: Record<ExperimentId, boolean> = {
1625
powerSteering: false,
26+
autoCondenseContext: false,
1727
}
1828
expect(Experiments.isEnabled(experiments, EXPERIMENT_IDS.POWER_STEERING)).toBe(false)
1929
})
2030

21-
it("returns true when experiment is enabled", () => {
31+
it("returns true when experiment POWER_STEERING is enabled", () => {
2232
const experiments: Record<ExperimentId, boolean> = {
2333
powerSteering: true,
34+
autoCondenseContext: false,
2435
}
2536
expect(Experiments.isEnabled(experiments, EXPERIMENT_IDS.POWER_STEERING)).toBe(true)
2637
})
2738

2839
it("returns false when experiment is not present", () => {
2940
const experiments: Record<ExperimentId, boolean> = {
3041
powerSteering: false,
42+
autoCondenseContext: false,
3143
}
3244
expect(Experiments.isEnabled(experiments, EXPERIMENT_IDS.POWER_STEERING)).toBe(false)
3345
})
46+
47+
it("returns false when AUTO_CONDENSE_CONTEXT experiment is not enabled", () => {
48+
const experiments: Record<ExperimentId, boolean> = {
49+
powerSteering: false,
50+
autoCondenseContext: false,
51+
}
52+
expect(Experiments.isEnabled(experiments, EXPERIMENT_IDS.AUTO_CONDENSE_CONTEXT)).toBe(false)
53+
})
54+
55+
it("returns true when AUTO_CONDENSE_CONTEXT experiment is enabled", () => {
56+
const experiments: Record<ExperimentId, boolean> = {
57+
powerSteering: false,
58+
autoCondenseContext: true,
59+
}
60+
expect(Experiments.isEnabled(experiments, EXPERIMENT_IDS.AUTO_CONDENSE_CONTEXT)).toBe(true)
61+
})
3462
})
3563
})

src/shared/experiments.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { AssertEqual, Equals, Keys, Values } from "../utils/type-fu"
44
export type { ExperimentId }
55

66
export const EXPERIMENT_IDS = {
7+
AUTO_CONDENSE_CONTEXT: "autoCondenseContext",
78
POWER_STEERING: "powerSteering",
89
} as const satisfies Record<string, ExperimentId>
910

@@ -16,6 +17,7 @@ interface ExperimentConfig {
1617
}
1718

1819
export const experimentConfigsMap: Record<ExperimentKey, ExperimentConfig> = {
20+
AUTO_CONDENSE_CONTEXT: { enabled: false },
1921
POWER_STEERING: { enabled: false },
2022
}
2123

webview-ui/src/context/__tests__/ExtensionStateContext.test.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ describe("mergeExtensionState", () => {
215215
apiConfiguration: { modelMaxThinkingTokens: 456, modelTemperature: 0.3 },
216216
experiments: {
217217
powerSteering: true,
218+
autoCondenseContext: true,
218219
} as Record<ExperimentId, boolean>,
219220
}
220221

@@ -227,6 +228,7 @@ describe("mergeExtensionState", () => {
227228

228229
expect(result.experiments).toEqual({
229230
powerSteering: true,
231+
autoCondenseContext: true,
230232
})
231233
})
232234
})

webview-ui/src/i18n/locales/en/settings.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,10 @@
396396
},
397397
"experimental": {
398398
"warning": "⚠️",
399+
"AUTO_CONDENSE_CONTEXT": {
400+
"name": "Automatically condense the context window",
401+
"description": "Uses an LLM call to summarize the past conversation when half of the task's context window is used."
402+
},
399403
"DIFF_STRATEGY_UNIFIED": {
400404
"name": "Use experimental unified diff strategy",
401405
"description": "Enable the experimental unified diff strategy. This strategy might reduce the number of retries caused by model errors but may cause unexpected behavior or incorrect edits. Only enable if you understand the risks and are willing to carefully review all changes."

0 commit comments

Comments
 (0)