What's New
Web UI Enhancement (v0.24.2)
Closes the gap with LLaMA-Factory's Gradio UI while keeping Soup's lightweight vanilla JS SPA architecture.
Training Live Monitor
- Real-time SSE log streaming with auto-scroll and 500-line ring buffer
- Live metrics SSE streaming from SQLite (2s poll, delta emit)
- Training progress bar with step/total, elapsed time, and ETA
- Pulsing "Live" indicator badge when SSE connected
- Last-Event-ID header support for reconnection
Enhanced Metrics & Eval Display
- 2x2 chart grid: Loss, Learning Rate, Gradient Norm, Throughput
- GPU Memory timeline chart (when data available)
- Eval results table in run detail modal (benchmark, score, details)
- Multi-run comparison endpoint (
/api/runs/compare, max 5 runs)
Chat Upgrade
- SSE streaming responses via proxy endpoint (
/api/chat/send) - Configurable generation params: temperature, max_tokens, top_p sliders
- System prompt textarea + adapter selection
- Typing indicator + cancel generation button
- Lightweight markdown renderer (bold, italic, code blocks, lists)
- Chat history export as JSON
Visual Config Builder
- Config schema API (
/api/config/schema) — Pydantic field metadata extraction - Recipes API (
/api/recipes) — 29 ready-made configs as JSON - Form-to-YAML API (
/api/config/from-form) — validated conversion - Recipe dropdown on training page (quick-start from any recipe)
Security
- Chat proxy: SSRF protection (localhost-only HTTP, HTTPS for remote)
- Chat proxy: max_tokens capped at 16384, temperature 0-2, top_p 0-1
- Chat proxy: Bearer token auth required on POST
- XSS prevention: HTML-escape before markdown render
- Runs compare: max 5 runs per comparison
Tests: 58 new tests across 4 files (2128 total, 78 files, 67% coverage)
Install / Upgrade
pip install --upgrade soup-cli
# or with Web UI extras:
pip install --upgrade 'soup-cli[ui]'