unsloth/studio/backend/routes
Unsloth d5758ecf58 Address review round 2: proxy-aware detection, shared worker probe, local skip
All four reproduced before fixing, and re-measured after.

- Proxy-only egress was declared offline. With HTTP(S)_PROXY set, the proxy
  resolves the hub host, so a failing local lookup says nothing. The DNS
  shortcut now stands down whenever a proxy applies (and honours NO_PROXY),
  letting the proxy-aware probe decide. Measured: endpoint probe reachable
  through the proxy while the guard still forced offline.
- The training worker kept its own inline probe hardcoded to huggingface.co,
  so a reachable HF_ENDPOINT mirror set lifetime offline flags. It now uses
  the shared endpoint- and proxy-aware helper.
- /models/check-vision, /models/config and /picker/chat-template ran the
  probe even for local paths, which never reach the hub. Measured 0.9s of
  pure latency per request; now skipped via _hf_offline_if_unreachable_for.

DNS/endpoint/proxy helpers now live in utils.utils so llama_cpp and the
training worker share one implementation instead of three copies.

The static pin in test_offline_inference_parent moved with the probe: the
worker block must delegate to the shared helper and must not hardcode a
host, and the daemon-thread/no-setdefaulttimeout property is pinned on
dns_host_dead where it now lives.

Offline path unchanged: load 686s -> 6s, /models/config 378s -> 0s, and a
local-path vision check is back to 0s.
2026-07-28 23:46:34 -07:00
..
data_recipe Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
.gitkeep root studio folder 2026-02-02 09:13:49 +00:00
__init__.py Studio: add Deep Research (#7219) 2026-07-26 23:36:02 -07:00
auth.py Studio: reject whitespace-only passwords (#7341) 2026-07-23 00:44:37 -07:00
chat_history.py feat(studio): adjustable llama-server parallel slots from the web UI (#7447) 2026-07-28 18:03:28 -07:00
datasets.py Studio: add configurable model download location (#7274) 2026-07-23 01:34:38 -07:00
export.py Studio: offer the latest transformers release for brand-new architectures (#7056) 2026-07-15 05:25:26 -07:00
inference.py Address review: endpoint-aware DNS check, shorter memo, strict gateway mode 2026-07-28 22:31:47 -07:00
llama.py Studio: add local speech-to-text dictation engine (#7095) 2026-07-23 01:39:03 -07:00
mcp_servers.py Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
models.py Address review round 2: proxy-aware detection, shared worker probe, local skip 2026-07-28 23:46:34 -07:00
preview.py Studio: opt-in OpenAI /v1 model auto-switch and idle keep-warm (#6392) 2026-07-01 06:42:23 -07:00
prompts.py Studio: clean-room compact RAG (knowledge bases, hybrid search, fast indexing) (#5910) 2026-06-09 21:17:04 -07:00
providers.py fix(studio): persist connection model selections for remote clients (#7298) 2026-07-23 19:11:50 -07:00
rag.py Add drag and drop sources to the create project dialog (#7441) 2026-07-25 23:54:48 -07:00
research_runs.py Studio: add Deep Research (#7219) 2026-07-26 23:36:02 -07:00
settings.py Studio: fix the "No model loaded" error, and optionally auto-download a model named in an API request (#7454) 2026-07-27 05:02:06 -07:00
training.py feat(studio): add DoRA support to studio (#7315) 2026-07-24 03:24:16 -07:00
training_history.py Studio: require signed capability tokens for /p preview links (#6666) 2026-06-25 21:40:48 -07:00
training_vram.py Add Intel XPU support to Unsloth Studio (#4724) 2026-07-24 02:22:07 -03:00
whisper.py Studio: add local speech-to-text dictation engine (#7095) 2026-07-23 01:39:03 -07:00