Published to npm as @bitkyc08/opencodex@2.89.0 with dist-tag latest.
New Features
- Separate custom-tool grammar evidence from representation (#7282)
- Let a combo set its catalog row description (#7229) (#7284)
- Opt-in compression of outbound ChatGPT Responses request bodies (#7285)
- Auto-pause repeated permanent account refusals (#7153)
- Explicit single-model completion test (#7287)
- Opt-in OS desktop notification for low-quota protection (#7286)
- Opt-in advisory quota signals for JEV decisions (P1) (#6814)
- Add explicit enrolled Codex SSH peers (#6891)
- Default prompt-cache TTL to 1h on first-party Anthropic (#7341)
Bug Fixes
- Show the Gemini 4 Argon quota group separately (#7283)
- Honor project and location for API-key inference (#7266)
- Preserve matched and orphan Vertex Argon tool images (#7280)
- Never bake Claude first-party's own intercept proxy (#7327)
- Map provider input overflow to context_length_exceeded (#7352)
- Handle replayed hosted web-search history (#7250, #7269) (#7353)
- Keep tool loops on one target and make failover history safe (#7298) (#7354)
- Absorb community failover fixes (#7317, #7329, #7339, #7320) (#7355)
- Scope an inherited transpiler cache to the Bun version it starts (#7362)
- Scope server children's transpiler cache and keep scoping idempotent (#7364)
Chores
- Sign Windows binaries and MSI via SignPath (#7207) (#7356)
- Remove opencode-free and migrate saved configs (#7351)
- Register combo-tool-loop-pin in the core module inventory (#7357)
- Keep ACL subprocess work out of cache and registration assertions (#7358)
- Let the final-EPERM quarantine see through Windows 8.3 TEMP aliases (#7359)
- Await the fallback lease release on both passthrough relays (#7360)
- Compare the default containment result through the native resolver (#7361)
- Hold early client bytes in the socks5 egress fixture (#7363)
- Assert the scoped env and versioned bundled runtime in source oracles (#7365)
Other Changes
Changelog
Full Changelog: v2.88.0...v2.89.0
- #6814 feat(combos): opt-in advisory quota signals for JEV decisions (P1) @geunwoojun99
- #6891 feat(messaging): add explicit enrolled Codex SSH peers @phillipod
- #7153 feat(accounts): auto-pause repeated permanent account refusals @lidge-jun
- #7263 chore(release): open dev at 2.89.0 before releasing 2.88.0 @github-actions[bot]
- #7266 fix(vertex): honor project and location for API-key inference @andrew05060414
- #7280 fix(google): preserve matched and orphan Vertex Argon tool images @Jossi02
- #7282 feat(compatibility): separate custom-tool grammar evidence from representation @lidge-jun
- #7283 fix(antigravity): show the Gemini 4 Argon quota group separately @lidge-jun
- #7284 feat(combos): let a combo set its catalog row description (#7229) @lidge-jun
- #7285 feat(responses): opt-in compression of outbound ChatGPT Responses request bodies @lidge-jun
- #7286 feat(codex): opt-in OS desktop notification for low-quota protection @lidge-jun
- #7287 feat(providers): explicit single-model completion test @lidge-jun
- #7327 fix(service): never bake Claude first-party's own intercept proxy @scy7796
- #7341 feat(anthropic): default prompt-cache TTL to 1h on first-party Anthropic @lidge-jun
- #7351 chore(providers): remove opencode-free and migrate saved configs @lidge-jun
- #7352 fix(sidecar): map provider input overflow to context_length_exceeded @lidge-jun
- #7353 fix(responses): handle replayed hosted web-search history (#7250, #7269) @lidge-jun
- #7354 fix(combos): keep tool loops on one target and make failover history safe (#7298) @lidge-jun
- #7355 fix(combos): absorb community failover fixes (#7317, #7329, #7339, #7320) @lidge-jun
- #7356 ci(release): sign Windows binaries and MSI via SignPath (#7207) @lidge-jun
- #7357 test(responses): register combo-tool-loop-pin in the core module inventory @lidge-jun
- #7358 test(windows): keep ACL subprocess work out of cache and registration assertions @lidge-jun
- #7359 test(temp): let the final-EPERM quarantine see through Windows 8.3 TEMP aliases @lidge-jun
- #7360 test(combos): await the fallback lease release on both passthrough relays @lidge-jun
- #7361 test(temp): compare the default containment result through the native resolver @lidge-jun
- #7362 fix(launcher): scope an inherited transpiler cache to the Bun version it starts @lidge-jun
- #7363 test(desktop): hold early client bytes in the socks5 egress fixture @lidge-jun
- #7364 fix(runtime): scope server children's transpiler cache and keep scoping idempotent @lidge-jun
- #7365 test(launcher): assert the scoped env and versioned bundled runtime in source oracles @lidge-jun
- #7372 release: promote dev 52c326b to main as 2.89.0 @lidge-jun