From ef00770abbac655e1ff22f6d18b9d4f50a372bb4 Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Wed, 23 Sep 2026 06:55:21 +0200 Subject: [PATCH] ui : open the manager on a model from its download row Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash --- .../app/dialogs/DialogManageModels.svelte | 4 ++-- .../app/models/ModelsManager/ModelsManager.svelte | 15 ++++++++++++++- .../ModelsSelectorDownloadItem.svelte | 13 +++++++++++-- .../SidebarNavigation/SidebarNavigation.svelte | 5 ++--- tools/ui/src/lib/stores/ui.svelte.ts | 10 ++++++++++ 5 files changed, 39 insertions(+), 8 deletions(-) diff --git a/tools/ui/src/lib/components/app/dialogs/DialogManageModels.svelte b/tools/ui/src/lib/components/app/dialogs/DialogManageModels.svelte index 6188df1a85..0b5eaa4088 100644 --- a/tools/ui/src/lib/components/app/dialogs/DialogManageModels.svelte +++ b/tools/ui/src/lib/components/app/dialogs/DialogManageModels.svelte @@ -18,9 +18,9 @@ - + diff --git a/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManager.svelte b/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManager.svelte index d11405714e..d21b1fb573 100644 --- a/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManager.svelte +++ b/tools/ui/src/lib/components/app/models/ModelsManager/ModelsManager.svelte @@ -11,7 +11,7 @@ saveOverrides } from './utils'; import { LOCAL_BACKEND_ID } from '$lib/constants'; - import { backendsStore, conversationsStore, modelsStore } from '$lib/stores'; + import { backendsStore, conversationsStore, modelsStore, uiStore } from '$lib/stores'; import type { ModelOption } from '$lib/types/models'; import { getBackend } from '$lib/utils/api-base'; import { getBackendCapabilities } from '$lib/utils/backend'; @@ -164,6 +164,19 @@ .join(' ยท '); }); + // a caller can ask for one model to be revealed, the download rows do + $effect(() => { + const focus = uiStore.manageModelFocus; + + if (!focus) return; + + const option = allModels.find((model) => model.id === focus || model.model === focus); + + if (option) selectedId = option.id; + + uiStore.manageModelFocus = null; + }); + async function toggleLoad(option: ModelOption): Promise { if (modelsStore.isModelLoaded(option.model)) { await modelsStore.status.unload(option.model); diff --git a/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorDownloadItem.svelte b/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorDownloadItem.svelte index f2d9e64453..72e0b7dedc 100644 --- a/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorDownloadItem.svelte +++ b/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorDownloadItem.svelte @@ -1,10 +1,10 @@