Skip to content

Preserve usage on failed and incomplete Responses streams - #259

Open
qduc wants to merge 2 commits into
mainfrom
codex/responses-failed-usage
Open

qduc wants to merge 2 commits into
mainfrom
codex/responses-failed-usage

Conversation

@qduc

@qduc qduc commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

Native Responses can include provider-reported usage in response.failed or response.incomplete. Term2 previously threw before forwarding that usage, leaving the paid attempt recorded as missing_usage.

Emit an accounting-only usage event before preserving the terminal error on both HTTP and WebSocket streams. The core can price the failed attempt without accepting its output or dispatching its tools. Missing, invalid, or partial input/output totals remain unknown; unary behavior is unchanged.

Validation: full provider black-box suite 273 passed / 5 skipped, typecheck, lint (40 existing warnings), 22 static checks, and all quality gates. The existing Responses file ceiling is raised from 902 to 924 with a reviewed reason: terminal usage validation remains beside normalization and the HTTP/WebSocket loops; extracting only this small guard would scatter one accounting contract. No global limits change. Three new built-CLI regressions cover failed/incomplete accounting and a successful tool-dispatch control (2.42 seconds of test time; three CLI launches). Independent verification accepted ten HTTP/WebSocket CLI checks plus six source controls covering persisted costs, cache reads/writes, missing/partial/zero usage, cancellation, no double counting, and retry guards.

This branch has not been deployed

No deployments
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