unsloth/studio/backend/studio_mcp
Daniel Han d7b628b289
Studio MCP: keep one [code] tag on audio errors (#14175)
#14080 and #14081 landed together and their error tagging now overlaps:
`tool_error` (from #14081) leads every route error with its `[code]`
tag, while an audio.cpp failure whose message already starts with
`[out_of_memory]` got the tag a second time (`[out_of_memory]
[out_of_memory] Out of memory.`). Five tests in
`tests/test_mcp_audio_hints.py` fail on main because of it.

- `studio_mcp/errors.py`: `tool_error` leaves a message that already
starts with its own `[code]` tag as it is.
- `tests/test_mcp_audio_hints.py`: the gpu_busy case expects the
`[gpu_busy retry_after=5]` tag #14081 adds (still no audio tag), and the
"other errors" cases check that the audio path returns exactly what the
generic route error returns instead of asserting no tag at all.

`python -m pytest tests/test_mcp_*.py`: 2038 passed, 5 skipped (main: 5
failed in test_mcp_audio_hints.py).
2026-10-18 18:45:02 -07:00
..
tools Studio: MCP agents upload datasets, load what they trained, and download models ahead of time (#14107) 2026-10-18 18:40:35 -07:00
__init__.py Studio: let coding agents use Unsloth Studio over MCP with API keys (#13118) 2026-10-13 05:06:16 -07:00
caller.py Studio: let coding agents use Unsloth Studio over MCP with API keys (#13118) 2026-10-13 05:06:16 -07:00
checkpoints.py Studio: let coding agents use Unsloth Studio over MCP with API keys (#13118) 2026-10-13 05:06:16 -07:00
errors.py Studio MCP: keep one [code] tag on audio errors (#14175) 2026-10-18 18:45:02 -07:00
export_jobs.py Studio: MCP agents follow long work in one call and see every model a load unloads (#14089) 2026-10-18 18:22:51 -07:00
forward.py Studio: MCP agents upload datasets, load what they trained, and download models ahead of time (#14107) 2026-10-18 18:40:35 -07:00
gate.py Studio: let coding agents use Unsloth Studio over MCP with API keys (#13118) 2026-10-13 05:06:16 -07:00
inputs.py Studio: MCP returns key-free download links and finds media, voices and video frames again (#14079) 2026-10-18 18:14:49 -07:00
job_store.py Studio: MCP agents follow long work in one call and see every model a load unloads (#14089) 2026-10-18 18:22:51 -07:00
loading.py Studio: MCP agents upload datasets, load what they trained, and download models ahead of time (#14107) 2026-10-18 18:40:35 -07:00
media.py Studio: MCP returns key-free download links and finds media, voices and video frames again (#14079) 2026-10-18 18:14:49 -07:00
model_downloads.py Studio: MCP agents upload datasets, load what they trained, and download models ahead of time (#14107) 2026-10-18 18:40:35 -07:00
outputs.py Studio: MCP agents upload datasets, load what they trained, and download models ahead of time (#14107) 2026-10-18 18:40:35 -07:00
placement.py Studio: MCP agents upload datasets, load what they trained, and download models ahead of time (#14107) 2026-10-18 18:40:35 -07:00
progress.py Studio: MCP errors, cancels and chat controls agents can act on (#14081) 2026-10-18 18:19:59 -07:00
prompts.py Studio: one-command MCP setup, recipe prompts, a model catalog and tool annotations (#14077) 2026-10-18 17:28:06 -07:00
trained_models.py Studio: MCP agents upload datasets, load what they trained, and download models ahead of time (#14107) 2026-10-18 18:40:35 -07:00
video_queue.py Studio: MCP agents choose how and where a model loads, preview the load, and queue videos (#14090) 2026-10-18 18:35:30 -07:00