From d710d377c47550351124650a926e1f216bbae0e9 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Sat, 18 Jul 2026 18:05:36 -0600 Subject: [PATCH] Improve handling of non-Jina models --- .../widgets/SemanticSearchModelSizeWidget.tsx | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/web/src/components/config-form/theme/widgets/SemanticSearchModelSizeWidget.tsx b/web/src/components/config-form/theme/widgets/SemanticSearchModelSizeWidget.tsx index 4ee0019363..7cc35876bf 100644 --- a/web/src/components/config-form/theme/widgets/SemanticSearchModelSizeWidget.tsx +++ b/web/src/components/config-form/theme/widgets/SemanticSearchModelSizeWidget.tsx @@ -2,7 +2,7 @@ // Reads model via LiveFormDataContext so it re-runs even when RJSF's // SchemaField memoization would skip this widget. import type { WidgetProps } from "@rjsf/utils"; -import { useContext, useEffect } from "react"; +import { useContext } from "react"; import { useTranslation } from "react-i18next"; import { Select, @@ -24,19 +24,10 @@ export function SemanticSearchModelSizeWidget(props: WidgetProps) { model !== "jinav1" && model !== "jinav2"; - // Clear model_size while on a provider (buildOverrides converts to "" - // which the backend treats as "remove"). Restore the schema default - // when returning to a Jina model so the field isn't left empty. - const { value, onChange, schema } = props; - const schemaDefault = schema?.default as string | undefined; - useEffect(() => { - if (isProvider && value !== undefined) { - onChange(undefined); - } else if (!isProvider && value === undefined && schemaDefault) { - onChange(schemaDefault); - } - }, [isProvider, value, onChange, schemaDefault]); - + // model_size is ignored by the backend while a provider is selected, so the + // field is only greyed out here. Rewriting the form data instead would leave + // the section permanently dirty: the effective config always reports a + // model_size, so the diff could never be cleared by saving. if (isProvider) { const fieldClassName = getSizedFieldClassName(props.options ?? {}, "sm"); return (