* studio/frontend: cap auto-load cascade attempts autoLoadSmallestModel walks every cached GGUF and safetensors repo with a try/catch + continue, so a folder of broken caches (missing files, stale llama.cpp prebuilt, GPU OOM) can fire dozens of failing POST /api/inference/load calls in a row. Each call costs ~5 seconds (HF metadata probe + DNS guard inside inference.py), so the user sees a runaway sequence of request_completed log lines after sending one message that needed an auto-load. Cap the total loadModel calls inside autoLoadSmallestModel at 3 (GGUF cascade plus safetensors fallback share the same counter). Caching that fails three times in a row is almost certainly an environment problem, not "we haven't found the working one yet"; the default-Gemma download path still runs. No behavior change on the happy path: success returns after the first hit exactly like today, and the trust-remote-code skip path does not consume an attempt slot. * shorter comment on auto-load cap * studio chat: extend autoload cap to default Gemma fallback Cached cascade respected MAX_AUTO_LOAD_ATTEMPTS but the default-Gemma download path skipped the budget, so a broken cache could still emit a fourth /api/inference/load. Gate the fallback on the same cap (and bump loadAttempts when we do call loadModel) so the total cross-path budget is 3, matching the cap's intent. |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .gitignore | ||
| .gitkeep | ||
| .npmrc | ||
| biome.json | ||
| components.json | ||
| data-designer.openapi (1).yaml | ||
| eslint.config.js | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||