From bcbcd20574d517f249f65b8c8926c13d0a28e196 Mon Sep 17 00:00:00 2001 From: Roo Code Date: Mon, 27 Oct 2025 23:38:49 +0000 Subject: [PATCH] fix: persist condensing API configuration in Context Management settings - Added condensingApiConfigId dropdown to ContextManagementSettings component - Dropdown is now visible regardless of auto-condense checkbox state - Updated SettingsView to pass condensingApiConfigId prop - Fixed test expectations to account for new dropdown element Fixes #8871 --- .../settings/ContextManagementSettings.tsx | 37 +++++++++++++++++++ .../src/components/settings/SettingsView.tsx | 1 + .../ContextManagementSettings.spec.tsx | 8 ++-- 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/webview-ui/src/components/settings/ContextManagementSettings.tsx b/webview-ui/src/components/settings/ContextManagementSettings.tsx index 217b205dd4..dc9eb20dcc 100644 --- a/webview-ui/src/components/settings/ContextManagementSettings.tsx +++ b/webview-ui/src/components/settings/ContextManagementSettings.tsx @@ -24,6 +24,7 @@ type ContextManagementSettingsProps = HTMLAttributes & { maxTotalImageSize?: number maxConcurrentFileReads?: number profileThresholds?: Record + condensingApiConfigId?: string includeDiagnosticMessages?: boolean maxDiagnosticMessages?: number writeDelayMs: number @@ -40,6 +41,7 @@ type ContextManagementSettingsProps = HTMLAttributes & { | "maxTotalImageSize" | "maxConcurrentFileReads" | "profileThresholds" + | "condensingApiConfigId" | "includeDiagnosticMessages" | "maxDiagnosticMessages" | "writeDelayMs" @@ -61,6 +63,7 @@ export const ContextManagementSettings = ({ maxTotalImageSize, maxConcurrentFileReads, profileThresholds = {}, + condensingApiConfigId, includeDiagnosticMessages, maxDiagnosticMessages, writeDelayMs, @@ -398,6 +401,40 @@ export const ContextManagementSettings = ({ data-testid="auto-condense-context-checkbox"> {t("settings:contextManagement.autoCondenseContext.name")} + + {/* API Configuration dropdown - shown regardless of auto-condense state */} +
+ + +
+ {t("prompts:supportPrompts.condense.apiConfigDescription")} +
+
+ {autoCondenseContext && (
diff --git a/webview-ui/src/components/settings/SettingsView.tsx b/webview-ui/src/components/settings/SettingsView.tsx index 506eabc4cb..bd3fa7034a 100644 --- a/webview-ui/src/components/settings/SettingsView.tsx +++ b/webview-ui/src/components/settings/SettingsView.tsx @@ -748,6 +748,7 @@ const SettingsView = forwardRef(({ onDone, t maxTotalImageSize={maxTotalImageSize} maxConcurrentFileReads={maxConcurrentFileReads} profileThresholds={profileThresholds} + condensingApiConfigId={condensingApiConfigId} includeDiagnosticMessages={includeDiagnosticMessages} maxDiagnosticMessages={maxDiagnosticMessages} writeDelayMs={writeDelayMs} diff --git a/webview-ui/src/components/settings/__tests__/ContextManagementSettings.spec.tsx b/webview-ui/src/components/settings/__tests__/ContextManagementSettings.spec.tsx index 61444267f2..94dcee8d96 100644 --- a/webview-ui/src/components/settings/__tests__/ContextManagementSettings.spec.tsx +++ b/webview-ui/src/components/settings/__tests__/ContextManagementSettings.spec.tsx @@ -377,9 +377,9 @@ describe("ContextManagementSettings", () => { const slider = screen.getByTestId("condense-threshold-slider") expect(slider).toBeInTheDocument() - // Should render the profile select dropdown + // Should render the profile select dropdown and condensing API config dropdown const selects = screen.getAllByRole("combobox") - expect(selects).toHaveLength(1) + expect(selects).toHaveLength(2) }) describe("Auto Condense Context functionality", () => { @@ -412,8 +412,8 @@ describe("ContextManagementSettings", () => { // Threshold settings should be visible expect(screen.getByTestId("condense-threshold-slider")).toBeInTheDocument() - // One combobox for profile selection - expect(screen.getAllByRole("combobox")).toHaveLength(1) + // Two comboboxes: one for profile selection and one for condensing API config + expect(screen.getAllByRole("combobox")).toHaveLength(2) }) it("updates auto condense context percent", () => {