Repository navigation
Release Notes
Version history lives in CHANGELOG.md; this page is the short version. Current release: 0.4.0.
The "stop making claims you cannot back" set — five rounds of hardening around review, spend, telemetry and delegation.
[models] max_cost_usd and max_total_tokens are checked by pydantic-ai before
the next request, so a call is refused instead of its cost being narrated
afterwards. They reach every agent.run() in a run — main loop, fix loop, claims
retry, evaluator, planning reviewer, summariser, memory extraction, claims auditor,
vision inspector — through one definition, with a guard test that fails if any seam
stops passing its limits. Read them as per-call ceilings; the session figure stays
the usage ledger behind --budget. Unset by default. max_cost_usd needs a
priced model; max_total_tokens always holds. A malformed value fails at load
rather than silently becoming no cap.
Every delegation used to be name='delegate', so a designer run and a coder run on
different models were indistinguishable in any trace. Spans are now
delegate.<function> and DELEGATION_COMPLETED reports the same value, so trace
and event cannot drift apart.
Run as a self-hosted OTLP receiver — no SDK, no new dependency, one config value —
because openlit.init() competes with logfire.instrument_pydantic_ai() for the
same hooks and the single global tracer provider. Its cost dashboard is documented
as subordinate to the usage ledger. The export path gained its first end-to-end
test: a span is asserted to reach a real collector at /v1/traces.
A delegated run is handed the parent's usage accumulator, so its requests and
tokens count against the run that caused them instead of vanishing. Its cap is the
delegation slice (used + [delegation].max_requests, bounded by the session
limit), not a fresh allowance per delegation. The operator kill switch is observed
at every tool boundary inside a delegation, not only between the parent's calls.
An oversized tool return is truncated where it is produced (head+tail) instead of arriving whole. Our own tools already self-cap; this bounds what MCP servers send.
New [telemetry] table (enabled, otlp_endpoint, service_name). Traces go to
a local collector only — no token, nothing off the machine — and every agent
carries a name, so a failed run names the agent and request instead of requiring
inference. Off by default; a missing collector never fails a run.
git_push refuses unless a recorded two-axis review covers the exact diff being
published. The record is content-addressed, so amending or rebasing without
changing the diff keeps it valid and fixing a finding voids it. git push through
the shell is refused for the same reason, and the file tools refuse to touch the
git directory, so a record cannot be fabricated. Post-push review stays as a
failsafe. See Review Gate.
A mechanical, model-free guard runs before every model request and compacts when the token estimate crosses the window threshold, instead of only at run start. A run can no longer grow until the provider rejects it with a context-length 400. The guard is fail-open: a guard error degrades to sending the request.
One resolution point turns config into pydantic-ai capabilities for the main loop,
its retries, and the one-shot graders — not a single call site. A test walks the
AST for Agent(...) calls without capabilities, because a missing capability is
invisible at runtime.
The current release. Highlights from its cycle: the planning surface (PRDs, tech designs, roadmap, tickets with per-step evidence), memory and the solved-problem bank, checkpoints and rewind, artifacts, the dockable workspace, MCP integration, skills and directives, project scaffolding and the codegraph index. See CHANGELOG.md for the itemised list.
-
0.3.0 (2026-09-09) — modernization completion: the trace viewer tab,
run_coverage,find_unused_exports(knip) andfind_dead_code(vulture + tree-sitter) tools, on-demand code review from the Diff tab, design tokens as Tailwind@themealiases, the typedapi.tslayer, and memory extraction wired into the worker. - 0.2.0 (2026-09-08) — the uber-agent layer: directives injected into every run, the SKILL.md registry with progressive disclosure, planning mode (propose → approve → tracked steps → review), the MCP client, semantic search, the Budget Cap, JSONL run traces, and the login-gated web UI.
Each entry in the changelog states what changed and, where it matters, what the honest limit of the change is. That is deliberate: a release note that overclaims is a bug report you filed against yourself.
Start
How it works
Using it
Project