github MakazhanAlpamys/Soup v0.53.6
v0.53.6 — Plugin + Agent + Anthropic API

latest releases: v0.75.2, v0.75.1, v0.75.0...
4 months ago

What's New

v0.53.6 — Plugin + Agent + Anthropic API: 6 features — 3 live, 3 deferred-live stubs with v0.53.7 markers.

  • Soup plugins now run live as Trainer callbacks (#101). New SoupPluginCallback dispatches pre_train / post_train / pre_step / post_step to every enabled plugin via the v0.45.0 registry. Hook exceptions swallowed at WARNING — one misbehaving plugin must never crash a multi-hour run. Wired into all 13 transformer-backend trainers (SFT + DPO + GRPO + KTO + ORPO + SimPO + IPO + BCO + PPO + RewardModel + Pretrain + Embedding + Distill) via attach_plugin_callback.
  • Anthropic-shaped /v1/messages endpoint (#102). soup serve --backend transformers exposes a POST /v1/messages route reusing the v0.45.0 anthropic_messages converter + the existing chat handler. Validation errors return a generic "Invalid request" 400 (details logged server-side at DEBUG). Streaming returns 501 — true Anthropic event-shape SSE ships in v0.53.7.
  • n-gram speculative decoding wired through (#104). When the server is started with an NgramSpecConfig, every chat completion forwards prompt_lookup_num_tokens=N into model.generate(...) (HF Transformers ≥ 4.38 prompt-lookup decoding). Mutually exclusive with a real draft assistant_model.
  • soup data recipe --execute lands as a stub-then-live CLI surface (#106). --execute --output <dir> validates the DAG, enforces cwd-containment on --output at the CLI boundary, then surfaces the v0.53.7 NotImplementedError marker from run_recipe. Empty-string --output "" and outside-cwd paths are rejected before the runner is even called.
  • Server-side tool endpoints (/v1/tools/python + /v1/tools/bash + /v1/tools/web_search) (#103). URL schema lives now so clients can target the endpoints. All three return HTTP 501 with the v0.53.7 marker.
  • instantiate_trainer_plugins schema-only (#105). Validates [grokfast, spectrum, llmcompressor, sonicmoe, cce_plugin, math_verify] lists then raises with the v0.53.7 marker.

Tests: 7998 → 8051 (+53 in tests/test_v0536.py). All green across ubuntu/macos/windows × py 3.9/3.11/3.12. Ruff clean. Three review agents ran (python / code / security); every HIGH and MEDIUM finding fixed.

Install / Upgrade

pip install --upgrade soup-cli

Security

  • Generic validation-error redaction on /v1/messages — internal validator/converter detail no longer leaks to the HTTP 400 body; details logged server-side at DEBUG (matches utils/errors.py policy).
  • Race-free plugin hook snapshot — build_plugin_callback collects enabled-plugin hooks ONCE and passes the list to the callback constructor; a plugin registered between the "is empty?" check and the ctor cannot silently slip into the active hook list.
  • CLI-side cwd containment on soup data recipe --execute --output <dir> — is_under_cwd check fires BEFORE the live runner is called, so even after the v0.53.7 live wiring lands, an outside-cwd --output will already be rejected at the CLI boundary (defence-in-depth).
  • HTTP 501 stubs for /v1/tools/* — schema lock-in only; no sandbox execution path is reachable until v0.53.7.

Known Limitations

  • vLLM /v1/messages parity deferred to v0.53.7 — Anthropic route is live on the transformers backend only.
  • Streaming /v1/messages returns 501 — Anthropic event-shape SSE ships in v0.53.7.
  • Plugin hook snapshot is at callback-construction time — a plugin registered mid-run will NOT retroactively receive hooks for the active run (by design).
  • n-gram speculative decoding is transformers-only — vLLM ships its own prompt-lookup path that needs a different kwarg.
  • /v1/tools/{python,bash,web_search} return 501 — RLVR sandbox HTTP wrapper + WebSearchConfig.domain_allowlist enforcement land in v0.53.7.
  • run_recipe is stub-only — live per-node handlers + checkpoint/resume + judge-provider routing deferred to v0.53.7.
  • instantiate_trainer_plugins is stub-only — validates the name list then raises; live upstream-plugin lazy imports + callback construction in v0.53.7.

🤖 Generated with Claude Code

Don't miss a new Soup release

NewReleases is sending notifications on new releases.