From 4e9de83333dc4777ced55a8dfb4eaf43eaf499a4 Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Tue, 15 Sep 2026 02:08:42 +0200 Subject: [PATCH] ui : target the selected model on external backends Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash --- tools/ui/src/lib/stores/chat/index.svelte.ts | 4 ++-- tools/ui/src/lib/stores/models/index.svelte.ts | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/tools/ui/src/lib/stores/chat/index.svelte.ts b/tools/ui/src/lib/stores/chat/index.svelte.ts index 4bdcc68456..31e0cbb502 100644 --- a/tools/ui/src/lib/stores/chat/index.svelte.ts +++ b/tools/ui/src/lib/stores/chat/index.svelte.ts @@ -1277,8 +1277,8 @@ class ChatStore implements ChatStreamHost, ChatFlowsHost { convId: string ): Promise { const effectiveModel = - serverStore.isRouterMode && modelsStore.selectedModelName - ? modelsStore.selectedModelName + serverStore.isRouterMode || !serverStore.capabilities.props + ? (modelsStore.activeModelId ?? undefined) : undefined; const configValue = settingsStore.config; const titlePromptTemplate = diff --git a/tools/ui/src/lib/stores/models/index.svelte.ts b/tools/ui/src/lib/stores/models/index.svelte.ts index 21ebb2129a..0648edbda7 100644 --- a/tools/ui/src/lib/stores/models/index.svelte.ts +++ b/tools/ui/src/lib/stores/models/index.svelte.ts @@ -47,6 +47,13 @@ class ModelsStore implements ModelPropsHost, ModelStatusHost { */ get activeModelId(): string | null { if (!serverStore.isRouterMode) { + // external backends expose a selectable list; prefer the user's pick + const selected = this.selectedModelId + ? this.models.find((m) => m.id === this.selectedModelId) + : undefined; + + if (selected) return selected.model; + return this.models.length > 0 ? this.models[0].model : this.singleModelName; } @@ -469,6 +476,12 @@ class ModelsStore implements ModelPropsHost, ModelStatusHost { } } else { this.models = await this.fetchModelModeInternal(); + + // external backends expose a selectable list; pick a default so the + // first send and title generation have a model to target + if (!serverStore.capabilities.props && !this.selectedModelName) { + await this.ensureFirstModelSelected(); + } } } catch (error) { this.models = [];