@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.
@@ -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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rasensio/aidlc-content",
3
- "version": "1.93.0",
3
+ "version": "1.94.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",