Repository navigation
Unsloth Studio: show which models have saved run settings and reset them per field or from the model menu - #12608
Conversation
…hem per field or from the model menu
…-saved-indicator-and-reset
…-saved-indicator-and-reset # Conflicts: # studio/frontend/src/features/model-picker/components/model-config-page.tsx
for more information, see https://pre-commit.ci
Main reverted the custom llama.cpp INI page, which took VisionRow with it, so the Vision reset button moves onto the inline Vision row. The row menu keeps both main's eject items and the run settings reset.
…d, and a loaded model's panel that sees a reset The per-field and row-menu reset use Undo02Icon instead of a hand-gesture glyph, and sit right after the label rather than past the hover-only hint. The header compares against the saved record, so a field put back reads as saved again. Resetting from the row menu clears the saved flags on a mounted editor's draft (the loaded model's editor stays mounted), and Undo sets them back. Auto speculative decoding counts as the default. The Undo toast stays 10 s.
…-saved-indicator-and-reset
|
Merged main ( |
…out resolving the global speculative mode A saved Auto (null) and the "auto" a loaded model's status writes still match, but an explicit mode no longer folds into Auto when it equals today's global, so the header says Unsaved changes.
… them Local GGUF and checkpoint rows, Hub search rows, NPU rows and fine-tuned rows opened run settings but never passed savedFor, so a model saved through them showed no dot and no menu reset.
…k savedFor matches the gear
…reset a non-GGUF context pin
…r tab survives a stale forget
|
Pushed Changes in this push (
Each fix has a test that fails before it and passes after. "Repo tests (CPU, studio)" fails 2 tests ( |
…-saved-indicator-and-reset
…ows main's footer

Why
Since #10216 you can save a model's run settings without loading it. Once you do that for a few models, it gets hard to manage:
What's new
Nothing new becomes editable. Every gear here already opens on main, including another model's while one is loaded. This PR makes it visible what's saved and lets you take it back.
Not changed
What gets saved, the storage format, and what's sent when the model loads. Reset uses the same path as the existing Forget settings.
Before / after
Unsloth Desktop shells built from main
996a03f(before) and this branchac84582(after), same profile and backend, tester PC, Windows 11. Saved: Qwen3-1.7B (loaded, KV cache q8_0), gemma-4-E2B (Parallel Slots 2), gemma-4-26B UD-IQ3_S (KV cache q4_0, context 32768).Editing another model while one is loaded. gemma-4-E2B has Parallel Slots and Vision saved away from their defaults, so those two show arrows. Clicking the Vision arrow puts it back to the default and the header turns to "Unsaved changes". Save returns it to "Saved for this model", and the Vision arrow is gone because the field is at its default again.
Reset from the row menu, then Undo. The dot disappears, the toast offers Undo, and Undo brings the dot back.
Resetting the model that's currently loaded. Qwen3 is running with KV cache q8_0 from its saved settings. Resetting it from the row menu deletes the saved copy but doesn't touch the running model, so its panel now says "Not saved" (Remember unticked) while still showing q8_0, which is what is running. Ticking Remember and saving makes it "Saved for this model" again.
Tests
Measured at
ac84582:tscclean.Before / after (Studio built from the merge base
115777devs this branch)Same seeded saved record on both sides (unsloth/gemma-3-270m-it-GGUF UD-Q4_K_XL, KV cache q8_0, Parallel Slots 2), chat model picker, On Device tab.
Model list. The gear on a model with saved run settings carries a dot and stays visible without hovering.
Row menu. "Reset run settings" appears only for a model with saved settings.
Run Settings panel. "Saved for this model" under the name, reset arrows only on the two changed fields (KV Cache Dtype, Parallel Slots), footer button "Reset all". The Estimated Memory Usage block is an async estimate that had not landed on one side when the shot was taken; it is not part of this change.
The same scene gives identical results in Chromium, Firefox and WebKit.