Published to npm as @bitkyc08/opencodex@2.39.0 with dist-tag latest.
New Features
- 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
- 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
- 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
- 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 main for v2.39.0 (#3125)
Changelog
Full Changelog: v2.38.0...v2.39.0
- #3074 test(gui): guard the properties the Aside and Integrations work relies on @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
- #3125 [WRONG BRANCH] promote dev onto main for v2.39.0 @lidge-jun