github duolahypercho/codex-router v0.4.0-beta.3

5 hours ago

What's Changed

  • perf(update): skip dependency work an update does not change by @duolahypercho in #62
  • fix(doctor): repair foreign checkout state through the recorded owner by @duolahypercho in #63
  • fix(update): refresh tray bundles installed outside the checkout by @duolahypercho in #64
  • fix(win): force UTF-8 output for the LiteLLM gateway by @michaelyosta in #65
  • fix(win): recover from detached HEAD instead of crashing by @michaelyosta in #67
  • feat(win): discover the Codex Desktop App bundled CLI by @michaelyosta in #68
  • fix(win): repair the hidden API-key prompt on Windows by @michaelyosta in #69
  • fix(macOS): keep tray popover anchor stable during activity updates by @slavakurilyak in #75
  • feat: dynamic subagent and model picker settings by @duolahypercho in #80
  • fix(win): recognize TOML-escaped Windows catalog paths by @michaelyosta in #66
  • fix(tray): prevent stale chat names in Dynamic Island by @KaushalrajPuwar in #79
  • fix(codex): keep native catalog and root concurrency compatibility by @rajivpoddar in #74
  • feat(tray): tie the router and the tray to the Codex desktop apps, and supervise the tray with launchd by @duolahypercho in #83
  • feat(router): redirect native background turns to a routed model; enable multi_agent_v2 on routed subagents by @duolahypercho in #85
  • feat(config): per-provider config tree, plus error-classification and reasoning-effort fixes by @duolahypercho in #86
  • fix(tray): stop registering a login item by @duolahypercho in #87
  • fix(desktop): disable WebKit DMA-BUF renderer only on proprietary NVIDIA driver by @acrogenesis in #90
  • fix(gemini-api): strip unsupported thinking/think params before forwarding by @duolahypercho in #91
  • fix(gemini-api,service): sanitize non-user images, drop store/logit_bias, harden Windows startup by @duolahypercho in #92
  • fix(commandcode): shorten the plan hint to the requirement by @duolahypercho in #97
  • feat: vision for text-only models, and local LLMs as a provider by @duolahypercho in #96
  • Fix routed orchestrator with native subagents by @sergeylopukhov in #94
  • Send the native backend a compressed body instead of inflated JSON by @sergeylopukhov in #103
  • Say what is blocking an update, and offer a way past it by @sergeylopukhov in #102
  • fix(api-forwarder): downgrade forced tool_choice for DeepSeek thinking models by @duolahypercho in #107
  • fix(router): omit tool_choice from compaction requests by @duolahypercho in #108
  • fix(router): normalize readable routed-agent handoffs for native replay and compaction by @duolahypercho in #109
  • feat(skills): add a codex-subagents skill for spawning routed subagents by @duolahypercho in #112
  • fix(router): stop a stale selection file and a mid-stream failure from taking the router down by @duolahypercho in #111
  • fix(router): meter routed compaction and resolve its subagent payloads by @duolahypercho in #113
  • fix(install): make all three update paths agree on what blocks an update by @duolahypercho in #114
  • test: make the startup-cleanup watchdog wait on progress, not a fixed deadline by @duolahypercho in #115
  • fix(start): stop a starved machine from making startup declare a healthy service dead by @duolahypercho in #116
  • fix(win): start the background service without a console window by @duolahypercho in #110
  • feat(install): install the Python gateway from a hash-verified lock by @duolahypercho in #117
  • fix(api-forwarder): let a curated model declare that it refuses a forced tool_choice by @duolahypercho in #118
  • fix(router): retry a native upstream failure that happened before anything was relayed by @duolahypercho in #119
  • fix(router): estimate prompt tokens when a provider reports an impossible zero by @duolahypercho in #120
  • Let the signed-in ChatGPT plan read images for text-only models by @sergeylopukhov in #104
  • perf(vision): stop every image turn paying a keychain scan it does not need by @duolahypercho in #122
  • feat(vision): read a pasted image with no configuration by @duolahypercho in #121
  • fix(vision): read every image a turn carries, and read it once by @duolahypercho in #124
  • fix(deps): raise litellm so a patched cryptography can be installed by @duolahypercho in #125
  • fix(test): give each test file its own ports instead of racing for them by @duolahypercho in #128
  • feat(vision): ask the reader what the operator wants to know by @duolahypercho in #130
  • fix(catalog): preserve native GPT speed tiers by @jepgambardella in #135
  • fix(router): forward standalone web search by @jepgambardella in #136
  • Meter native turns the backend streams without a content-type by @sergeylopukhov in #133
  • Stop offering a subagent that was switched off by @sergeylopukhov in #134
  • Add DeepSeek V4 Flash Ollama Cloud model by @malsabbagh in #137
  • fix: exclude unauthenticated providers from login-free slots by @Bruce-Yii in #132
  • feat: add ClinePass provider by @Daltonganger in #81
  • feat(provider): add GitHub Copilot support by @tonyxu-io in #129
  • meter: record mid-stream upstream aborts instead of 200 by @kartikkabadi in #139
  • test: lock in token-estimate cap, predicate, and disable path by @kartikkabadi in #140
  • relay: full native toolset and namespaces to routed models by @kartikkabadi in #142
  • relay: inherit session model for spawned threads when model omitted by @kartikkabadi in #141
  • skills: install and verify the custom-model tool-shape skill pack by @kartikkabadi in #143
  • tooling: verify skill injection and document relay operations by @kartikkabadi in #144
  • build(deps): bump actions/setup-python from 5 to 7 by @dependabot[bot] in #150
  • feat: diagnose kimi oauth credential health without breaking refresh by @Bruce-Yii in #151
  • fix: preserve wrapped Node launcher and PATH by @duolahypercho in #152
  • feat: add Chutes provider and subscription quota reporting by @rohitsabu in #148
  • Fix empty completions: retry once, surface an error on repeat by @kartikkabadi in #145
  • fix: preserve Codex task provider during signed routing by @rohitsabu in #147
  • feat: mark empty-completion guard budget releases and indeterminate terminal parses by @Bruce-Yii in #154
  • feat(packaging): ship a Homebrew tap and keep its formula current by @duolahypercho in #156
  • Harden routed agent delegation and capability checks by @MediaPublishing in #155
  • refactor: build the namespace inventory once per routed request by @duolahypercho in #157
  • Prepare Homebrew core submission by @duolahypercho in #158
  • fix: detect and rebuild venvs whose interpreter home was cleared by @Guojiz in #160
  • Add end-to-end local Ollama model support by @duolahypercho in #163
  • fix: outlast the client's connection pool on idle keep-alive by @duolahypercho in #165
  • Make every local model installable, with or without Ollama by @duolahypercho in #166
  • fix: route standalone search and deferred MCP tools safely by @duolahypercho in #167
  • Fix macOS tray and router lifecycle by @duolahypercho in #168
  • Show remaining plan usage for xAI OAuth, MiniMax, Command Code, and opencode Go by @duolahypercho in #172
  • Surface upstream error cause chains, meter native failures, flatten union-rooted tool schemas for xAI by @duolahypercho in #173
  • Release 0.4.0-beta.3 by @duolahypercho in #174

New Contributors

Full Changelog: v0.4.0-beta.2...v0.4.0-beta.3

Don't miss a new codex-router release

NewReleases is sending notifications on new releases.