Skip to content

v6.18.1

Choose a tag to compare

@github-actions github-actions released this 27 Oct 14:29
· 53 commits to master since this release
9aca24e

Auto-released from merge of PR #1752 (trigger: push).

  • A ChatGPT (codex) conversation now reaches its prompt cache: every request carries its prompt_cache_key as the session-id header. The backend's prompt cache lives on individual machines, and a request is routed to the machine that holds a conversation's prefix by that header; the Codex CLI sends its session id there on every turn, with the same value as its prompt_cache_key, plus thread-id and x-codex-routing-hint: model=<model>. dario sent none of them, so a conversation's turns scattered across machines and read a cached prefix only when one happened to land where an earlier turn wrote it. Measured with the cache trace on a review loop (turns a few seconds apart, every input a strict extension of the last): 8 of 23 turns read anything, and what they read was a snapshot several turns old. Both wire shapes and the raw /v1/responses path, so a Codex CLI session through dario gets its affinity back too (dario rebuilds the headers and had dropped it). A key that is not header-safe goes as a stable digest.
  • A pool-exhausted request the ChatGPT subscription served is now counted. The --pool-fallback route to a codex seat (a drained or rate-limited Claude pool, both wire shapes) passed no reporter to the seat, so a request it served was in no /analytics row, no --log-file line and no ledger entry: the proxy served GPT and counted only the drained pool. The row, the seat's served count and its decline reset are now one function shared with the codex route, filed under the substituted model and the request number the console line carried, cache trace included.

Built + tested + npm-published inline by cc-drift-auto-release.yml on this run — tokenless via OIDC trusted publishing, provenance-attested. See the workflow log for the publish output.