Published to npm as @bitkyc08/opencodex@2.78.0 with dist-tag latest.
New Features
- Add native pool preference with explicit opt-out precedence (#6562)
- Audit catalog writes with bounded private records (#6560)
- Heal lost catalog rows only from the idle owner (#6563)
- Icon theme switch sharing a row with the zoom stepper (#6579)
- Name the holder when the runtime mutation lease is busy (#6512)
- Group the sidebar into eight rows and tidy the Claude surface (#6593)
- Make existing management workflows discoverable (#6526)
- Add live provider management and safe editor apply (#6528)
- Add model ordering and routing editor workflows (#6535)
- Complete account policy and runtime settings workflows (#6539)
- Complete integration recovery and maintenance workflows (#6542)
- Complete observation and explicit-key API workflows (#6545)
- One-page Claude Code settings and Desktop model roles (#6596)
- Show the missing-store remedy in the dashboard (#6597)
Bug Fixes
- Promote scoped caller conversation headers (#6554)
- Retain bounded conversation trajectories (#6557)
- Preserve bounded large headers in picker relay (#6551)
- Qualify child trajectories by supplied parent (#6565)
- Share reset replay grants across translated sends (#6555)
- Preserve deferred and inline native tool names (#6552)
- Preserve native Claude requests across pooled dispatch (#6559)
- Require saved config authority for routed removal (#6553)
- Bind catalog writes to home ownership and intent (#6558)
- Preserve additional tool outputs during replay (#6576)
- Say why a dropped chatgptDesktop block reads as off (#6486)
- Honor consented credits after included quota exhaustion (#6572)
- Default config flags-only calls to show (carry #6483) (#6585)
- Release Anthropic refresh intent after a proven-unsent DNS failure (#6586)
- Report the spent primary, not the fallback's own refusal (#6564)
- Skip non-executable POSIX PATH entries in readiness checks (#6493)
- Preserve reasoning defaults after settings normalization (#6577)
- Wait for a complete Bun before restarting onto a replaced package tree (#6569)
- Keep Unix autostart shims off package-manager paths (carry of #6301) (#6589)
- Guard standalone update restart with exact replacement verification (#6556)
- Write DSH routes to the Desktop profile patch it reads (#6522)
- Explain Codex shim overlay migration and activation in status and doctor (#6607)
- Show account health actions, paid-credit consent, and empty-list next steps (#6611)
- Correct help and CLI reference text and show declared flags in leaf help (#6609)
- Stop-first manual reinstall guidance; refresh shim, update-failed, and ZCode guide text (#6619)
- Keep inference ports independent of management ingress (#6601)
- Normalize native upstream session aliases (#6588)
- Short sidebars, Claude sidecar rows, Save errors and legacy #debug after the GUI regroup (#6612)
- Keep armed test processes out of the real Codex home (#6591)
- Serve the Desktop picker over HTTP/2 so SSE streams cannot starve claude.ai (#6511) (#6610)
- Stop echoing values in claude desktop apply argument errors (#6618)
- Keep Claude Desktop role selects inside the Models card (#6625)
- Integration dialog starts on Close; client status failure offers Retry (#6623)
- Name ocx start when integration preview finds no running proxy (#6622)
- Reject arguments to uninstall and redact credential values in argument errors (#6608)
- Honest exit codes and JSON receipts for config, alias, health, update; validate provider add before saving (#6614)
- Name the real cause and next action in restart, update, and management refusals (#6615)
Documentation
- Record 2.77.0 candidate acceptance and publication (#6561)
- Close the CLI update restart unit with its delivery outcome (#6595)
- Sync Connect, Claude settings and DSH profile-patch guides with the dashboard (#6613)
Chores
- Open dev at 2.78.0 before releasing 2.77.0 (#6549)
- Compact the test-layout fixture to restore ratchet headroom (#6583)
- Isolate provider fixture DNS and bound child lifetime (#6578)
- Guard Kilo symlink regression on Windows (#6405)
- Make audio device refusal and login child import portable to Windows (#6599)
- Make the startup-proxy refresh test hold on Windows (#6600)
- Make catalog audit and provider proxy fixture robust on Windows; state unhealthy in-place shim status (#6602)
Other Changes
- 2.78.0 (#6632)
Changelog
Full Changelog: v2.77.0...v2.78.0
- #6405 test(clients): guard Kilo symlink regression on Windows @imranshaiedi-byte
- #6486 fix(chatgpt): say why a dropped chatgptDesktop block reads as off @lcxhh521
- #6493 fix(codex): skip non-executable POSIX PATH entries in readiness checks @hulkbig
- #6512 feat(service): name the holder when the runtime mutation lease is busy @lcxhh521
- #6522 fix(integrations): write DSH routes to the Desktop profile patch it reads @lcxhh521
- #6526 feat(cli): make existing management workflows discoverable @lidge-jun
- #6528 feat(cli): add live provider management and safe editor apply @lidge-jun
- #6535 feat(cli): add model ordering and routing editor workflows @lidge-jun
- #6539 feat(cli): complete account policy and runtime settings workflows @lidge-jun
- #6542 feat(cli): complete integration recovery and maintenance workflows @lidge-jun
- #6545 feat(cli): complete observation and explicit-key API workflows @lidge-jun
- #6549 chore(release): open dev at 2.78.0 before releasing 2.77.0 @github-actions[bot]
- #6551 fix(claude): preserve bounded large headers in picker relay @lidge-jun
- #6552 fix(anthropic): preserve deferred and inline native tool names @lidge-jun
- #6553 fix(codex): require saved config authority for routed removal @lidge-jun
- #6554 fix(server): promote scoped caller conversation headers @lidge-jun
- #6555 fix(responses): share reset replay grants across translated sends @lidge-jun
- #6556 fix(cli): guard standalone update restart with exact replacement verification @lidge-jun
- #6557 fix(devin): retain bounded conversation trajectories @lidge-jun
- #6558 fix(codex): bind catalog writes to home ownership and intent @lidge-jun
- #6559 fix(anthropic): preserve native Claude requests across pooled dispatch @lidge-jun
- #6560 feat(codex): audit catalog writes with bounded private records @lidge-jun
- #6561 docs: record 2.77.0 candidate acceptance and publication @lidge-jun
- #6562 feat(anthropic): add native pool preference with explicit opt-out precedence @lidge-jun
- #6563 feat(codex): heal lost catalog rows only from the idle owner @lidge-jun
- #6564 fix(combos): report the spent primary, not the fallback's own refusal @vadymhimself
- #6565 fix(devin): qualify child trajectories by supplied parent @lidge-jun
- #6569 fix(server): wait for a complete Bun before restarting onto a replaced package tree @LilMGenius
- #6572 fix(codex): honor consented credits after included quota exhaustion @Ingwannu
- #6576 fix(ollama): preserve additional tool outputs during replay @Ingwannu
- #6577 fix(droid): preserve reasoning defaults after settings normalization @shawn-kim-ai
- #6578 test: isolate provider fixture DNS and bound child lifetime @Hylouis233
- #6579 feat(gui): icon theme switch sharing a row with the zoom stepper @lidge-jun
- #6583 test(layout): compact the test-layout fixture to restore ratchet headroom @lidge-jun
- #6585 fix(cli): default config flags-only calls to show (carry #6483) @lidge-jun
- #6586 fix(oauth): release Anthropic refresh intent after a proven-unsent DNS failure @lidge-jun
- #6588 fix(responses): normalize native upstream session aliases @Yuxin-Qiao
- #6589 fix(codex): keep Unix autostart shims off package-manager paths (carry of #6301) @lidge-jun
- #6591 fix(test): keep armed test processes out of the real Codex home @lcxhh521
- #6593 feat(gui): group the sidebar into eight rows and tidy the Claude surface @lidge-jun
- #6595 docs(devlog): close the CLI update restart unit with its delivery outcome @lidge-jun
- #6596 feat(gui): one-page Claude Code settings and Desktop model roles @lidge-jun
- #6597 feat(integrations): show the missing-store remedy in the dashboard @lcxhh521
- #6599 test(cli): make audio device refusal and login child import portable to Windows @lidge-jun
- #6600 test(oauth): make the startup-proxy refresh test hold on Windows @lidge-jun
- #6601 fix(management): keep inference ports independent of management ingress @Ingwannu
- #6602 test: make catalog audit and provider proxy fixture robust on Windows; state unhealthy in-place shim status @lidge-jun
- #6607 fix(cli): explain Codex shim overlay migration and activation in status and doctor @lidge-jun
- #6608 fix(cli): reject arguments to uninstall and redact credential values in argument errors @lidge-jun
- #6609 fix(cli): correct help and CLI reference text and show declared flags in leaf help @lidge-jun
- #6610 fix(claude): serve the Desktop picker over HTTP/2 so SSE streams cannot starve claude.ai (#6511) @lidge-jun
- #6611 fix(cli): show account health actions, paid-credit consent, and empty-list next steps @lidge-jun
- #6612 fix(gui): short sidebars, Claude sidecar rows, Save errors and legacy #debug after the GUI regroup @lidge-jun
- #6613 docs: sync Connect, Claude settings and DSH profile-patch guides with the dashboard @lidge-jun
- #6614 fix(cli): honest exit codes and JSON receipts for config, alias, health, update; validate provider add before saving @lidge-jun
- #6615 fix(cli): name the real cause and next action in restart, update, and management refusals @lidge-jun
- #6618 fix(cli): stop echoing values in claude desktop apply argument errors @lidge-jun
- #6619 fix(update): stop-first manual reinstall guidance; refresh shim, update-failed, and ZCode guide text @lidge-jun
- #6622 fix(cli): name ocx start when integration preview finds no running proxy @lidge-jun
- #6623 fix(gui): integration dialog starts on Close; client status failure offers Retry @lidge-jun
- #6625 fix(gui): keep Claude Desktop role selects inside the Models card @lidge-jun
- #6632 release: 2.78.0 @lidge-jun