@rasensio/aidlc-content 1.93.0 → 1.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/cost-tracking.md +13 -0
- package/package.json +1 -1
package/docs/cost-tracking.md
CHANGED
|
@@ -107,6 +107,14 @@ hook installed there is no data, and — the failure that produced two bugfixes
|
|
|
107
107
|
exactly like an idle one. Hence `capture.log` and `lastCaptureError`, so "captured nothing" can be told
|
|
108
108
|
apart from "was never asked".
|
|
109
109
|
|
|
110
|
+
**A command that refuses records says so itself.** For a month, `aidlc cost sync` refused the same 124
|
|
111
|
+
records every run, logged each as a bare `validation-rejected` with the reason dropped, and printed
|
|
112
|
+
nothing. The note on `aidlc cost` fired every time, pointing at a log that did not say what failed, so
|
|
113
|
+
the one warning meant to say "capture has gone dark" was trained into noise. Now sync counts what it
|
|
114
|
+
could not append, keeps the ledger's own reason (`invalid cursor`), and prints one `rejected:` line per
|
|
115
|
+
reason. A failed write is logged as `append-failed`, not as a refusal. The count is per record, not
|
|
116
|
+
per attempt, because the attribute and backfill passes both retry a refused Claude Code record.
|
|
117
|
+
|
|
110
118
|
**How attribution works**, because this is where the surprises are. A usage record gets an instance and
|
|
111
119
|
a phase by intersecting two windows:
|
|
112
120
|
|
|
@@ -165,6 +173,11 @@ Everything is under `packages/cli/src/cost`:
|
|
|
165
173
|
array order, because array order is only right while response groups stay contiguous and the
|
|
166
174
|
transcript format is internal to Claude Code. If contiguity broke, inferring would send the cursor
|
|
167
175
|
backwards and re-charge a span of transcript.
|
|
176
|
+
Every provider's output must fit the ledger's closed schema, and `cost-provider-ledger-contract`
|
|
177
|
+
tests exactly that. It exists because Codex wrote its cursor as `<rollout>#<n>` and the ledger's
|
|
178
|
+
cursor rule has no `#`: every Codex record was refused, by sync and live capture alike, while each
|
|
179
|
+
side's own tests passed. The cursor is now `<rollout>:<n>`. The fix went in the provider, not the
|
|
180
|
+
rule, so ledger lines a new `aidlc` writes stay readable by every older one already installed.
|
|
168
181
|
- `context.ts` — resident-context reading for `aidlc cost context`. Reads token counts only; never
|
|
169
182
|
copies transcript content, so nothing here can carry a prompt or a secret into a report.
|
|
170
183
|
- `dedupe-history.ts` — the corrective pass over existing ledgers. It distinguishes a *proven
|