Published to npm as @bitkyc08/opencodex@2.97.0 with dist-tag latest.
New Features
- Home ocx sync fans out to linked Children (sync.home-fanout/1) (#8100)
- Orchestrated ocx update plan/apply contract (update.orchestrated/1) (#8103)
- Batch consumed stream chunk removal (#8049)
Bug Fixes
- Show both 5-hour and weekly meters for Max and Team accounts (#8088)
- Place round-robin conversations on accounts with quota headroom (#8092)
- Honest affinity labels and opt-in request-owned conversation affinity (#8080) (#8096)
- Bind header-less Messages bridge turns to one Codex pool account (carry #8028) (#8094)
- Keep Codex pool session pins across proxy restarts (#8098)
- Refuse links at SQLite store paths on Windows and rebalance CI shards for the new affinity tests (#8102)
- Keep Windows containment refusal at 126; correct the #8100 fan-out test fixture (#8106)
- Make the Windows batch shards green after #8103 (#8109)
- Reject inherited writes at Windows creation parents (#8011)
- Preserve quota-code provenance across wrappers and policy fallback (#8013)
- Honor web-search tool choice scope (#8018)
- Scope tool authority to current turn (#8027)
- Bound canonical patch prefix scanning (#8012)
- Serialize automatic v1 reconciliation with CLI updates (#8014)
- Read Artificial Analysis free model list before sunset (#8112)
- Count lowered hosted tool_search as declared (#8123)
- Retire a pool account's carried monthly window when WHAM shows none (#8120)
- Route local compaction checkpoints (#8119)
- Drop the unsupported output.encrypted_content include on Kimi Code Responses (#8122)
- Report prompt_eval_cached_count as cache-read input (#8124)
- Account for normalized inbound JSON (#8026)
- Require paired dashboard session for CLI updates (#8008)
- Export declared effort ladder and default to Kimi Code (#8126)
- Stop sibling discovery after revocation (#8024)
- Answer uncoded context-window refusals as prompt too long (#8128)
- Attest Codex listener before token injection (#8007)
- Report monthly Coding Plan quota (#8077)
- Keep profile keys OpenCodex does not manage (#8074)
- Report content-filter stops as non-retryable refusals (#8072)
- Avoid double charging live NDJSON buffers (#8047)
- Restore owned integrations before native signal exit (#8036)
- Hold selection ownership through dashboard feature toggles (#8009)
- Keep untyped assistant messages inside their tool-call turn (#8064)
- Unwrap one extra executable freeform body wrapper (#8048)
- Resubmit a finished answer on the completion retry (#8070)
- Fix non-ASCII Codex turn metadata headers (#8040)
Other Changes
- Open dev at 2.97.0 before releasing 2.96.0 (#8068)
- Serve an Ollama-compatible inbound API (#8099)
- Normalize upstream error details in request logs and Retry-After advice (#8104)
- Normalize Chat Completions client error bodies (#8108)
- Promote frozen tip 7b3bb7a to main as 2.97.0 (#8134)
Changelog
Full Changelog: v2.96.0...v2.97.0
- #8007 fix(cli): attest Codex listener before token injection @luvs01
- #8008 fix(security): require paired dashboard session for CLI updates @luvs01
- #8009 fix(codex): hold selection ownership through dashboard feature toggles @luvs01
- #8011 fix(security): reject inherited writes at Windows creation parents @luvs01
- #8012 fix: bound canonical patch prefix scanning @luvs01
- #8013 fix(responses): preserve quota-code provenance across wrappers and policy fallback @luvs01
- #8014 fix(codex): serialize automatic v1 reconciliation with CLI updates @luvs01
- #8018 fix(advisor): honor web-search tool choice scope @luvs01
- #8024 fix(antigravity): stop sibling discovery after revocation @luvs01
- #8026 fix(server): account for normalized inbound JSON @luvs01
- #8027 fix(responses): scope tool authority to current turn @luvs01
- #8036 fix(link): restore owned integrations before native signal exit @luvs01
- #8040 Fix non-ASCII Codex turn metadata headers @visualbridge7188
- #8047 fix(command-code): avoid double charging live NDJSON buffers @0disoft
- #8048 fix(responses): unwrap one extra executable freeform body wrapper @nickdavis
- #8049 perf(devin): batch consumed stream chunk removal @0disoft
- #8064 fix(responses): keep untyped assistant messages inside their tool-call turn @fec123
- #8068 chore(release): open dev at 2.97.0 before releasing 2.96.0 @github-actions[bot]
- #8070 fix(kiro): resubmit a finished answer on the completion retry @mushikingh
- #8072 fix(kiro): report content-filter stops as non-retryable refusals @mushikingh
- #8074 fix(codex): keep profile keys OpenCodex does not manage @codewith-aditya
- #8077 fix(kimi): report monthly Coding Plan quota @zarv1k
- #8088 fix(anthropic): show both 5-hour and weekly meters for Max and Team accounts @lidge-jun
- #8092 fix(codex): place round-robin conversations on accounts with quota headroom @lidge-jun
- #8094 fix(claude): bind header-less Messages bridge turns to one Codex pool account (carry #8028) @lidge-jun
- #8096 fix(codex): honest affinity labels and opt-in request-owned conversation affinity (#8080) @lidge-jun
- #8098 fix(codex): keep Codex pool session pins across proxy restarts @lidge-jun
- #8099 Serve an Ollama-compatible inbound API @lidge-jun
- #8100 feat(sync): Home ocx sync fans out to linked Children (sync.home-fanout/1) @lidge-jun
- #8102 fix: refuse links at SQLite store paths on Windows and rebalance CI shards for the new affinity tests @lidge-jun
- #8103 feat(update): orchestrated ocx update plan/apply contract (update.orchestrated/1) @lidge-jun
- #8104 Normalize upstream error details in request logs and Retry-After advice @lidge-jun
- #8106 fix(link): keep Windows containment refusal at 126; correct the #8100 fan-out test fixture @lidge-jun
- #8108 Normalize Chat Completions client error bodies @lidge-jun
- #8109 fix(ci): make the Windows batch shards green after #8103 @lidge-jun
- #8112 fix(codex): read Artificial Analysis free model list before sunset @LilMGenius
- #8119 fix(responses): route local compaction checkpoints @lidge-jun
- #8120 fix(codex): retire a pool account's carried monthly window when WHAM shows none @lidge-jun
- #8122 fix(kimi): drop the unsupported output.encrypted_content include on Kimi Code Responses @lidge-jun
- #8123 fix(responses): count lowered hosted tool_search as declared @lidge-jun
- #8124 fix(ollama): report prompt_eval_cached_count as cache-read input @lidge-jun
- #8126 fix(kimi): export declared effort ladder and default to Kimi Code @lidge-jun
- #8128 fix(claude): answer uncoded context-window refusals as prompt too long @lidge-jun
- #8134 release: promote frozen tip 7b3bb7a to main as 2.97.0 @lidge-jun
Code signing
Windows binaries follow the code signing policy.
Free code signing provided by SignPath.io, certificate by SignPath Foundation.