Published to npm as @bitkyc08/opencodex@2.26.0-preview.20260819 with dist-tag preview.
New Features
- Count atomic-replace retries so the envelope can be argued from evidence (#1947)
- B1 — separate Fast capability from caller-tier forwarding (#1886) (#1965)
- Route Clash fake-IP DNS answers through the configured proxy (#1748) (#2037)
- ZCode (Z.ai desktop client) managed integration — ocx zcode (#2034)
- Add HTTP/1.1 compatibility transport (#1903)
Bug Fixes
- Stop hide-from-user policy and user-role tool-result replay (#1992) (#1997)
- Re-derive pool plan from JWT chatgpt_plan_type (#1989) (#1998)
- Stop the service wrapper killer using the argv Bun rejects (#1944)
- One scheduler-wrapper killer, scoped to one installation (#1945)
- Forward caller service_tier through the chat-to-responses conversion (#1886) (#1904)
- Repair bare integers in string-declared tool arguments (#2005)
- Switch to Responses backend and backfill required annotations (#1941)
- Close three release-audit regressions from today's merge train (#2010)
- Use context cap as window when upstream omits it (#1991)
- Refresh catalog for side profiles when Codex injection is OFF (#1931)
- Synthesize placeholder results for orphaned stateless tool calls (#1912)
- Preserve OpenRouter routing in native passthrough (#1859)
- Parse changelog commits with NUL delimiters (#1847)
- Pin bridge traffic to loopback (#1845)
- Repair log tooltip encoding (#1935)
- Bound warmup response bodies (#1725)
- Retry transient 429/5xx for AI Studio direct requests (#1851)
- Share reasoning-facts table and fix GLM slug decode (lands #1800) (#2015)
- Share reasoning-facts table and fix GLM slug decoding for API-key preset (#1800)
- Route raw reasoning through the expandable summary channel (lands #2007) (#2016)
- Route raw reasoning through the expandable summary channel (bridge + passthrough) (#2007)
- Pin session id and continue external tool results as userMessageAction (lands #1990) (#2017)
- Pin session id and continue external tool results as userMessageAction (#1990)
- Stream Copilot inference prompts over stdin (#1883)
- Drop the synthetic x-goog-api-client onboarding header (lands #1889) (#2018)
- Flatten the Codex 0.147 functions namespace in the parser (lands #1896 subset) (#2020)
- Treat a bare WHAM 401 as transient only for a verifiably live token (lands #1932) (#2021)
- Stabilize dev head after the 260818 merge train (#2026)
- Normalize empty and failure-state Computer Use tool results (#1920) (#2038)
- Redact public authentication errors (#1842) (#2043)
- Classify detail-scoped workspace denials (#2055)
- Strip app-rewritten provider sub-tables so the provider never survives nameless (#2061)
- Append continue nudge for Claude-on-Antigravity prefill (#2066)
- Keep fake-IP opt-in off NO_PROXY routes (#2045)
- Keep the structured-output opt-out exact on the native chat wire (#2042)
- Report the model gates the way the adapters actually match them (#2059)
- Normalize text-part tool results (#2044)
- Emit modern env_key admission line on non-loopback inject (#2076)
- Scope durable thought signatures per credential and bound persist visibility (#2078)
- Stage, verify, and swap npm self-updates with rollback (#2079)
- Stage global-style so dependencies land inside the package (#2087)
Documentation
- Record the v2.25.0 release (#2004)
- Close eight shipped units to _fin and open the merge campaign (#2006)
- Close the 260818 merge campaign with its outcome ledger (#2008)
- Release-readiness record for the next train (2.26.0) (#2011)
- Close the release-readiness unit to _fin (#2012)
- Open the bug-PR resolution campaign unit (#2013)
- Correct the bug-PR disposition tally (#2014)
- Scope canonical Fast injection to the bridged Chat path (#2049)
- Wp10 follow-up designs + campaign phase records (#2052)
- Close the 260818 bug-PR resolution campaign to _fin (#2058)
- Document OpenCode Go quota probe (#2057)
Chores
- Share the atomic-replace retry instead of one writer owning it (#1946)
- A1 — FastWire policy resolution, byte-identical behavior (#1886) (#1893)
- Re-pin launcher invariants to the transactional install contract (#2081)
Other Changes
- Devlog: open the Windows stability program unit (#1949)
- Allow Codex Work desktop agent task recovery (#1928)
- [WRONG BRANCH] promote: dev to preview for v2.26.0-preview.20260819 (#2088)
- [WRONG BRANCH] release: v2.26.0-preview.20260819 (#2090)
Changelog
Full Changelog: v2.25.0...v2.26.0-preview.20260819
- #1725 fix(codex): bound warmup response bodies @luvs01
- #1800 fix(commandcode): share reasoning-facts table and fix GLM slug decoding for API-key preset @youngchangjo
- #1845 fix(minimax): pin bridge traffic to loopback @luvs01
- #1847 fix(release): parse changelog commits with NUL delimiters @luvs01
- #1851 fix(google): retry transient 429/5xx for AI Studio direct requests @chilung-cgu
- #1859 fix(chat): preserve OpenRouter routing in native passthrough @luvs01
- #1883 fix(ci): stream Copilot inference prompts over stdin @Wibias
- #1893 refactor(fastwire): A1 — FastWire policy resolution, byte-identical behavior (#1886) @olddonkey
- #1903 feat(cursor): add HTTP/1.1 compatibility transport @lilinxiong
- #1904 fix(chat): forward caller service_tier through the chat-to-responses conversion (#1886) @olddonkey
- #1912 fix(responses): synthesize placeholder results for orphaned stateless tool calls @harryzhou2000
- #1928 Allow Codex Work desktop agent task recovery @jakemcallister
- #1931 fix(sync): refresh catalog for side profiles when Codex injection is OFF @harryzhou2000
- #1935 fix(gui): repair log tooltip encoding @olddonkey
- #1941 fix(grok): switch to Responses backend and backfill required annotations @bet4it
- #1944 fix(windows): stop the service wrapper killer using the argv Bun rejects @lidge-jun
- #1945 fix(windows): one scheduler-wrapper killer, scoped to one installation @lidge-jun
- #1946 refactor(windows): share the atomic-replace retry instead of one writer owning it @lidge-jun
- #1947 feat(windows): count atomic-replace retries so the envelope can be argued from evidence @lidge-jun
- #1949 devlog: open the Windows stability program unit @lidge-jun
- #1965 feat(fastwire): B1 — separate Fast capability from caller-tier forwarding (#1886) @olddonkey
- #1990 fix(cursor): pin session id and continue external tool results as userMessageAction @laerad777
- #1991 fix: use context cap as window when upstream omits it @EricFeng9
- #1997 fix(cursor): stop hide-from-user policy and user-role tool-result replay (#1992) @Yuxin-Qiao
- #1998 fix(codex): re-derive pool plan from JWT chatgpt_plan_type (#1989) @Yuxin-Qiao
- #2004 docs(devlog): record the v2.25.0 release @lidge-jun
- #2005 fix(tools): repair bare integers in string-declared tool arguments @lidge-jun
- #2006 docs(devlog): close eight shipped units to _fin and open the merge campaign @lidge-jun
- #2007 fix(responses): route raw reasoning through the expandable summary channel (bridge + passthrough) @AlinJiang
- #2008 docs(devlog): close the 260818 merge campaign with its outcome ledger @lidge-jun
- #2010 fix: close three release-audit regressions from today's merge train @lidge-jun
- #2011 docs(devlog): release-readiness record for the next train (2.26.0) @lidge-jun
- #2012 docs(devlog): close the release-readiness unit to _fin @lidge-jun
- #2013 docs(devlog): open the bug-PR resolution campaign unit @lidge-jun
- #2014 docs(devlog): correct the bug-PR disposition tally @lidge-jun
- #2015 fix(commandcode): share reasoning-facts table and fix GLM slug decode (lands #1800) @lidge-jun
- #2016 fix(responses): route raw reasoning through the expandable summary channel (lands #2007) @lidge-jun
- #2017 fix(cursor): pin session id and continue external tool results as userMessageAction (lands #1990) @lidge-jun
- #2018 fix(antigravity): drop the synthetic x-goog-api-client onboarding header (lands #1889) @lidge-jun
- #2020 fix(responses): flatten the Codex 0.147 functions namespace in the parser (lands #1896 subset) @lidge-jun
- #2021 fix(codex): treat a bare WHAM 401 as transient only for a verifiably live token (lands #1932) @lidge-jun
- #2026 fix: stabilize dev head after the 260818 merge train @lidge-jun
- #2034 feat(clients): ZCode (Z.ai desktop client) managed integration — ocx zcode @lidge-jun
- #2037 feat(outbound): route Clash fake-IP DNS answers through the configured proxy (#1748) @lidge-jun
- #2038 fix(cursor): normalize empty and failure-state Computer Use tool results (#1920) @lidge-jun
- #2042 fix(chat): keep the structured-output opt-out exact on the native chat wire @ntdatt812
- #2043 fix(oauth): redact public authentication errors (#1842) @lidge-jun
- #2044 fix(cursor): normalize text-part tool results @Ingwannu
- #2045 fix(outbound): keep fake-IP opt-in off NO_PROXY routes @Ingwannu
- #2049 docs(structure): scope canonical Fast injection to the bridged Chat path @lidge-jun
- #2052 docs(devlog): wp10 follow-up designs + campaign phase records @lidge-jun
- #2055 fix(codex): classify detail-scoped workspace denials @Ingwannu
- #2057 docs(providers): document OpenCode Go quota probe @Ingwannu
- #2058 docs(devlog): close the 260818 bug-PR resolution campaign to _fin @lidge-jun
- #2059 fix(lab): report the model gates the way the adapters actually match them @ntdatt812
- #2061 fix(codex): strip app-rewritten provider sub-tables so the provider never survives nameless @kinsolee
- #2066 fix(google): append continue nudge for Claude-on-Antigravity prefill @jeongjin0
- #2076 fix(codex): emit modern env_key admission line on non-loopback inject @lidge-jun
- #2078 fix(replay): scope durable thought signatures per credential and bound persist visibility @lidge-jun
- #2079 fix(update): stage, verify, and swap npm self-updates with rollback @lidge-jun
- #2081 test(update): re-pin launcher invariants to the transactional install contract @lidge-jun
- #2087 fix(update): stage global-style so dependencies land inside the package @lidge-jun
- #2088 [WRONG BRANCH] promote: dev to preview for v2.26.0-preview.20260819 @lidge-jun
- #2090 [WRONG BRANCH] release: v2.26.0-preview.20260819 @lidge-jun