From 8e9d8b9ac1b593032dea9eca312fa1495c0c8858 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 17 Oct 2026 10:59:22 +0200 Subject: assistant: Load no longer changes the preferred model Load set the preference as well as swapping the model in, so loading a model from the settings page for any reason made it the assistant's model too: after loading Qwen there, the canvas kept Qwen instead of bringing the preferred Gemma back. Load and Prefer are now separate buttons: Load swaps a model in now and leaves the preference alone, and Prefer only records which model the canvas loads when it opens. The canvas header also showed a stale model name after a swap; it now takes the model from the daemon's ctx event, which carries it from desktop-assistant f9d4644 on. Co-Authored-By: Claude Opus 5.5 --- desktop/modules/assistant/AssistantPage.qml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'desktop/modules/assistant/AssistantPage.qml') diff --git a/desktop/modules/assistant/AssistantPage.qml b/desktop/modules/assistant/AssistantPage.qml index 2e40ed4..c6b63fc 100644 --- a/desktop/modules/assistant/AssistantPage.qml +++ b/desktop/modules/assistant/AssistantPage.qml @@ -165,8 +165,9 @@ Column { Small { width: page.width wrapMode: Text.Wrap - text: "The assistant answers with whichever model llama-server has loaded. Load makes one the " - + "preferred model and loads it now, which swaps out the loaded one for every client." + text: "The assistant answers with whichever model llama-server has loaded. Opening it loads " + + "the preferred model if another one is in. Load swaps a model in now, for every client, " + + "without changing the preference." } Small { @@ -211,13 +212,20 @@ Column { modelRow.preferred ? "preferred" : ""].filter(s => s).join(" ยท ") color: modelRow.preferred ? Theme.accent : Theme.subtext } + // Two separate choices: which model the assistant prefers, kept, + // and which one is loaded now, a swap for every client. Button { + id: loadBtn anchors { right: parent.right; rightMargin: 6; verticalCenter: parent.verticalCenter } - text: modelRow.loaded ? (modelRow.preferred ? "Loaded" : "Prefer") : "Load" - enabled: page.asst.loading === "" && !(modelRow.loaded && modelRow.preferred) - // A loaded model only becomes the preferred one: nothing to swap. - onClicked: modelRow.loaded ? Prefs.setAssistantModel(modelRow.modelData.id) - : page.asst.loadModel(modelRow.modelData.id) + text: "Load" + enabled: page.asst.loading === "" && !modelRow.loaded + onClicked: page.asst.loadModel(modelRow.modelData.id) + } + Button { + anchors { right: loadBtn.left; rightMargin: 6; verticalCenter: parent.verticalCenter } + text: modelRow.preferred ? "Preferred" : "Prefer" + enabled: !modelRow.preferred + onClicked: Prefs.setAssistantModel(modelRow.modelData.id) } } } -- cgit v1.2.3