Published to npm as @bitkyc08/opencodex@2.39.0-preview.20260901 with dist-tag preview.
New Features
- Add candidate-only Codex CLI provenance check (#2818)
- Add durable reset-credit operation ledger (#1829)
- Export reasoning efforts as opencode V2 model variants (#3027)
- Add Aside as an export and integration client (#3047)
- Give the export clients their own brand marks (#3049)
- Surface Aside on the Integrations page (#3048)
- Give Aside its real mark and stop single-ink logos vanishing (#3065)
- Expose OpenAI entitlement status (#3058)
- Give the last three export clients their real marks (#3082)
- Put the client's logo on every Integrations surface (#3083)
- Let the user overwrite a conflicted config on purpose (#3084)
- Let the terminal resolve a conflict too (#3088)
- Source brand marks for 23 providers that rendered a letter tile (#3095)
- Give the Add-Provider catalog its logos (#3099)
- Let Logs be filtered by model or provider (#3115)
Bug Fixes
- Drop admission credentials paired with a replaced stale proxy (#3005)
- Align the sidecar cards on one shared control band (#3007)
- Advertise the completion tool as terminal so finished turns stop calling tools (#3012)
- Repair dev version line and open future bumps as PRs (#3013)
- Let a blocking question be the final answer (#3031)
- Restore GPT-5.6 for entitled accounts by raising the gated client-version floor (#3035)
- Drain response spill publications before shutdown snapshot (#3044)
- Namespace bare client tools on the wire (#3028)
- Display effective model aliases in Codex picker (#2960)
- Recover the Windows proxy task after a session disconnect (#2991)
- Stop the rollback journal from flooding the Integrations page (#3050)
- Refresh expired management entitlements (#3054)
- Make entitlement authority tri-state (#3057)
- Remove exponential backtracking from the prerelease pattern (#3075)
- Stop the Grok mark disappearing on the dark theme (#3086)
- Always carry query on web_search_call for Console Go (#3071) (#3089)
- Wire the provider marks that were already committed (#3093)
- Give every provider card the same control row (#3096)
- Bound the durable spill directory with an aggregate byte cap (#3097)
- Make every provider mark survive both themes (#3098)
- Resolve a rollout's session_meta by thread id (#3026) (#3103)
- Treat a live full burst window as exhausted, not unknown (#3029) (#3110)
- Typed stop outcome so a history-only failure does not abort the update (#3008) (#3118)
- Widen the dated-variant fold and guard its direction at the merge loop (#3100)
- Retry a discovery stream that ends before HTTP/2 headers (#3102)
- Stop start from shadowing a live configured-port proxy, and retry health (#3106)
- Strip Codex-private item metadata at the noncanonical boundary (#3107)
- Clear the Anthropic refresh intent after a transient failure (#3111)
- Notice an unreadable MESSAGE reply, not just NEW_TASK (#3116)
- Refresh a stored token before quarantining it on a WHAM 401 (#3019) (#3119)
- Give restore focus somewhere to land when its trigger is gone (#3113)
- Advertise image input for modalities-declared sidecar rows (#3105)
Documentation
- Close out the Kiro terminal completion contract unit (#3014)
- Record the Kiro contract landed-state verification (#3016)
- Close out the Kiro blocked-on-user unit (#3033)
- Close wp2 planning after four audit rounds and record the wp3 review (#3036)
- Record the v2.37.0 release and the live #3022 verification (#3043)
- Record the wp3 shutdown-drain outcome and its five review rounds (#3046)
- Correct the claim that this repository is unprotected (#3060)
- Plan the remaining marks, page logos and conflict overwrite (#3081)
- Close the Aside + Integrations unit with what the plan got wrong (#3085)
- Scan the priority-70 backlog for round 2 and lock the roadmap (#3087)
- Record the wp6/wp5/wp4 entitlement stack outcome (#3079)
- Record the two defects the audit found after the unit closed (#3091)
- Plan brand marks for the 38 providers that render bare (#3092)
- Close the provider-marks unit with what the plan got wrong (#3101)
- Rescan the bug backlog after the priority-70 train (#3120)
Chores
- Move dev to 2.38.0 after the v2.37.0 release (#3045)
- Block live scheduler mutation under the test guard (#2992)
- Stop the shutdown-cleanup reserve from expiring under load (#3055)
- Guard the properties the Aside and Integrations work relies on (#3074)
- Move dev to 2.39.0 after the v2.38.0 release (#3076)
Other Changes
- [WRONG BRANCH] promote dev onto preview for v2.38.0-preview.20260831 (#3072)
- [WRONG BRANCH] promote dev onto preview for v2.39.0-preview.20260901 (#3123)
Changelog
Full Changelog: v2.38.0...v2.39.0-preview.20260901
- #1829 feat(codex): add durable reset-credit operation ledger @luvs01
- #2818 feat(cli): add candidate-only Codex CLI provenance check @luvs01
- #2960 fix(catalog): display effective model aliases in Codex picker @terrytan95
- #2991 fix(service): recover the Windows proxy task after a session disconnect @luvs01
- #2992 test(service): block live scheduler mutation under the test guard @luvs01
- #3005 fix(claude): drop admission credentials paired with a replaced stale proxy @lidge-jun
- #3007 fix(gui): align the sidecar cards on one shared control band @lidge-jun
- #3012 fix(kiro): advertise the completion tool as terminal so finished turns stop calling tools @lidge-jun
- #3013 fix(release): repair dev version line and open future bumps as PRs @lidge-jun
- #3014 docs(devlog): close out the Kiro terminal completion contract unit @lidge-jun
- #3016 docs(devlog): record the Kiro contract landed-state verification @lidge-jun
- #3027 feat(opencode): export reasoning efforts as opencode V2 model variants @RobinBially
- #3028 fix(cursor): namespace bare client tools on the wire @HAEGONG
- #3031 fix(kiro): let a blocking question be the final answer @lidge-jun
- #3033 docs(devlog): close out the Kiro blocked-on-user unit @lidge-jun
- #3035 fix(codex): restore GPT-5.6 for entitled accounts by raising the gated client-version floor @lidge-jun
- #3036 docs(devlog): close wp2 planning after four audit rounds and record the wp3 review @lidge-jun
- #3043 docs(devlog): record the v2.37.0 release and the live #3022 verification @lidge-jun
- #3044 fix(windows): drain response spill publications before shutdown snapshot @lidge-jun
- #3045 chore(release): move dev to 2.38.0 after the v2.37.0 release @lidge-jun
- #3046 docs(devlog): record the wp3 shutdown-drain outcome and its five review rounds @lidge-jun
- #3047 feat(clients): add Aside as an export and integration client @lidge-jun
- #3048 feat(gui): surface Aside on the Integrations page @lidge-jun
- #3049 feat(gui): give the export clients their own brand marks @lidge-jun
- #3050 fix(gui): stop the rollback journal from flooding the Integrations page @lidge-jun
- #3054 fix(codex): refresh expired management entitlements @lidge-jun
- #3055 test(responses): stop the shutdown-cleanup reserve from expiring under load @lidge-jun
- #3057 fix(codex): make entitlement authority tri-state @lidge-jun
- #3058 feat(management): expose OpenAI entitlement status @lidge-jun
- #3060 docs(maintainers): correct the claim that this repository is unprotected @lidge-jun
- #3065 feat(gui): give Aside its real mark and stop single-ink logos vanishing @lidge-jun
- #3072 [WRONG BRANCH] promote dev onto preview for v2.38.0-preview.20260831 @lidge-jun
- #3074 test(gui): guard the properties the Aside and Integrations work relies on @lidge-jun
- #3075 fix(semver): remove exponential backtracking from the prerelease pattern @lidge-jun
- #3076 chore(release): move dev to 2.39.0 after the v2.38.0 release @lidge-jun
- #3079 docs(devlog): record the wp6/wp5/wp4 entitlement stack outcome @lidge-jun
- #3081 docs(devlog): plan the remaining marks, page logos and conflict overwrite @lidge-jun
- #3082 feat(gui): give the last three export clients their real marks @lidge-jun
- #3083 feat(gui): put the client's logo on every Integrations surface @lidge-jun
- #3084 feat(integrations): let the user overwrite a conflicted config on purpose @lidge-jun
- #3085 docs(devlog): close the Aside + Integrations unit with what the plan got wrong @lidge-jun
- #3086 fix(gui): stop the Grok mark disappearing on the dark theme @lidge-jun
- #3087 docs(devlog): scan the priority-70 backlog for round 2 and lock the roadmap @lidge-jun
- #3088 feat(cli): let the terminal resolve a conflict too @lidge-jun
- #3089 fix(responses): always carry query on web_search_call for Console Go (#3071) @lidge-jun
- #3091 docs(devlog): record the two defects the audit found after the unit closed @lidge-jun
- #3092 docs(devlog): plan brand marks for the 38 providers that render bare @lidge-jun
- #3093 fix(gui): wire the provider marks that were already committed @lidge-jun
- #3095 feat(gui): source brand marks for 23 providers that rendered a letter tile @lidge-jun
- #3096 fix(gui): give every provider card the same control row @lidge-jun
- #3097 fix(responses): bound the durable spill directory with an aggregate byte cap @lidge-jun
- #3098 fix(gui): make every provider mark survive both themes @lidge-jun
- #3099 feat(gui): give the Add-Provider catalog its logos @lidge-jun
- #3100 fix(catalog): widen the dated-variant fold and guard its direction at the merge loop @lidge-jun
- #3101 docs(devlog): close the provider-marks unit with what the plan got wrong @lidge-jun
- #3102 fix(cursor): retry a discovery stream that ends before HTTP/2 headers @lidge-jun
- #3103 fix(history): resolve a rollout's session_meta by thread id (#3026) @lidge-jun
- #3105 fix(catalog): advertise image input for modalities-declared sidecar rows @lidge-jun
- #3106 fix(cli): stop start from shadowing a live configured-port proxy, and retry health @lidge-jun
- #3107 fix(responses): strip Codex-private item metadata at the noncanonical boundary @lidge-jun
- #3110 fix(routing): treat a live full burst window as exhausted, not unknown (#3029) @lidge-jun
- #3111 fix(oauth): clear the Anthropic refresh intent after a transient failure @lidge-jun
- #3113 fix(gui): give restore focus somewhere to land when its trigger is gone @lidge-jun
- #3115 feat(gui): let Logs be filtered by model or provider @lidge-jun
- #3116 fix(responses): notice an unreadable MESSAGE reply, not just NEW_TASK @lidge-jun
- #3118 fix(stop): typed stop outcome so a history-only failure does not abort the update (#3008) @lidge-jun
- #3119 fix(codex): refresh a stored token before quarantining it on a WHAM 401 (#3019) @lidge-jun
- #3120 docs(devlog): rescan the bug backlog after the priority-70 train @lidge-jun
- #3123 [WRONG BRANCH] promote dev onto preview for v2.39.0-preview.20260901 @lidge-jun