Changelog
Every notable change to Minion, newest first. Format follows Keep a Changelog; versions follow semantic versioning — and while Minion is pre-1.0, breaking changes are called out inline rather than saved for a major bump.
[Unreleased]
Section titled “[Unreleased]”- Fix deleting a run leaving its grandchild sub-runs orphaned — the cascade only followed one level, so runs from a specialist that itself delegated stayed in the database, invisible in the trace list but still counted in analytics
- Distinguish “this model can’t do structured output” from “this reply couldn’t be parsed”: a model whose provider accepted the request is no longer reported as lacking schema support, and a truncated reply now says so and points at tool-output size instead of re-prompting into a larger context
- Retry a rejected structured-output request before concluding a model is incapable —
groq/openai/gpt-oss-120bintermittently emits a native function call instead of the envelope, and one sample was enough to declare it unsupported - Add
structured_outputtoMinion:"auto"(default) uses native JSON-schema enforcement where the provider supports it and the prompted fallback where it doesn’t,"native"never falls back,"prompt"always uses the fallback. The fallback injects the schema into the system prompt, asks forjson_objectmode, and re-prompts on a malformed reply up tomax_parse_retriestimes (default 2) — this makes previously unusable models such asgroq/llama-3.3-70b-versatilework - Replace the raw LiteLLM
BadRequestErrorfrom a model that can’t do structured output with aStructuredOutputErrornaming the model, explaining the requirement, and listing the ways forward. Errors unrelated to structured output propagate unchanged - Reparse retries are charged to the turn that made them, so a run that retried reports the tokens it actually spent
- Add
minion --help/--version;minion serve --helpnow prints usage instead of silently starting the server - Add built-in prices for Groq’s
gpt-oss-120b,gpt-oss-20b,llama-3.3-70b-versatileandllama-3.1-8b-instant— their traces showed as unpriced before - Add a documentation site (Astro + Starlight) under
website/, with a public changelog page generated from this file.docs/is now a pointer to it - Add
tests/: offline tests for the structured-output paths (no API calls), andtests/smoke_providers.py, a live Tier 1 provider gate that refuses to run without an explicit flag - Add
parallel_tools=Trueto run a turn’s tool calls concurrently; each call is now timed independently so latencies stay accurate under parallelism - Show per-turn cost in the trace viewer, computed the same way as the run total so turns sum back to it
- Breaking: rename the CLI command
minion ui→minion serve. The old name is removed, not aliased — it named the technology rather than the job, and the dashboard now covers traces, analytics and (soon) evals - Breaking: rename the Docker image and compose service
minion-ui→minion-server. Updateimage:toshriyansnaik/minion-server(orghcr.io/shriyansnaik/minion-server); the oldminion-uitags are no longer updated - Fix
minion servecrashing withUnicodeEncodeErroron Windows consoles using the cp1252 codepage - Add
ROADMAP.md(feature list and release phases) anddocs/providers.md(tiered provider support; Minion requires models with native JSON-schema structured output) - Trace viewer: path-style URLs (
/project/<id>/trace/<id>), model/metadata/date-range filters, ascending/descending sort, keyset-paginated trace list, and batch delete (selected rows or all matching the current filter) - Add database indexes on
runsand migratemetadatato JSONB+GIN on Postgres for efficient filtering; metadata values are now stored as strings (seeMinion.__call__docstring) - Fix date-range filter excluding most of the “to” day when no end time was set; support chaining multiple metadata filters (AND)
- Add specialist
sub_minionsand makeMinionruns thread-safe - Only include the spawn-sub-minion prompt section when
allow_sub_agentsis set - Validate project/token match at
init()instead of failing silently - Return errors as strings instead of raising in
demo_tools
[0.1.3] - 2026-06-19
Section titled “[0.1.3] - 2026-06-19”- Capture and surface errors on failed runs
- Merge UI extras into core package
- Add coming soon website
- Bump workflow actions to Node 24 versions; add release runbook doc
- docs: add Updating section to hosting guide
[0.1.2] - 2026-06-16
Section titled “[0.1.2] - 2026-06-16”- Add trace observability: local + remote tracing, dashboard, Postgres, Docker
- Migrate to LiteLLM, rename tools to
demo_tools, enhance README - Add PyPI publish workflow (Trusted Publishing) and docs
- Bundle UI build and price table in sdist too (global hatch artifacts)
[0.1.1]
Section titled “[0.1.1]”- Rename to Minion AI
- Add
minionspackage,pyproject.toml, and project scaffolding