github AgentWorkforce/burn relayburn-v1.9.0
relayburn@1.9.0

latest releases: relayburn-v1.10.0, sdk-v1.10.0, reader-v1.10.0...
5 hours ago

Packages

  • @relayburn/reader@1.9.0 (tag: reader-v1.9.0)
  • @relayburn/ledger@1.9.0 (tag: ledger-v1.9.0)
  • @relayburn/analyze@1.9.0 (tag: analyze-v1.9.0)
  • @relayburn/ingest@1.9.0 (tag: ingest-v1.9.0)
  • @relayburn/sdk@1.9.0 (tag: sdk-v1.9.0)
  • @relayburn/mcp@1.9.0 (tag: mcp-v1.9.0)
  • @relayburn/cli@1.9.0 (tag: cli-v1.9.0)
  • relayburn@1.9.0 (tag: relayburn-v1.9.0)

Release Notes

Changed

  • Architecture: @relayburn/sdk is now the canonical in-process query surface. Dependency order moves from … → mcp → cli → sdk → relayburn to … → sdk → mcp → cli → relayburn; @relayburn/mcp now depends on @relayburn/sdk and rewrites burn__sessionCost as a thin wrapper over the SDK's new sessionCost() function. New read verbs should land in the SDK first; MCP and CLI become presenters (tool definitions / table rendering) over the same SDK calls so query logic stops drifting between them.
  • burn compare joins summary / sessionCost / overhead / overheadTrim as a thin presenter over @relayburn/sdk's new compare() function. The archive-vs-ledger branching and fidelity-gate logic move into the SDK so a future burn__compare MCP tool (and embedders) can wrap the same call without re-implementing them.

Package Changelogs

@relayburn/analyze

Changed

  • Extract ingest orchestration into @relayburn/ingest (#230)

@relayburn/ingest

Added

  • New package extracted from @relayburn/cli. Owns Claude/Codex/OpenCode session-store discovery, incremental parse-and-append orchestration, pending-stamp resolution, content-gap warning state, and the polling watch-loop primitive. CLI and SDK now consume these operations from @relayburn/ingest instead of the CLI internals.

@relayburn/sdk

Added

  • compare({ models, … }) returns the per-(model, activity) CompareResult shape (analyzedTurns, models, categories, totals, flat cells[], fidelity { minimum, excluded, summary }) — the JSON object burn compare --json now emits. Mirrors the CLI's archive-vs-ledger branching: archive when minFidelity === 'partial' and no provider filter, ledger walk otherwise. Falls back transparently to the ledger walk when the archive read fails.
  • sessionCost({ session }) returns the compact per-session cost shape (totalUSD, totalTokens, turnCount, models) the MCP burn__sessionCost tool now wraps directly.
  • summary() result now includes turnCount.
  • summary() and sessionCost() read through the SQLite archive by default with transparent fallback to the JSONL ledger walk on archive failure. Pass onLog to capture the fallback reason.
  • overhead({ project, since?, kind? }) returns per-file + per-section overhead cost attribution (the JSON shape burn overhead --json now consumes).
  • overheadTrim({ project, since?, kind?, top?, includeDiff? }) returns trim recommendations with projected savings and (by default) embedded unified diffs (the JSON shape burn overhead trim --json now consumes). Pass includeDiff: false to skip the per-file disk reads.
  • summary({ since }) and overhead({ since }) / overheadTrim({ since }) now accept either an ISO timestamp or a relative range (24h, 7d, 4w, 2m); the SDK normalizes both forms before querying the ledger so direct SDK callers get the same forgiving input shape CLI users have. Previously a raw relative string would silently filter out every turn.

@relayburn/mcp

Changed

  • burn__sessionCost is now a thin wrapper over @relayburn/sdk's new sessionCost() function. The wire shape is unchanged (sessionId, totalUSD, totalTokens, turnCount, models, note?); the cost computation, archive-with-fallback strategy, and pricing snapshot all live in the SDK now, eliminating the duplicate query path that previously lived inside the MCP tool.
  • @relayburn/mcp now depends on @relayburn/sdk. The package's role going forward is "MCP-shaped wrapper over the SDK's query surface" — new tools should call SDK functions rather than re-implementing computation against @relayburn/analyze / @relayburn/ledger.

@relayburn/cli

Changed

  • burn compare is now a thin presenter over @relayburn/sdk's new compare() function. Flag parsing, ingest, and TTY/JSON/CSV rendering stay in the CLI; the archive-vs-ledger branching, fidelity gate, and result shaping live in the SDK. Wire shape (TTY + --json + --csv) is unchanged.
  • burn overhead and burn overhead trim are now thin presenters over @relayburn/sdk's new overhead() / overheadTrim() functions. Wire shape (TTY + --json) is unchanged; the discovery + ingest + attribution pipeline now lives in one place so future MCP tools can call it directly.

Don't miss a new burn release

NewReleases is sending notifications on new releases.