From a4907b63d5ec6a14e465f364c991a771730c61f5 Mon Sep 17 00:00:00 2001 From: Roo Code Date: Thu, 17 Jul 2025 20:56:47 +0000 Subject: [PATCH] fix: resolve OpenAI Compatible embedder provider save validation issue - Fix validation schema for OpenAI Compatible provider to properly handle model dimension field - Improve validation data preparation to ensure numeric fields are properly converted - Ensure validation errors are displayed to users when required fields are missing - Resolves issue where Save button would not work for OpenAI Compatible provider Fixes #5842 --- .../src/components/chat/CodeIndexPopover.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/webview-ui/src/components/chat/CodeIndexPopover.tsx b/webview-ui/src/components/chat/CodeIndexPopover.tsx index 4385e2e844..649df64fcc 100644 --- a/webview-ui/src/components/chat/CodeIndexPopover.tsx +++ b/webview-ui/src/components/chat/CodeIndexPopover.tsx @@ -369,7 +369,20 @@ export const CodeIndexPopover: React.FC = ({ dataToValidate[key] = "placeholder-valid" } } else { - dataToValidate[key] = value + // Special handling for model dimension field - ensure it's a number when required + if (key === "codebaseIndexEmbedderModelDimension") { + // For OpenAI Compatible provider, this field is required and must be a number + if (currentSettings.codebaseIndexEmbedderProvider === "openai-compatible") { + // Convert to number if it's a string, or use undefined if empty + const numValue = typeof value === "string" ? parseInt(value, 10) : (value as number) + dataToValidate[key] = isNaN(numValue) ? undefined : numValue + } else { + // For other providers, it's optional + dataToValidate[key] = value + } + } else { + dataToValidate[key] = value + } } }