changelog
What shipped, versioned honestly.
Semver means something here: majors break you (with a migration guide and a deprecation window), minors add, patches fix. Breaking changes are announced at least 90 days before the old surface turns off.
-
v2.3.0
minorGuardrail dry-run mode and policy diffs
-
New
dry-runenforcement mode: policies evaluate and log verdicts without blocking, separately fromobserve(which skips enforcement telemetry). - Policy diff view: compare two policy versions and see which past runs each would have blocked.
- Console: the would-have-blocked report exports as CSV.
-
New
-
v2.2.0
minorEval gates in CI
-
trellis eval --gateexits non-zero when a candidate regresses beyond per-suite thresholds. Add it to any CI as a test step. -
Per-suite regression thresholds in
trellis.yaml(absolute or relative). - CI examples for the common hosted runners in the docs.
-
-
v2.1.1
patchTrace ingestion fixes
- Fixed a backpressure condition where bursty fleets (over 2k spans/s from one workspace) could delay trace availability by up to 90 s.
- Span deduplication for at-least-once SDK delivery: replayed checkpoints no longer double-count tokens in rollups.
-
v2.1.0
minorForensic retention tier
- New observability tier: 90-day retention with full request and response payloads and eval snapshots.
- Payload encryption at rest with customer-managed keys (CMK) on the forensic tier.
- Retention is configured per workspace; changes are audit-logged.
-
v2.0.0
majorRuns API v2
-
BREAKING:
stepobjects are nowspanobjects across the API and SDKs, aligning our trace model with OpenTelemetry semantics. -
BREAKING:
run.costmoves from cents (integer) to a decimal-string USD amount with a per-span breakdown. - v1 endpoints keep working until 2026-11-01; the migration guide maps every renamed field.
-
BREAKING:
-
v1.9.0
minorHuman-approval steps
-
Runs can pause on an
approvalspan. Parked runs hold no compute and cost nothing while waiting. - Approve in the console, by API, or from chat; the approver's identity and timestamp land in the trace.
- Configurable timeout with a fallback branch (auto-reject, escalate, or continue).
-
Runs can pause on an
-
v1.8.0
minorCost attribution rollups
-
Tag runs with any metadata (
tenant,feature,experiment) and get cost, latency, and outcome rollups per key. - Monthly invoice line items can be split by one metadata key. Finance teams asked, we shipped.
-
Tag runs with any metadata (
-
v1.7.1
patchPython SDK retry fix
-
Fixed a retry storm where a 429 on checkpoint write could trigger immediate retries with no backoff in
trellis-python1.7.0. -
SDKs now honor
Retry-Afteron all control-plane endpoints.
-
Fixed a retry storm where a 429 on checkpoint write could trigger immediate retries with no backoff in
-
v1.7.0
minorOpenTelemetry export
- Native OTel export: every Trellis span forwards to your collector with standard GenAI semantic-convention attributes.
- Prebuilt dashboards for Datadog and Grafana in the integrations gallery.
-
v1.6.0
minorCache-aware token accounting
- Cache reads are now metered separately from fresh input tokens in traces and invoices. Multi-step agents typically see 60% to 90% of input tokens served from provider prompt caches.
- Cost projections in the console use your workspace's actual trailing cache-hit rate.
Older releases (v1.0.0 to v1.5.x) live in the console's release archive.
$ trellis estimate --honest
Ship against a platform that tells you what changed.
Subscribe to release notes from the console, or watch the eval gate catch what the release notes missed.