- Run GGUF load_model in asyncio.to_thread so the event loop stays free for progress polling during download (was blocking all requests). - Extract download phase out of the lock in LlamaCppBackend.load_model so unload_model/cancel can take effect immediately during download. - Fix "downloaded" badge for split GGUFs: check total cached bytes across all shards vs expected size, not just first shard existence. - Respect CUDA_VISIBLE_DEVICES in /api/system GPU reporting so the frontend GGUF fit estimation uses actual available VRAM. - Sort tight variants (need CPU offload) smallest-first instead of largest-first -- closer to GPU budget = faster inference. - Fix cancel: use refs instead of React state for abort controller and toast ID so both cancel buttons (text + toast) work reliably. Make cancel synchronous (fire-and-forget unload) for instant UI response. Check abortCtrl.signal.aborted after loadModel returns to prevent ghost model state. Skip rollback and suppress errors on cancel. - Dynamic top 4 GGUF models fetched from HF API sorted by downloads, prepended to the default recommended list. - Remove turnAnchor="top" for auto-scroll to bottom during generation. - Set default toast duration to 10s (was infinite for loading toasts). - Deduplicate cached GGUF repos using scan_cache_dir API (fixes Qwen/X-GGUF vs qwen/x-gguf duplicates from lowercased HF cache). - Pre-compile repo_id validation regex to silence CodeQL ReDoS warning. - Change welcome text and default suggestion text. |
||
|---|---|---|
| .. | ||
| backend | ||
| frontend | ||
| __init__.py | ||
| install_python_stack.py | ||
| LICENSE.AGPL-3.0 | ||
| setup.bat | ||
| setup.ps1 | ||
| setup.sh | ||
| Unsloth_Studio_Colab.ipynb | ||