Skip to content

fix(usage): include Claude cache tokens in prompt totals - #2658

Closed
zierocode wants to merge 1 commit into
decolua:masterfrom
zierocode:codex/claude-cache-inclusive-usage
Closed

zierocode wants to merge 1 commit into
decolua:masterfrom
zierocode:codex/claude-cache-inclusive-usage

Conversation

@zierocode

Copy link
Copy Markdown
Contributor

Summary

  • translate Claude non-streaming usage to OpenAI cache-inclusive prompt totals
  • preserve cache-read and cache-creation detail fields
  • reuse the existing canonical usage convention so client responses match the usage ledger

Why

Claude reports input tokens separately from cache-read and cache-creation tokens. The current OpenAI response translation exposes only input_tokens as prompt_tokens, while the ledger correctly folds cache tokens into its canonical prompt total. This makes the response usage disagree with the persisted usage row.

Tests

  • claude-nonstreaming-usage.test.js
  • cached-token-usage.test.js
  • cached-token-e2e.test.js

19 tests passed.

afandiaziz pushed a commit to afandiaziz/9router that referenced this pull request Aug 9, 2026
29 PR upstream di-cherry-pick (semua masih open upstream per 2026-08-09).
Rincian lengkap + link per PR ada di FORK-CHANGES.md.

P1 skala 2475 koneksi : decolua#2798 decolua#410 decolua#2879 decolua#879 decolua#2997
P2 akurasi token/usage: decolua#2422 decolua#2658 decolua#2762 decolua#2453 decolua#2668 decolua#2361
P3 provider & combo   : decolua#2526 decolua#3125 decolua#1434 decolua#2689 decolua#2439 decolua#2724 decolua#2647 decolua#1805
                        decolua#2909 decolua#2853 decolua#2508 decolua#2928 decolua#2345 decolua#2112 decolua#2786
P4 keamanan           : decolua#1666 decolua#2776

Revert decolua#664: menambah transformRequest kedua di DefaultExecutor sehingga
menimpa yang pertama dan mematikan stream_options/text.format/
injectReasoningContent/stripUnsupportedParams — termasuk PR decolua#3081 yang
sudah dipakai produksi.

Test: 88 gagal / 1783 lulus — nol regresi vs baseline v0.5.50 (88/1656).
@zierocode zierocode closed this Sep 29, 2026
@zierocode
zierocode deleted the codex/claude-cache-inclusive-usage branch September 29, 2026 20:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant