v3.5.3 — dashboard-integration bridge fix
What's fixed
The documented dashboard-integration bridge (tools/usage-to-dashboard-ndjson.mjs) now correctly handles both the preload-era usage.jsonl schema and the v:1 MeterRowSchema written by the proxy usage-log extension introduced in v3.2.0.
Affected users: anyone running v3.2.0 through v3.5.2 with the proxy usage-log extension enabled and the usage-to-dashboard-ndjson translator wired into their dashboard. Before this fix, every v:1 row was silently dropped — external dashboards reading the bridge received zero data from those proxy-mode sessions.
The fix is backwards-compatible. Both schemas work; preload-era field is preferred when both are present, so existing legacy logs translate identically.
Why this happened
Three field renames between schemas weren't reflected in the translator:
| Translator expected | v:1 actually writes |
|---|---|
entry.timestamp |
entry.ts |
entry.q5h_pct (int 0–100) |
entry.q5h (float 0–1) |
entry.q7d_pct (int 0–100) |
entry.q7d (float 0–1) |
The entry guard if (!entry.timestamp) return null therefore dropped every v:1 row before it could be translated.
What's new in this release
- Fixed: translator entry guard, quota-header reconstruction,
ts_start/ts_endmapping, andreq_idgeneration now accept both schemas via fallback. (tools/usage-to-dashboard-ndjson.mjs) - Added: 16 regression tests in
test/usage-to-dashboard-ndjson.test.mjscovering both schemas plus full record parity (the same logical request emits the samereq_idin either schema, so dashboards that dedup onreq_idwon't see duplicates from a user upgrading preload→proxy). - Updated:
docs/dashboard-integration.mdnow has a Schema compatibility section describing both schemas and the affected-versions callout.
Suite: 772 → 788 (+16). All green.
Upgrade
npm install -g claude-code-cache-fix@3.5.3No configuration changes; no migration. If you have a --follow instance running, restart it to pick up the dual-schema logic.
Credit
Reported and patched by @TomTheMenace (Tomasz Wachowiak) with the exact tested fix in the issue body. Already a contributor to the project for the Windows wrapper + first Windows validation. Thank you.
Links
- Issue: #112
- Fix PR: #114
- CHANGELOG: v3.5.3 entry