Skip to content

v2.61.0

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Sep 15:29
Immutable release. Only release title and notes can be modified.
2f82167

Published to npm as @bitkyc08/opencodex@2.61.0 with dist-tag latest.

New Features

  • Menu bar companion + widget, with CodexBar-style usage monitor integrated into Usage (#5196)
  • Land the desktop application stack on dev (#5318)
  • Land the local intercept chain on dev (#5319)
  • Add StepFun provider support (#5313)
  • Generate every app icon from one SVG source (#5329)
  • Draw the app icon and menu bar mark from the brand artwork (#5355)
  • Render the dashboard and documentation favicons from the app icon vector (#5361)
  • Write the ZCode provider store the client actually reads (#5380)
  • Expose ocx resolve and ocx stop --json for embedding shells (#5383)
  • Dual Linux updater targets and the installed-artifact release gate (#5391)
  • Verify everything before publication and add a resumable publish path (#5405)
  • Open a usage popup from the tray icon (#5452)
  • Native macOS usage panel and release regression fixes (#5490)

Bug Fixes

  • Request-scoped transport pinning and managed-write symlink refusal (#5264)
  • Output budgets, adapter queue memory, and per-key model policy (#5265)
  • Stop a stopped proxy from locking users out of Codex sign-in (#5267)
  • Preserve caller constraints on the request path (#5211, #5210, #5212, #5213) (#5271)
  • Bind account-scoped evidence to credential generation and add privacy-bounded cache diagnostics (#5268)
  • Close the silent paths into a Codex lockout (#5288)
  • Resolve combos by what they are, and check the documented discovery limits (#5216, #5215) (#5294)
  • Apply per-key model and provider scope to the unrouted data planes (#5290)
  • Keep Apple SD Gothic Neo behind San Francisco (#5154)
  • Fold the developer role unless a destination records that it accepts it (#5334)
  • Record that the Chat conformance destination accepts the developer role (#5341)
  • Make the build report its own state (#5327)
  • Say that first-party exists when gateway is applied (#5328)
  • Give the widget an entry point and sign it at release time (#5339)
  • Admit SOCKS scheme variables on both sides of the proxy decision (#5269)
  • Report the measured cache hit rate and make the usage models table readable (#5333)
  • Complete the provider-table transition on a paginated openai home (#5331)
  • Make a failed browser launch and a failed account refresh visible (#5261) (#5332)
  • Sign the WidgetKit extension with the Developer ID (#5345)
  • Keep the alpha channel every generated icon needs (#5356)
  • Honour a recorded developer-role setting on the native Chat route (#5372)
  • Enforce the request's tool selection after a response repair (#5376)
  • One resend budget across composed recovery legs (#5378)
  • Answer an ambiguous resend the same way on every HTTP surface (#5377)
  • Keep a mid-conversation instruction in its slot on the translated Chat inbound (#5381)
  • Pipeline correctness for Windows packaging, checksums, publication ordering, and process identity (#5388)
  • Share explicit reasoning wire policy (#5398)
  • Preserve tool identity through response restoration (#5397)
  • Preserve replay refusal on routed Claude Messages (#5396)
  • Make the Windows shell load its own origin and hide the console (#5399)
  • Replace the platform dialogs the desktop webview cannot draw (#5387)
  • Preserve legacy selector grammar (#5401)
  • K2.8 registry refresh — adjustable thinking, 1M context, kimi-for-coding default (#5403)
  • Let the bootstrap surface stay silent until it has something to report (#5412)
  • Keep one local bundle format from destroying the rest (#5410)
  • Warn only for proven stale app servers (#5394)
  • Repair exec_command input wrappers (#5395)
  • Close ownership mutation races (#5426)
  • Probe endpoint liveness in-process so the standalone resolve does not fork execPath (#5418)
  • Ship the startup surface as one page the policy can name (#5445)
  • Let the tray's left click reach the usage popup (#5462)
  • Make the startup surface unable to wait forever (#5451)
  • Preserve permission enum in normalized errors (#5243)
  • Retain committed gateway state after cleanup failure (#5519)
  • Carry verified checksum and signature repair (#5546)
  • Carry Windows checksum record support (#5552)
  • Carry the draft-then-publish release fix to main (#5558)

Documentation

  • Record the 2.60.0 regression, promotion and publication run (#5251)
  • Open the meaning-preservation and request-scoped safety batch (#5257)
  • Open phase 2 of the post-2.60.0 consolidation batch (#5259)
  • Open the Codex sign-in lockout incident lane (#5263)
  • Open the round 2 follow-up unit (#5325)
  • Close the round-2 follow-up unit (#5360)
  • Close the brand icon unit with its on-screen and CI record (#5364)
  • Open the cross-path contract unit for the next release (#5371)
  • Bind lane ownership, ordering and acceptance for the cross-path unit (#5379)
  • One developer-role policy in the Chat contract, the reference and the translations (#5373)
  • Close the cross-path contract unit with its landed record (#5382)
  • Record the post-landing verification of the cross-path unit (#5390)
  • Open the remaining-seams unit for the next release (#5392)
  • Close the remaining-seams unit with its landed record (#5411)
  • Fold the desktop app into a beta section and record install locations (#5417)
  • Land the app runtime ownership record and close the unit (#5467)

Chores

  • Prove hung-probe cleanup behaviorally (#5258)
  • Register the StepFun provider test in both layout maps (#5335)
  • Declare the dangling-toolcalls destination accepts the developer role (#5344)
  • Declare the inline-document destination accepts the developer role (#5346)
  • Keep unsigned verification out of updater signing (#5338)
  • Assert the executable the app bundle declares (#5351)
  • Locate the signing keychain steps by what they run (#5353)
  • Judge the paginated-history transition by conversation destination (#5375)
  • Stop paying for eight route snapshots in the #848 provenance test (#5402)
  • Take the asset basename the way the platform spells it (#5404)
  • Derive the release-verify fixture's signed set from the updater table (#5425)
  • Bound ordinary macOS shard process lifetimes (#5520)
  • Enable Linux package diagnostics on main (#5524)
  • Retrigger main release verification (#5534)

Other Changes

  • Open dev at 2.61.0 before releasing 2.60.0 (#5247)
  • One stage, cause and resend vocabulary for a failed request (#5266)
  • Make the logs page, the ledger and the exporter agree (#5300)
  • Per-provider outbound egress: direct, inherit, HTTP(S) and SOCKS5 per provider (#5289)
  • Rework #4942 and #4989 into one ambiguous-resend gate with one grant per request (#5342)
  • Derive the four telemetry pull requests from the landed recorder (#5347)
  • Make background-service runtime ownership durable, and stop every path that would undo it (#5386)
  • Close the review findings on runtime ownership: one install-state contract, locked resolution, atomic replace (#5400)
  • Desktop shell: one exit path, one startup surface and a real tray probe (#5384)
  • Harden durable runtime ownership against stale consent and unsafe replacement (#5406)
  • Promote native macOS tray candidate to main 2.61.0 (#5510)
  • Fix stable platform packaging (#5528)
  • Carry native sidecar packaging repair (#5532)
  • Carry lipo verification fix (#5537)

Changelog

Full Changelog: v2.60.0...v2.61.0

  • #5154 fix(gui): keep Apple SD Gothic Neo behind San Francisco @stleamist
  • #5196 feat(macos): menu bar companion + widget, with CodexBar-style usage monitor integrated into Usage @devin-ai-integration[bot]
  • #5243 fix(google): preserve permission enum in normalized errors @luvs01
  • #5247 chore(release): open dev at 2.61.0 before releasing 2.60.0 @github-actions[bot]
  • #5251 docs(devlog): record the 2.60.0 regression, promotion and publication run @lidge-jun
  • #5257 docs(devlog): open the meaning-preservation and request-scoped safety batch @lidge-jun
  • #5258 test(tray): prove hung-probe cleanup behaviorally @ahmedfrawelo
  • #5259 docs(devlog): open phase 2 of the post-2.60.0 consolidation batch @lidge-jun
  • #5263 docs(devlog): open the Codex sign-in lockout incident lane @lidge-jun
  • #5264 fix(security): request-scoped transport pinning and managed-write symlink refusal @lidge-jun
  • #5265 fix(adapters,server): output budgets, adapter queue memory, and per-key model policy @lidge-jun
  • #5266 One stage, cause and resend vocabulary for a failed request @lidge-jun
  • #5267 fix(codex): stop a stopped proxy from locking users out of Codex sign-in @lidge-jun
  • #5268 fix(codex,usage): bind account-scoped evidence to credential generation and add privacy-bounded cache diagnostics @lidge-jun
  • #5269 fix(transport): admit SOCKS scheme variables on both sides of the proxy decision @lidge-jun
  • #5271 fix: preserve caller constraints on the request path (#5211, #5210, #5212, #5213) @lidge-jun
  • #5288 fix(codex): close the silent paths into a Codex lockout @lidge-jun
  • #5289 Per-provider outbound egress: direct, inherit, HTTP(S) and SOCKS5 per provider @lidge-jun
  • #5290 fix(server): apply per-key model and provider scope to the unrouted data planes @lidge-jun
  • #5294 fix: resolve combos by what they are, and check the documented discovery limits (#5216, #5215) @lidge-jun
  • #5300 Make the logs page, the ledger and the exporter agree @lidge-jun
  • #5313 feat(provider): add StepFun provider support @Flowershangfromthebranches
  • #5318 feat(desktop): land the desktop application stack on dev @lidge-jun
  • #5319 feat(claude-desktop): land the local intercept chain on dev @lidge-jun
  • #5325 docs(devlog): open the round 2 follow-up unit @lidge-jun
  • #5327 fix(desktop,cli): make the build report its own state @lidge-jun
  • #5328 fix(claude-desktop): say that first-party exists when gateway is applied @lidge-jun
  • #5329 feat(desktop): generate every app icon from one SVG source @lidge-jun
  • #5331 fix(codex): complete the provider-table transition on a paginated openai home @lidge-jun
  • #5332 fix: make a failed browser launch and a failed account refresh visible (#5261) @lidge-jun
  • #5333 fix(gui): report the measured cache hit rate and make the usage models table readable @lidge-jun
  • #5334 fix(openai-chat): fold the developer role unless a destination records that it accepts it @lidge-jun
  • #5335 test(layout): register the StepFun provider test in both layout maps @lidge-jun
  • #5338 ci(desktop): keep unsigned verification out of updater signing @lidge-jun
  • #5339 fix(desktop): give the widget an entry point and sign it at release time @lidge-jun
  • #5341 fix(lab): record that the Chat conformance destination accepts the developer role @lidge-jun
  • #5342 Rework #4942 and #4989 into one ambiguous-resend gate with one grant per request @lidge-jun
  • #5344 test(openai-chat): declare the dangling-toolcalls destination accepts the developer role @lidge-jun
  • #5345 fix(desktop,release): sign the WidgetKit extension with the Developer ID @lidge-jun
  • #5346 test(responses): declare the inline-document destination accepts the developer role @lidge-jun
  • #5347 Derive the four telemetry pull requests from the landed recorder @lidge-jun
  • #5351 ci(desktop): assert the executable the app bundle declares @lidge-jun
  • #5353 test(release): locate the signing keychain steps by what they run @lidge-jun
  • #5355 feat(desktop): draw the app icon and menu bar mark from the brand artwork @lidge-jun
  • #5356 fix(desktop): keep the alpha channel every generated icon needs @lidge-jun
  • #5360 docs(devlog): close the round-2 follow-up unit @lidge-jun
  • #5361 feat(brand): render the dashboard and documentation favicons from the app icon vector @lidge-jun
  • #5364 docs(devlog): close the brand icon unit with its on-screen and CI record @lidge-jun
  • #5371 docs(devlog): open the cross-path contract unit for the next release @lidge-jun
  • #5372 fix(chat): honour a recorded developer-role setting on the native Chat route @lidge-jun
  • #5373 docs: one developer-role policy in the Chat contract, the reference and the translations @lidge-jun
  • #5375 test(codex): judge the paginated-history transition by conversation destination @lidge-jun
  • #5376 fix(server,xai): enforce the request's tool selection after a response repair @lidge-jun
  • #5377 fix(transports): answer an ambiguous resend the same way on every HTTP surface @lidge-jun
  • #5378 fix(runtime): one resend budget across composed recovery legs @lidge-jun
  • #5379 docs(devlog): bind lane ownership, ordering and acceptance for the cross-path unit @lidge-jun
  • #5380 feat(integrations): write the ZCode provider store the client actually reads @lidge-jun
  • #5381 fix(chat): keep a mid-conversation instruction in its slot on the translated Chat inbound @lidge-jun
  • #5382 docs(devlog): close the cross-path contract unit with its landed record @lidge-jun
  • #5383 feat(cli): expose ocx resolve and ocx stop --json for embedding shells @lidge-jun
  • #5384 Desktop shell: one exit path, one startup surface and a real tray probe @lidge-jun
  • #5386 Make background-service runtime ownership durable, and stop every path that would undo it @lidge-jun
  • #5387 fix(gui): replace the platform dialogs the desktop webview cannot draw @lidge-jun
  • #5388 fix(release): pipeline correctness for Windows packaging, checksums, publication ordering, and process identity @lidge-jun
  • #5390 docs(devlog): record the post-landing verification of the cross-path unit @lidge-jun
  • #5391 feat(desktop): dual Linux updater targets and the installed-artifact release gate @lidge-jun
  • #5392 docs(devlog): open the remaining-seams unit for the next release @lidge-jun
  • #5394 fix(cli): warn only for proven stale app servers @Ingwannu
  • #5395 fix(responses): repair exec_command input wrappers @Ingwannu
  • #5396 fix(server): preserve replay refusal on routed Claude Messages @lidge-jun
  • #5397 Preserve tool identity through response restoration @lidge-jun
  • #5398 fix(chat): share explicit reasoning wire policy @lidge-jun
  • #5399 fix(desktop): make the Windows shell load its own origin and hide the console @devin-ai-integration[bot]
  • #5400 Close the review findings on runtime ownership: one install-state contract, locked resolution, atomic replace @lidge-jun
  • #5401 fix(integrations): preserve legacy selector grammar @lidge-jun
  • #5402 test(server): stop paying for eight route snapshots in the #848 provenance test @lidge-jun
  • #5403 fix(kimi): K2.8 registry refresh — adjustable thinking, 1M context, kimi-for-coding default @yuanyuanlove
  • #5404 test(release): take the asset basename the way the platform spells it @lidge-jun
  • #5405 feat(release): verify everything before publication and add a resumable publish path @lidge-jun
  • #5406 Harden durable runtime ownership against stale consent and unsafe replacement @lidge-jun
  • #5410 fix(desktop): keep one local bundle format from destroying the rest @lidge-jun
  • #5411 docs(devlog): close the remaining-seams unit with its landed record @lidge-jun
  • #5412 fix(desktop): let the bootstrap surface stay silent until it has something to report @lidge-jun
  • #5417 docs: fold the desktop app into a beta section and record install locations @lidge-jun
  • #5418 fix(cli): probe endpoint liveness in-process so the standalone resolve does not fork execPath @devin-ai-integration[bot]
  • #5425 test(ci): derive the release-verify fixture's signed set from the updater table @lidge-jun
  • #5426 fix(runtime): close ownership mutation races @lidge-jun
  • #5445 fix(desktop): ship the startup surface as one page the policy can name @lidge-jun
  • #5451 fix(desktop): make the startup surface unable to wait forever @lidge-jun
  • #5452 feat(desktop): open a usage popup from the tray icon @lidge-jun
  • #5462 fix(desktop): let the tray's left click reach the usage popup @lidge-jun
  • #5467 docs(devlog): land the app runtime ownership record and close the unit @lidge-jun
  • #5490 feat(desktop): native macOS usage panel and release regression fixes @lidge-jun
  • #5510 release: promote native macOS tray candidate to main 2.61.0 @lidge-jun
  • #5519 fix(claude): retain committed gateway state after cleanup failure @lidge-jun
  • #5520 ci: bound ordinary macOS shard process lifetimes @lidge-jun
  • #5524 release: enable Linux package diagnostics on main @lidge-jun
  • #5528 release: fix stable platform packaging @lidge-jun
  • #5532 release(main): carry native sidecar packaging repair @lidge-jun
  • #5534 chore(ci): retrigger main release verification @lidge-jun
  • #5537 release(main): carry lipo verification fix @lidge-jun
  • #5546 release(main): carry verified checksum and signature repair @lidge-jun
  • #5552 release(main): carry Windows checksum record support @lidge-jun
  • #5558 fix(release): carry the draft-then-publish release fix to main @lidge-jun