Repository navigation
Desktop: offer Restart model when the running model gets its vision files (ATO-1373) - #1144
Closed
sosidudku1 wants to merge 4 commits into
Closed
sosidudku1 wants to merge 4 commits into
sosidudku1 wants to merge 4 commits into
Conversation
… files (ATO-1373) A vision projector is read only when a model starts. Fetching it for the model that is already running changed nothing: the Switch card is dropped for the current model, and the model stayed without vision although the file was on disk. When the finished pull is for the model the local server runs now, the download card shows "Vision files for <model> are ready" with a Restart model button instead of Switch. Nothing restarts by itself, since that would end a reply in progress; under a running turn the button is refused with the reason and the offer stays. The offer goes away once that model stopped or started again another way. A model that is not running gets nothing: its next start picks the projector up.
… (ATO-1373) The status the offer checks is refreshed only by Settings, its poll and Diagnostics. After a switch in the composer's picker it could still name the old model, so Get vision files from the picker gave no Restart offer, or one for the old model and its old server pid. selPullFinished now reads the status afresh first, as llmAfterPull does. It is async now; the two tests that call it wait for it.
…nto bugs-1373-vision-restart # Conflicts: # desktop/test/catalog-projector.test.mjs # desktop/test/switching-outbox.test.mjs
… the model status first
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes ATO-1373 (part of ATO-1360). Stacked on #1143 (ATO-1370 / ATO-1372; base is that branch); merge that one first.
What was wrong. A vision projector is read only when a model starts. Fetching it for the model that is already running changed nothing: the Switch card is dropped for the current model, and the model stayed without vision although the file was on disk.
What changed (the option proposed in the issue; Nadya's call)
modelServingNow: the status poll, else the live local pick), the download card showsVision files for <model> are readywith a Restart model button instead of Switch.llmTurnsRunning/llmStopRefusal, as Settings' Restart model does).llmRestartModel(ATO-852), which now returns whether the model came back up. A failed restart keeps the offer with the reason.visionLandedbefore setting up a Switch.selPullFinishedis async now), since the status is otherwise refreshed only by Settings and Diagnostics.catalog-projector.test.mjsandswitching-outbox.test.mjswait for it.desktop/test/vision-restart.test.mjs, including a stale reading of the old model after a picker switch.How to check. Start a vision model without its
mmproj-*.gguf, send a couple of messages. Settings › Get vision files, wait for it to finish. The card says the vision files are ready, with Restart model; the chat is not cut. Press it: the model restarts and an attached image is now described. Press it during a reply: a refusal, the reply goes on.Checked on the second Mac on 12.11.2026 in the combined run with the other open PRs: build, lint, test types, vitest, desktop unit tests, desktop smoke and live smoke all green.