Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)

## [Unreleased]

### Changed

- **`burn compare` honors fidelity** ([#95](https://github.com/AgentWorkforce/burn/issues/95)). The aggregate now defaults to the `usage-only` fidelity floor — turns whose per-turn token coverage is `aggregate-only` / `cost-only` / `partial` are excluded so a session with mixed fidelity can't silently bias the cost/turn or one-shot rate of full-fidelity peers from the same model. New `--fidelity <class>` and `--include-partial` flags override or disable the floor; coverage notes and the `--json` output gain a `fidelity` block (`{ minimum, excluded, summary }`) computed against the unfiltered slice. Records emitted before `TurnRecord.fidelity` existed still pass for backward compatibility.

## [0.33.0] - 2026-04-27

### Added
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ You can override per-call via `costForUsage(usage, model, pricing, { reasoningMo
burn summary [--since 7d] [--project <path>] [--session <id>] [--workflow <id>] [--agent <id>] [--provider <p>] [--by-provider]
burn by-tool [--since 7d] [--project <path>] [--session <id>] [--provider <p>]
burn waste [--since 7d] [--project <path>] [--session <id>] [--workflow <id>] [--provider <p>]
burn compare [--models a,b] [--since 7d] [--project <path>] [--session <id>] [--workflow <id>] [--agent <id>] [--min-sample <n>] [--json|--csv]
burn compare [--models a,b] [--since 7d] [--project <path>] [--session <id>] [--workflow <id>] [--agent <id>] [--min-sample <n>] [--fidelity <class>] [--include-partial] [--json|--csv]
burn claude [--tag k=v ...] [-- <claude args>]
burn codex [--tag k=v ...] [-- <codex args>]
burn opencode [--tag k=v ...] [-- <opencode args>]
Expand Down Expand Up @@ -298,7 +298,9 @@ This is observed data, not counterfactual: it tells you what happened when you a

Standard filters apply: `--session <id>` limits to a single session, `--agent <id>` limits to a stamped agent ID, `--workflow <id>` to a stamped workflow ID, `--project <path>` to a project path or git-canonical projectKey.

Output formats: TTY table (default), `--json` for scripts, `--csv` for spreadsheets. `--json` and `--csv` are mutually exclusive.
By default, `burn compare` only aggregates turns with `usage-only` fidelity or better — `aggregate-only`, `cost-only`, and `partial` turns are excluded so a session with mixed fidelity can't silently bias the cost/turn or one-shot rate of full-fidelity peers from the same model. When the gate dropped anything, the table prints an `excluded N turns below <class> fidelity (… aggregate-only, … cost-only, … partial)` coverage note. Override the floor with `--fidelity full | usage-only | aggregate-only | cost-only | partial`; `--include-partial` is shorthand for `--fidelity partial` and includes every turn. Records emitted before `TurnRecord.fidelity` existed always pass for backward compatibility.

Output formats: TTY table (default), `--json` for scripts, `--csv` for spreadsheets. `--json` and `--csv` are mutually exclusive. The `--json` payload includes a `fidelity` block (`{ minimum, excluded, summary }`) computed against the unfiltered slice so consumers can render their own coverage UI.

### `burn rebuild --reclassify` — backfill activity labels on old turns

Expand Down
4 changes: 4 additions & 0 deletions packages/analyze/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed

- **`hasMinimumFidelity` and `summarizeFidelity` are now wired into `burn compare`** ([#95](https://github.com/AgentWorkforce/burn/issues/95)). No API change in `@relayburn/analyze` itself — this entry just records the consumer-side adoption of the helpers shipped in 0.14.0 ([#41](https://github.com/AgentWorkforce/burn/issues/41)). See `@relayburn/cli` for the CLI surface (`--fidelity`, `--include-partial`, the new JSON `fidelity` block, and the "excluded N turns" coverage note).

## [0.33.0] - 2026-04-27

### Added
Expand Down
4 changes: 4 additions & 0 deletions packages/cli/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- **`burn limits` honors fidelity on its 5-hour forecast** ([#105](https://github.com/AgentWorkforce/burn/issues/105)). The forecast still consumes every windowed turn — partial / aggregate-only / cost-only data still contributes to the running token total — but `burn limits` now classifies the contributing slice via `summarizeFidelity` and surfaces a binary `high` / `low` confidence flag. Text mode appends a `forecast: low-confidence (N of M contributing turns lack per-turn token data)` notice when at least one contributing turn is missing per-turn token coverage; full-fidelity windows print no notice. `--json` output gains a `forecast.fidelity` block carrying the `confidence` flag and the underlying `FidelitySummary`. `--watch` re-evaluates confidence on each tick so the flag flips as fresher full-fidelity turns land.

### Changed

- **`burn compare` honors fidelity** ([#95](https://github.com/AgentWorkforce/burn/issues/95)). The aggregate now defaults to the `usage-only` floor: turns whose fidelity is `aggregate-only`, `cost-only`, or `partial` are excluded so a session with mixed fidelity can't silently bias the cost/turn or one-shot rate of full-fidelity peers from the same model. Records emitted before `TurnRecord.fidelity` existed (pre-#41 ledgers) still pass for backward compatibility. New flags: `--fidelity <class>` (any of `full | usage-only | aggregate-only | cost-only | partial`) overrides the floor; `--include-partial` is shorthand for `--fidelity partial` and includes every turn — both invalid combinations exit 2 with a clear message. Coverage notes gain an `excluded N turns below <class> fidelity (… aggregate-only, … cost-only, … partial)` line whenever the gate dropped anything, the JSON output gains a top-level `fidelity` block (`{ minimum, excluded, summary }`) computed against the unfiltered slice, and per-model totals render `—` instead of `$0.00` when a model survived the filter with zero turns. When fidelity filtering is active (the default) `burn compare` falls back to the in-memory `queryAll` path so the gate is correctly applied; `--include-partial` (or `--fidelity partial`) reuses the archive's grouped SQL path from #88.

## [0.33.0] - 2026-04-27

### Added
Expand Down
Loading