Published to npm as @bitkyc08/opencodex@2.57.0 with dist-tag latest.
New Features
- Carry usage chart accessibility from archived PR #3982 (#4713)
- Carry forced default effort from PR #4054 (#4714)
- Give the durable spend ledger a production caller (#4707) (#4756)
Bug Fixes
- Baseten routed rows must not advertise
text.verbosity(#4660) - Keep no-wait reauth JSON parseable (#4603)
- Finalize adopted WebSocket stage records (#4607)
- Fence refresh failures across bulk routing resets (#4695)
- Apply custom-model capabilities before combo derivation (#4697)
- Preserve caller User-Agent (#4702)
- Repair desktop restart membership and POSIX-only cases on Windows (#4564)
- Describe the full Codex desktop restart scope (#4610)
- Avoid reauthentication advice for rate-limited warmup (#4144)
- Report a deferred Windows CLI inspection instead of an absent candidate (#4178)
- Hide custom models when provider is disabled (#4199)
- Scope refresh lock acquisition and release to file identity (#4569)
- Bound the reset-credit consume response like every other read (#4571)
- Preserve provider references on late history migration (#4576)
- Reject loopback HTTP routed through Bun proxies (#4615)
- Relay sideband turn metadata and client closes, and stage realtime voice fixtures (#4748)
- Refuse an account change that would orphan an uploaded file (#4710) (#4777)
- Stop rotating accounts inside an organization-scoped quota refusal (#4546) (#4764)
- Expand synthetic date alias slots from 365 to 3652 (#4224)
- Normalize localized native-shell routing claims (#4622)
- Forward done-only Responses tool arguments (#4652)
- Preserve image input capabilities across integrations (#4668)
- Allow structured output for Gemini models on Cloud Code Assist (#4670)
- Send native reasoning effort for the GPT-5.6 family and replay its blob on the right field (#4682)
- Bound combo recall model retention (#4755)
- Reserve output headroom before a combo fallback (#4750)
- Hop on a definite zero-output context overflow (#4744)
- Give a withheld recovery a retry time that is actually later (#4546) (#4771)
- Attribute each attempt to the account that dispatched it (#4717) (#4760)
- Report a spent send budget as this proxy refusing (#4708) (#4758)
- Settle a credential hop where the replay is dispatched (#4709) (#4745)
- Stage elevated Task Scheduler XML instead of inlining it (#4692) (#4759)
- Decode schtasks output with the Windows text decoder (#4691) (#4749)
- Keep a history-preflight refusal from aborting the update (#4718) (#4746)
- Name the size exemptions after the reason they exist (#4706) (#4757)
- Walk the Lab activation chain instead of its first hop (#4704) (#4754)
- Refuse removals that reach a protected home (#4705) (#4747)
- Preserve declared targets under the send budget (#4763)
- Wire the pool recovery limiter into production dispatch (#4784)
- Refuse leaked vendor tool-call scaffolding (#4596) (#4776)
- Bound flattened tool wire names for strict gateways (#4679) (#4774)
- Normalize the custom-provider model-discovery join (#4724) (#4773)
- Give Kimi the Responses tool-result adjacency repair (#4726) (#4770)
- Refuse a combo failover that cannot replay mandatory reasoning (#4696) (#4769)
- Fail closed on truncated sidecar captions (#4727) (#4752)
- Handle nested error object in token refresh and classify refresh_token_invalidated as revoked (#4737)
- Carry bare tool-name echo acceptance (#4729) (#4792)
- Keep sidebar version badges fully readable (#4738)
- Bound terminal guard content retention (#4739)
- Refuse ambiguous reset replay without inviting a client retry (#4741) (#4798)
- Write every slug once and scope declared-tool membership by wire (#4736, #4735) (#4799)
- Bound response inspection and withheld search events (#4775, #4743) (#4801)
- Stop selecting accounts that cannot serve the request (#4768, #4778) (#4797)
- Contain and reclaim Windows temporary roots (#4785, #4789) (#4796)
- Keep a replay refusal out of retries, quota evidence and Retry-After (#4807)
- Carry uploaded-file retention through compact and keep the denial lookup behind the read fence (#4806)
- Close the helper-alias and preview read-fence gaps (#4813)
- Classify refresh failures on the structured code and stop per-entry store reads (#4814)
- Fence helper spellings from every manufactured bare alias (#4819)
- Stop hiding the Bun runtime crash and pin back to 1.4.0 (#4821)
Documentation
- Record the 2.56.0 release evidence (#4700)
- Cite what the prompt-caching guide actually says (#4546) (#4765)
- Name the modules that own the code after the facade splits (#4711) (#4766)
- Record the 2.57.0 release train (#4828)
Chores
- Compare the injected catalog path as a decoded TOML value (#4568)
- Land the Codex account and catalog lane (nine PRs) (#4720)
- Land the adapters and providers lane (#4682, #4670, #4668, #4622, #4224, #4652) (#4719)
- Pin the #4546 incident as one system, not five fixes (#4546) (#4772)
- Give a Windows child spawn the cold-start headroom it measures (#4830)
- Promote 2.57.0 to main (#4829)
Other Changes
- Open dev at 2.57.0 before releasing 2.56.0 (#4686)
Changelog
Full Changelog: v2.56.0...v2.57.0
- #4144 fix(codex): avoid reauthentication advice for rate-limited warmup @remorser58
- #4178 fix(codex): report a deferred Windows CLI inspection instead of an absent candidate @luvs01
- #4199 fix(catalog): hide custom models when provider is disabled @leonclab
- #4224 fix(claude-desktop): expand synthetic date alias slots from 365 to 3652 @paopaonyapi-creator
- #4564 fix(codex): repair desktop restart membership and POSIX-only cases on Windows @luvs01
- #4568 test(codex): compare the injected catalog path as a decoded TOML value @luvs01
- #4569 fix(codex): scope refresh lock acquisition and release to file identity @luvs01
- #4571 fix(codex): bound the reset-credit consume response like every other read @luvs01
- #4576 fix(codex): preserve provider references on late history migration @luvs01
- #4603 fix(cli): keep no-wait reauth JSON parseable @luvs01
- #4607 fix(responses): finalize adopted WebSocket stage records @luvs01
- #4610 fix(cli): describe the full Codex desktop restart scope @luvs01
- #4615 fix(catalog): reject loopback HTTP routed through Bun proxies @luvs01
- #4622 fix(cursor): normalize localized native-shell routing claims @luvs01
- #4652 fix(claude): forward done-only Responses tool arguments @RHODIZSECURITY
- #4660 fix(providers): Baseten routed rows must not advertise
text.verbosity@abhisheksharma2411 - #4668 fix: preserve image input capabilities across integrations @TykanN
- #4670 fix(google): allow structured output for Gemini models on Cloud Code Assist @agentHits
- #4682 fix(kiro): send native reasoning effort for the GPT-5.6 family and replay its blob on the right field @WalterMa
- #4686 chore(release): open dev at 2.57.0 before releasing 2.56.0 @github-actions[bot]
- #4695 fix(codex): fence refresh failures across bulk routing resets @Ingwannu
- #4697 fix(catalog): apply custom-model capabilities before combo derivation @Ingwannu
- #4700 docs(devlog): record the 2.56.0 release evidence @lidge-jun
- #4702 fix(responses): preserve caller User-Agent @Ingwannu
- #4713 feat(gui): carry usage chart accessibility from archived PR #3982 @lidge-jun
- #4714 feat(combos): carry forced default effort from PR #4054 @lidge-jun
- #4719 chore(lanes): land the adapters and providers lane (#4682, #4670, #4668, #4622, #4224, #4652) @lidge-jun
- #4720 chore(lanes): land the Codex account and catalog lane (nine PRs) @lidge-jun
- #4737 fix(codex): handle nested error object in token refresh and classify refresh_token_invalidated as revoked @rrmlima
- #4738 fix(gui): keep sidebar version badges fully readable @luvs01
- #4739 fix(responses): bound terminal guard content retention @luvs01
- #4744 fix(combos): hop on a definite zero-output context overflow @lidge-jun
- #4745 fix(responses): settle a credential hop where the replay is dispatched (#4709) @lidge-jun
- #4746 fix(update): keep a history-preflight refusal from aborting the update (#4718) @lidge-jun
- #4747 fix(tests): refuse removals that reach a protected home (#4705) @lidge-jun
- #4748 fix(live): relay sideband turn metadata and client closes, and stage realtime voice fixtures @lidge-jun
- #4749 fix(service): decode schtasks output with the Windows text decoder (#4691) @lidge-jun
- #4750 fix(combos): reserve output headroom before a combo fallback @lidge-jun
- #4752 fix(vision): fail closed on truncated sidecar captions (#4727) @lidge-jun
- #4754 fix(tests): walk the Lab activation chain instead of its first hop (#4704) @lidge-jun
- #4755 fix(responses): bound combo recall model retention @lidge-jun
- #4756 feat(responses): give the durable spend ledger a production caller (#4707) @lidge-jun
- #4757 fix(scripts): name the size exemptions after the reason they exist (#4706) @lidge-jun
- #4758 fix(responses): report a spent send budget as this proxy refusing (#4708) @lidge-jun
- #4759 fix(service): stage elevated Task Scheduler XML instead of inlining it (#4692) @lidge-jun
- #4760 fix(usage): attribute each attempt to the account that dispatched it (#4717) @lidge-jun
- #4763 fix(combos): preserve declared targets under the send budget @lidge-jun
- #4764 fix(codex): stop rotating accounts inside an organization-scoped quota refusal (#4546) @lidge-jun
- #4765 docs(routing): cite what the prompt-caching guide actually says (#4546) @lidge-jun
- #4766 docs(architecture): name the modules that own the code after the facade splits (#4711) @lidge-jun
- #4769 fix(responses): refuse a combo failover that cannot replay mandatory reasoning (#4696) @lidge-jun
- #4770 fix(providers): give Kimi the Responses tool-result adjacency repair (#4726) @lidge-jun
- #4771 fix(routing): give a withheld recovery a retry time that is actually later (#4546) @lidge-jun
- #4772 test(responses): pin the #4546 incident as one system, not five fixes (#4546) @lidge-jun
- #4773 fix(catalog): normalize the custom-provider model-discovery join (#4724) @lidge-jun
- #4774 fix(openai-chat): bound flattened tool wire names for strict gateways (#4679) @lidge-jun
- #4776 fix(codebuddy): refuse leaked vendor tool-call scaffolding (#4596) @lidge-jun
- #4777 fix(responses): refuse an account change that would orphan an uploaded file (#4710) @lidge-jun
- #4784 fix(routing): wire the pool recovery limiter into production dispatch @lidge-jun
- #4792 fix(responses): carry bare tool-name echo acceptance (#4729) @lidge-jun
- #4796 fix(test): contain and reclaim Windows temporary roots (#4785, #4789) @lidge-jun
- #4797 fix(codex): stop selecting accounts that cannot serve the request (#4768, #4778) @lidge-jun
- #4798 fix(retry): refuse ambiguous reset replay without inviting a client retry (#4741) @lidge-jun
- #4799 fix(catalog,bridge): write every slug once and scope declared-tool membership by wire (#4736, #4735) @lidge-jun
- #4801 fix(logs,web-search): bound response inspection and withheld search events (#4775, #4743) @lidge-jun
- #4806 fix(codex): carry uploaded-file retention through compact and keep the denial lookup behind the read fence @lidge-jun
- #4807 fix(responses,chat): keep a replay refusal out of retries, quota evidence and Retry-After @lidge-jun
- #4813 fix(responses): close the helper-alias and preview read-fence gaps @lidge-jun
- #4814 fix(codex): classify refresh failures on the structured code and stop per-entry store reads @lidge-jun
- #4819 fix(responses): fence helper spellings from every manufactured bare alias @lidge-jun
- #4821 fix(ci,runtime): stop hiding the Bun runtime crash and pin back to 1.4.0 @lidge-jun
- #4828 docs(devlog): record the 2.57.0 release train @lidge-jun
- #4829 chore(release): promote 2.57.0 to main @lidge-jun
- #4830 test(budget): give a Windows child spawn the cold-start headroom it measures @lidge-jun