Four review findings, the first a regression from my own last commit:
- Keying scoped download jobs by a digest of the file set broke the
download manager: it builds that key client-side (it polls and cancels
before any response tells it a key), so it watched and cancelled a key
no worker owned and never fired its ready callback. Keep the derivable
"@scope" key and refuse the second request instead when a live job on
the slot is fetching a different file set -- decided inside the
registry claim, under the lock, so a concurrent claim cannot slip past
it. The manager records the file set on the job as well, so a sibling
quant's transfer is not adopted locally either.
- Both diffusion pages read the route query through a loose useSearch and
both stay mounted once visited, so the hidden one consumed the other's
?model=: it navigated back to its own route and tried to load, say, an
image checkpoint as a video model. Only the visible page consumes it.
- The staged download plan was built without the configured HF token or
the Advanced values the load itself sends. The token matters most: the
backend's Hub metadata lookup is best-effort, so a gated base silently
planned no companion entry and the load pulled those multi-GB files
inline, outside the manager. The memory/quant controls decide whether
the base transformer/ shards are needed at all, and the route dropped
memory_mode, cpu_offload, the prequant path and the LoRA selection
before asking for the plan.
- The video preview kept playing after leaving the page: the keep-alive
layout only hides it, and display:none does not pause a media element,
so a clip the user unmuted kept its audio going over the next page.
Pause on the active transition and do not auto-replay while hidden.
Also completes the hand-built request bodies in the hub download tests:
the scoped-files field this branch added to the route read as an
AttributeError against them, failing five tests.