unsloth/studio/frontend/src
Daniel Han ff01108a70 Resolve revisions from the live cache, serialize dataset imports, and stop pinning every gallery blob
Five more items from the review round.

The conditioning-cache revision marker read huggingface_hub's import-time HF_HUB_CACHE
constant. Studio can move its cache during a session and loading follows the live setting, so
after a move the marker went unresolved (or pointed into the previous root) and pulling a new
revision of the same checkpoint no longer invalidated the cache: a warm run could reuse the
old encoder's embeddings and the old VAE's latents. It now looks in the active Studio cache
first and keeps the environment and the library constant as fallbacks, which the trainer
subprocess still needs.

The dataset interlock counts mutations rather than excluding them, so two imports of different
examples into the same empty name both got past the emptiness check. The winner promoted its
staging directory atomically; the loser found the folder non-empty, fell back to a per-file
move, and merged its images and captions into the winner's dataset. Imports now take a
per-folder lock, a second one is refused with 409, and the emptiness check is repeated under
the lock.

On Windows the sd.cpp asset resolver filtered only by accelerator token, so a Windows arm64
host matched an x64 zip, downloaded and installed it, and failed later when the binary would
not run. It now filters by architecture the way the Darwin and Linux branches do.

Every gallery page fetched every PNG up front and kept the object URL for the session, so
scrolling a large gallery grew memory without bound for tiles the user may never look at. The
Images strip now fetches a tile as it nears view, like the Video strip, and keeps the eager
path only where IntersectionObserver is unavailable.

A 503 carrying a JSON body comes from the application, not a proxy, so it is surfaced as the
error it is instead of entering lost-response settlement and being reported as a request that
never reached the server.
2026-07-27 03:37:10 +00:00
..
app Route a chat pick of a diffusion model to the Images or Video page 2026-07-26 04:56:16 -07:00
assets Studio: mascot images degrade gracefully instead of showing alt text (#6146) 2026-06-10 08:22:17 -07:00
components Merge origin/main into image-generation 2026-07-26 12:37:00 +00:00
config fix(studio): persist connection model selections for remote clients (#7298) 2026-07-23 19:11:50 -07:00
features Resolve revisions from the live cache, serialize dataset imports, and stop pinning every gallery blob 2026-07-27 03:37:10 +00:00
hooks Merge origin/main into image-generation (PR #6763) 2026-07-25 00:34:38 -07:00
i18n Merge remote-tracking branch 'origin/main' into r6763_mainmerge 2026-07-27 02:49:24 +00:00
lib Hide unloadable cached rows, hold the dataset interlock, bound a GIF export 2026-07-26 21:37:01 +00:00
shared studio/frontend: make toast and inline error text selectable and copyable (#5506) 2026-05-18 03:47:21 -07:00
stores Update license headers 2026-03-12 17:23:10 +00:00
types feat(studio): add DoRA support to studio (#7315) 2026-07-24 03:24:16 -07:00
utils Studio frontend: reduce and tighten code comments (#6099) 2026-06-08 23:10:35 -07:00
asset-queries.d.ts Studio: mascot images degrade gracefully instead of showing alt text (#6146) 2026-06-10 08:22:17 -07:00
index.css Images: flat Create and Train panes, hover-only scrollbars, tidier Train dataset step 2026-07-25 03:13:41 -07:00
main.tsx Studio: lighten chat text weight on Linux to match macOS rendering (#7308) 2026-07-22 06:14:40 -07:00
speech-recognition.d.ts studio: redesign chat composer (#5891) 2026-06-03 06:07:30 -07:00