Published to npm as @bitkyc08/opencodex@2.55.0-preview.20260914 with dist-tag preview.
New Features
- Propagate catalog supportsImages to the advertised catalog (#4556)
- Zero-copy stream chunking for text and reasoning buffers (#4298)
- Opt-in periodic model-catalog auto-refresh (#4584)
- Record why a live binding was kept, moved, or released (#4546) (#4592)
- Surface the account decision in the route explanation (#4546) (#4606)
- A finite send ceiling per root workflow (#4546) (#4612)
- Reserve interactive capacity from a worker fan-out (#4546) (#4614)
Bug Fixes
- Honor modelCapabilities text-only on native rows (#4501) (#4511)
- Record real upstream status before body handling in audio routes (#4502) (#4512)
- Refuse an in-place restart through a different-version CLI (carries #4529) (#4545)
- Bind the passthrough bridge search model to its backend (#4548)
- Preserve catalog supports_images as a tri-state (#4547)
- Refund spare envelope bytes to clipped invocation arguments (#4543)
- Fold counter-read findings into the supportsImages propagation (#4557)
- Assess the bridge search endpoint as a destination (#4519) (#4555)
- Omit canonical Codex user metadata and hop request-local 400s (#4563)
- Escape catalog diagnostics before terminal output (#4451)
- Bound completed entitlement version misses per account (#4565)
- Stop connect runtime discovery after a valid selection (#4383)
- Open hub management on its bound IPv4 address (#4452)
- Keep per-model capability facts through registry enrichment (#4574)
- Surface the data-policy action required and name the real catalog in native-exec denials (#4578)
- Terminal refusals, caller-mismatched reasoning blobs, stable image tiers, and paginated-history containment (#4577)
- Close the Devin rekey host window and diagnose Antigravity quota blocks (#4575)
- Keep a bound thread's prompt cache and tell configured routing apart from adopted routing (#4581)
- Hold a bound thread's account for its prompt cache (#4546) (#4580)
- Keep unreported cache counters unknown instead of zero (#4546) (#4588)
- End a mixed-tool bridge leg instead of failing it, and serve alpha/search from a configured sidecar (#4586)
- Resolve the Codex App runtime on Windows and stop a stale pin from overriding it (#4585)
- Make the transient hold survive a provider-wide outage and agree with preview (#4546) (#4589)
- Do not release a withheld client call under a failed turn (#4595)
- Report the guard that released a binding, and keep it across a no-account resolve (#4598) (#4604)
- Share one transient send budget with the Codex passthrough (#4546) (#4605)
- Carry the transient send budget across combo children (#4546) (#4608)
- One send budget per logical request, and zero means zero (#4546) (#4609)
- Compact and the Kiro inner retries join the request send budget (#4546) (#4611)
- Narrow the send budget once for the adapter contract (#4546) (#4613)
- Promote a healthy detour instead of releasing it, and honour Retry-After (#4546) (#4616)
Documentation
- Complete contributor backlog outcome and integration evidence (#4533)
- Say which refusals still compensate after #4531 (#4552)
- Close the 260914 triage round-lane unit (#4558)
- Record the triage unit's post-delivery state (#4559)
- Keep hub invite grants outside agent transcripts (#4517)
- Plan the round 2/3 delivery lanes and closure policy (#4573)
- Record the round 1 outcome (#4583)
- Close the round 2/3 delivery unit (#4591)
- Recover the #4546 cost-guard roadmap and locate the send-budget owner (#4602)
Chores
- Cover live-outcome booking for invalid answers and alias failure (#4512 follow-up) (#4553)
- Pin the spare-budget refund's budget and ordering (#4554)
- Verify busy-lock ownership without wall-clock timing (#4139)
Other Changes
- Open dev at 2.55.0 before releasing 2.54.0 (#4551)
- [agent] fix: normalize inbound Chat images before route selection and preserve an explicit reasoning disable (#4534)
- [agent] fix: scope the Responses control strip to the ChatGPT backend and carry Chat reasoning and penalties (#4535)
- [agent] fix: send Google structured output on the generateContent wire and map Anthropic parallel=false (#4536)
- [agent] fix: carry tool-result images and state unsupported modalities instead of dropping them (#4539)
- [agent] fix: refuse lossy media conversion at the final adapter boundary (#4562)
- Promote 2.55.0-preview.20260914 to preview (#4617)
Changelog
Full Changelog: v2.54.0...v2.55.0-preview.20260914
- #4139 test(lab): verify busy-lock ownership without wall-clock timing @luvs01
- #4298 perf(bridge): zero-copy stream chunking for text and reasoning buffers @chilung-cgu
- #4383 fix(cli): stop connect runtime discovery after a valid selection @luvs01
- #4451 fix(cli): escape catalog diagnostics before terminal output @luvs01
- #4452 fix(cli): open hub management on its bound IPv4 address @luvs01
- #4511 fix(vision): honor modelCapabilities text-only on native rows (#4501) @maoxin1234
- #4512 fix(audio): record real upstream status before body handling in audio routes (#4502) @maoxin1234
- #4517 docs(skill): keep hub invite grants outside agent transcripts @luvs01
- #4533 docs: complete contributor backlog outcome and integration evidence @lidge-jun
- #4534 [agent] fix: normalize inbound Chat images before route selection and preserve an explicit reasoning disable @lidge-jun
- #4535 [agent] fix: scope the Responses control strip to the ChatGPT backend and carry Chat reasoning and penalties @lidge-jun
- #4536 [agent] fix: send Google structured output on the generateContent wire and map Anthropic parallel=false @lidge-jun
- #4539 [agent] fix: carry tool-result images and state unsupported modalities instead of dropping them @lidge-jun
- #4543 fix(cursor): refund spare envelope bytes to clipped invocation arguments @lidge-jun
- #4545 fix(cli): refuse an in-place restart through a different-version CLI (carries #4529) @lidge-jun
- #4547 fix(devin): preserve catalog supports_images as a tri-state @lidge-jun
- #4548 fix(web-search): bind the passthrough bridge search model to its backend @lidge-jun
- #4551 chore(release): open dev at 2.55.0 before releasing 2.54.0 @github-actions[bot]
- #4552 docs(codex-home): say which refusals still compensate after #4531 @lidge-jun
- #4553 test(server): cover live-outcome booking for invalid answers and alias failure (#4512 follow-up) @lidge-jun
- #4554 test(cursor): pin the spare-budget refund's budget and ordering @lidge-jun
- #4555 fix(web-search): assess the bridge search endpoint as a destination (#4519) @lidge-jun
- #4556 feat(devin): propagate catalog supportsImages to the advertised catalog @lidge-jun
- #4557 fix(devin): fold counter-read findings into the supportsImages propagation @lidge-jun
- #4558 docs(devlog): close the 260914 triage round-lane unit @lidge-jun
- #4559 docs(devlog): record the triage unit's post-delivery state @lidge-jun
- #4562 [agent] fix: refuse lossy media conversion at the final adapter boundary @lidge-jun
- #4563 fix(responses): omit canonical Codex user metadata and hop request-local 400s @lidge-jun
- #4565 fix(codex): bound completed entitlement version misses per account @luvs01
- #4573 docs(devlog): plan the round 2/3 delivery lanes and closure policy @lidge-jun
- #4574 fix(catalog): keep per-model capability facts through registry enrichment @lidge-jun
- #4575 fix(providers): close the Devin rekey host window and diagnose Antigravity quota blocks @lidge-jun
- #4577 fix(responses): terminal refusals, caller-mismatched reasoning blobs, stable image tiers, and paginated-history containment @lidge-jun
- #4578 fix(cursor): surface the data-policy action required and name the real catalog in native-exec denials @lidge-jun
- #4580 fix(codex): hold a bound thread's account for its prompt cache (#4546) @lidge-jun
- #4581 fix(codex): keep a bound thread's prompt cache and tell configured routing apart from adopted routing @lidge-jun
- #4583 docs(devlog): record the round 1 outcome @lidge-jun
- #4584 feat(catalog): opt-in periodic model-catalog auto-refresh @lidge-jun
- #4585 fix(codex): resolve the Codex App runtime on Windows and stop a stale pin from overriding it @lidge-jun
- #4586 fix(web-search): end a mixed-tool bridge leg instead of failing it, and serve alpha/search from a configured sidecar @lidge-jun
- #4588 fix(kiro): keep unreported cache counters unknown instead of zero (#4546) @lidge-jun
- #4589 fix(codex): make the transient hold survive a provider-wide outage and agree with preview (#4546) @lidge-jun
- #4591 docs(devlog): close the round 2/3 delivery unit @lidge-jun
- #4592 feat(codex): record why a live binding was kept, moved, or released (#4546) @lidge-jun
- #4595 fix(web-search): do not release a withheld client call under a failed turn @lidge-jun
- #4602 docs(devlog): recover the #4546 cost-guard roadmap and locate the send-budget owner @lidge-jun
- #4604 fix(codex): report the guard that released a binding, and keep it across a no-account resolve (#4598) @lidge-jun
- #4605 fix(responses): share one transient send budget with the Codex passthrough (#4546) @lidge-jun
- #4606 feat(logs): surface the account decision in the route explanation (#4546) @lidge-jun
- #4608 fix(responses): carry the transient send budget across combo children (#4546) @lidge-jun
- #4609 fix(responses): one send budget per logical request, and zero means zero (#4546) @lidge-jun
- #4611 fix(responses): compact and the Kiro inner retries join the request send budget (#4546) @lidge-jun
- #4612 feat(responses): a finite send ceiling per root workflow (#4546) @lidge-jun
- #4613 fix(responses): narrow the send budget once for the adapter contract (#4546) @lidge-jun
- #4614 feat(server): reserve interactive capacity from a worker fan-out (#4546) @lidge-jun
- #4616 fix(codex): promote a healthy detour instead of releasing it, and honour Retry-After (#4546) @lidge-jun
- #4617 chore(release): promote 2.55.0-preview.20260914 to preview @lidge-jun