ui : target the selected model on external backends

Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash
This commit is contained in:
Aleksander Grygier
2026-09-16 19:22:47 +02:00
parent 2cb944149b
commit 4e9de83333
2 changed files with 15 additions and 2 deletions
+2 -2
View File
@@ -1277,8 +1277,8 @@ class ChatStore implements ChatStreamHost, ChatFlowsHost {
convId: string
): Promise<void> {
const effectiveModel =
serverStore.isRouterMode && modelsStore.selectedModelName
? modelsStore.selectedModelName
serverStore.isRouterMode || !serverStore.capabilities.props
? (modelsStore.activeModelId ?? undefined)
: undefined;
const configValue = settingsStore.config;
const titlePromptTemplate =
@@ -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 = [];