[0.14.0] - 2026-04-25
Added
- Coverage and fidelity metadata on
TurnRecord(#41 — first cut). New optionalTurnRecord.fidelityfield with three pieces:granularity(per-turn|per-message|per-session-aggregate|cost-only), per-fieldcoverageflags (hasInputTokens,hasOutputTokens,hasReasoningTokens,hasCacheReadTokens,hasCacheCreateTokens,hasToolCalls,hasToolResultEvents,hasSessionRelationships,hasRawContent), and a derivedclass(full|usage-only|aggregate-only|cost-only|partial). Coverage is strictly about availability:hasOutputTokens: falsemeans "we don't know," not "0 output tokens." NewEMPTY_COVERAGE,classifyFidelity, andmakeFidelityhelpers exported alongside the types. The Claude parser populates fidelity on every turn; usage-coverage flags reflect which fields the upstreamusageblock actually carried (so a turn with nocache_creationreportshasCacheCreateTokens: false). Codex/OpenCode parsers do not yet populate fidelity — deferred to a follow-up. Older ledger writers leavefidelityundefined; downstream code treats absence as best-effort full fidelity for backward compat.