github AgentWorkforce/burn cli-v0.33.0
@relayburn/cli@0.33.0

latest releases: reader-v0.34.0, analyze-v0.34.0, ledger-v0.34.0...
8 hours ago

[0.33.0] - 2026-04-27

Added

  • burn plans honors per-cycle fidelity (#108). The list view continues to render every plan even when the cycle slice contains partial / aggregate-only / cost-only turns (no fidelity-based filter — plans, like limits, is permissive), but now flags low-confidence cycles so a "looks under budget" plan isn't read as authoritative. The text table grows a confidence column when at least one plan has any contributing turn missing per-turn input/output token data, marked low (partial token data), and a footer note names the affected plan + lower-bound caveat (e.g. note: claude-pro: 3 of 412 turns this cycle lack per-turn token data — totals are a lower bound.). Full-fidelity cycles render exactly as before — no extra column, no footer. --json gains a per-plan usage.fidelity: { confidence, summary } block carrying the same FidelitySummary shape the analyze package emits elsewhere, so machine consumers can render exact counts without re-walking the ledger. cost-only source contributions count toward spentUsd and mark the cycle low-confidence on the token-coverage axis.
  • burn waste honors fidelity (#100). The attribution path (and the --patterns retries|failures|reverts detectors) now hard-filters the input slice against the coverage flags each detector requires — attributeWaste / aggregateBy* need hasToolCalls + hasToolResultEvents; reverts additionally needs hasRawContent (for editPreHash / editPostHash); compaction is unchanged because its sidecar is independent of TurnRecord.fidelity. When all turns fall below the prereq, burn waste exits non-zero with a message naming the missing prerequisite and the source kinds responsible (burn waste: 142/142 turns lack tool-call/tool-result coverage required for waste attribution. Sources: codex (per-session-aggregate, missing tool-call records, tool-result events). No waste analysis was performed.). When some turns survive, the text and JSON output gain an "analyzed N of M" coverage notice that names the gap per source. --json now carries a fidelity block ({ analyzed, excluded, summary, refused }) mirroring summary --json; --patterns JSON additionally exposes a perDetector array with each detector's required flags and excludedBySource breakdown. When compaction is in the selection it always runs — its sidecar has no per-turn fidelity requirement — so --patterns retries,compaction against an aggregate-only slice produces partial output rather than refusing.

Changed

  • burn plans (list view) reads spend from the archive (#91). The list path now issues one SUM(...) GROUP BY (source, model) aggregate per plan against archive.sqlite instead of walking the full ledger once per plan. Output is byte-identical to the legacy queryAll() reduce path on the parity fixture (text and --json); limitedData flagging, reset-day boundaries, multi-plan ordering, and built-in presets all carry over. Pass --no-archive (or set RELAYBURN_ARCHIVE=0) to opt back into the in-memory reduce while the migration shakes out.

Don't miss a new burn release

NewReleases is sending notifications on new releases.