aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/assistant
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-23 17:10:56 +0200
committerDanilo M. <danix@danix.xyz>2026-10-23 17:10:56 +0200
commit566b1a73ad1caf7ed399f96f5ec45153f7bd980f (patch)
treeecce80967a110ec1bfafc6cc50f0a97e9554fbcd /desktop/assistant
parent9b8b64da15bd6f96f228736f8604aef003304e72 (diff)
downloadquickshell-566b1a73ad1caf7ed399f96f5ec45153f7bd980f.tar.gz
quickshell-566b1a73ad1caf7ed399f96f5ec45153f7bd980f.zip
assistant: load the chat's model on open, docs for cloud models
The canvas asks for its chat's model, else the preferred one, when it opens and when the pick changes; a cloud id loads nothing. The paperclip also closes the model panel, so it and the picker never stack. The plan's Models.qml import is corrected to the one that resolves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/assistant')
-rw-r--r--desktop/assistant/Card.qml2
-rw-r--r--desktop/assistant/README.md10
2 files changed, 10 insertions, 2 deletions
diff --git a/desktop/assistant/Card.qml b/desktop/assistant/Card.qml
index b9fe4e5..810920f 100644
--- a/desktop/assistant/Card.qml
+++ b/desktop/assistant/Card.qml
@@ -465,7 +465,7 @@ Rectangle {
text: ""
font.family: Theme.iconFamily
onClicked: {
- card.canvas.historyOpen = false;
+ card.canvas.historyOpen = card.canvas.modelsOpen = false;
card.canvas.pickerOpen = !card.canvas.pickerOpen;
}
}
diff --git a/desktop/assistant/README.md b/desktop/assistant/README.md
index 58fbb14..4c76a66 100644
--- a/desktop/assistant/README.md
+++ b/desktop/assistant/README.md
@@ -18,6 +18,7 @@ what is typed. The protocol is specified in that repo,
| `Segments.qml` | markdown with a copy button per code block |
| `History.qml` | conversation list and full-text search |
| `Picker.qml` | the in-card file picker behind the paperclip |
+| `Models.qml` | the model panel: local and cloud models, the chat's pick |
| `Md.js` | splits a message into prose and fenced code |
| `Files.js` | a path's kind, and a dropped URL to a path |
| `Presets.js` | the Ask row's canned questions and which kinds they fit |
@@ -38,9 +39,16 @@ model transcribe it and answers the words. The mic is greyed out while the
model in use reports no `audio` input (`AssistantModule.hears`, from the
router's `/models`, read on every open).
+The header's model name (the Model button outside chat, or Ctrl+M) opens
+the model panel: the router's models, then each cloud provider's. A pick
+applies to this chat from its next question and is stored with it by the
+daemon; a new chat starts on the preferred model. Moving a chat with turns
+to a cloud model says once that its history goes to that provider. Voice is
+transcribed by the local model in a cloud chat too.
+
Keys: Enter sends, Shift+Enter is a newline, Escape cancels a recording,
then closes the picker, the history panel, then the card. Ctrl+N starts a
-new chat, Ctrl+H toggles the history panel. Stop replaces
+new chat, Ctrl+H toggles the history panel, Ctrl+M the model panel. Stop replaces
Send while a reply streams.
Notes: