unsloth/studio
LeoBorcherding 00c4ef762e GPU pick index-space: stamp the kind onto the pick, not the call site
The fromPersisted-by-call-site marker kept getting misapplied because those
sites carry both storage restores and fresh live edits, and the cold-cache
park/revalidate raced the load path. Replace it with per-value provenance: each
GPU pick carries the index space it was made under, and reconcile drops it only
when that stamp no longer matches the backend.

- use-gpu-info: currentGpuIndexKind() (from /api/system gguf_devices); drop the
  session-global gpuIndexSpaceChanged marker machinery.
- PerModelConfig gains selectedGpuIdsIndexKind (persisted); the runtime store
  gains selectedGpuIdsKind, stamped wherever a pick is set (live picker = current
  kind, load echo = current kind, config apply = the config's stamp).
- reconcilePersistedGpuIds(ids, savedKind): drop when savedKind != current kind
  (both known); unstamped picks default to physical (pre-Vulkan).
- Run settings stamps the current kind when the user edits the GPU picker, so an
  edited pick is never treated as a stale cross-space restore; an unedited
  stored pick keeps its saved kind.
- No more park-null / async revalidate / fromPersisted: a same-backend refresh
  keeps the saved subset (kinds match), a cross-space pin is dropped, and the
  load snapshot carries the stamp so it can't send a wrong-space pin.

Fixes the three Codex findings (cold-cache saved-pick loss, model-generation
race, unedited run-settings treated as live). Contract tests updated; typecheck
+ build + tests/studio contracts green.
2026-07-23 23:00:31 -05:00
..
backend Vulkan GPU picker: allow uncached Hub GGUFs, backstop diffusion at spawn 2026-07-23 18:34:24 -05:00
frontend GPU pick index-space: stamp the kind onto the pick, not the call site 2026-07-23 23:00:31 -05:00
src-tauri Studio: add configurable model download location (#7274) 2026-07-23 01:34:38 -07:00
__init__.py Final cleanup 2026-03-12 18:28:04 +00:00
install_llama_prebuilt.py Studio: add local speech-to-text dictation engine (#7095) 2026-07-23 01:39:03 -07:00
install_node_prebuilt.py Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
install_python_stack.py fix(install): infer Strix gfx when ROCm runtime is absent (#7305) 2026-07-22 20:16:45 -05:00
install_whisper_prebuilt.py Studio: add local speech-to-text dictation engine (#7095) 2026-07-23 01:39:03 -07:00
LICENSE.AGPL-3.0 Add AGPL-3.0 license to studio folder 2026-03-09 19:36:25 +00:00
MCP.md Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
node_prebuilt_pins.json Pin isolated Node.js installer to committed sha256 digests (#6625) 2026-06-24 05:47:58 -07:00
package-lock.json ci: advisory lockfile supply-chain audit (no install-script changes) (#5604) 2026-05-19 05:56:56 -07:00
package.json ci: advisory lockfile supply-chain audit (no install-script changes) (#5604) 2026-05-19 05:56:56 -07:00
prebuilt_core.py Studio: add local speech-to-text dictation engine (#7095) 2026-07-23 01:39:03 -07:00
setup.bat Final cleanup 2026-03-12 18:28:04 +00:00
setup.ps1 Studio: add local speech-to-text dictation engine (#7095) 2026-07-23 01:39:03 -07:00
setup.sh Studio: add local speech-to-text dictation engine (#7095) 2026-07-23 01:39:03 -07:00
Unsloth_Studio_Colab.ipynb Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00