Every LLM launch flows through one chokepoint — Engine.Launch in go/internal/bridge/engine.go — where a token resolver extracts usage (input, output, cache-read, cache-write) from the driver transcript and appends a per-attempt record to llm-calls.ndjson in the cycle’s run dir:
The canonical counts type is cyclestate.TokenUsage, wire-pinned by test so no writer can drift. Provenance rides every record (which transcript, which resolver), so the report can say source=transcript rather than guessed. Slices S1–S8 built this chain: transcript scanner → fidelity parsing → launch instrumentation → terminal projection → advisor/swarm attribution → dossier rollups → the report CLI → fleet-level shadow join.
| Cycle(s) | Change | Story |
|---|---|---|
| S1–S7 (earlier batches) | Scanner, fidelity chain, launch hook, projection, attribution, rollup schema, evolve tokens report | Plan-approved campaign, loop-implemented slice by slice |
| — incident | First full-chain batch measured: all zeros | Deps.TokenResolver was wired nowhere — a fail-open nil silently disabled the whole chain. The 0.96 defect recording this was then consumed from the queue without landing |
| 705, 722, 741 FAIL ×3 | token-telemetry-s6-rollups-dossier — the useful failure | Rollups kept failing with nothing to roll up; its persistence was the only alarm that led back to the lost resolver defect |
| 742 → 745 PASS | The 8-line composition-root fix + loud boot WARN on nil resolver (commit d9ceaa43) | Re-filed 00:10, picked within one wave, landed within two |
| 754/756 PASS | Fallback resolution chain in the scanner (commit 2abbaa77) | Hardening so a single resolver miss degrades gracefully instead of zeroing |
Acceptance for the whole feature: the next batch’s evolve tokens report --last 8 showing non-zero, per-phase, transcript-sourced numbers — which then re-ranks seven queued optimization items by measured spend instead of guesses.