github duolahypercho/codex-router v0.5.0

3 hours ago

The Windows and Linux desktop packages are unsigned tester artifacts. Install the matching Codex Router version before running them. macOS is excluded until its app can be Developer ID signed and notarized.

What's Changed

  • fix(qwen): correct qwen-plan context windows to the documented limits by @duolahypercho in #240
  • feat: surface LM Studio models in the panel's local view by @duolahypercho in #242
  • fix(aging): prove the compaction pass ran even when it changes nothing by @duolahypercho in #239
  • feat: add official Xiaomi MiMo API provider by @sirenexcelsior in #243
  • feat: add Arabic, Hindi, Japanese, and Korean UI languages by @duolahypercho in #248
  • fix(qwen): use the limits the provider itself reports, measured by @duolahypercho in #250
  • fix(zai): drop the nonexistent glm-5.3[1m] route and correct GLM-5.3 to 1M by @duolahypercho in #246
  • feat(doctor): flag context windows the provider has already disproved by @duolahypercho in #247
  • feat(subagents): choose the reasoning effort a model runs at as a child by @duolahypercho in #249
  • feat(custom): a provider whose models each name their own endpoint by @duolahypercho in #254
  • fix(custom): the free Qwen3.8 endpoint refuses the empty tool list compaction sends by @duolahypercho in #258
  • fix(custom): the free Qwen3.8 endpoint refuses a system message that arrives late or twice by @duolahypercho in #259
  • feat(failover): continue a turn on another model when the provider is out of usage by @duolahypercho in #260
  • fix(panel): say the browser panel is read-only, and stop claiming ageing is on by @duolahypercho in #262
  • fix(grok): keep one conversation on one conv-id so the prompt cache is read by @wousp112 in #265
  • test(failover): cover the untested paths, and stop promising a free tier that is empty by @duolahypercho in #263
  • Bridge native tool_search for routed chat-completions models by @labmimors in #255
  • docs(subagents): say that a subagent proof is about the wire, not the work by @duolahypercho in #273
  • fix(curation): size a curated model by the window its provider advertises by @duolahypercho in #274
  • fix(reasoning): replay the reasoning behind a prose turn, not only a tool call by @duolahypercho in #275
  • fix(start): supervise the gateway in place instead of tearing the service down by @duolahypercho in #276
  • fix: preserve Grok OAuth tool calls across Responses SSE by @Zzy-min in #264
  • docs(issues): say the tracker is for the router, not the app it routes through by @duolahypercho in #278
  • feat(commandcode): serve the coding plans through the route their own CLI uses by @duolahypercho in #269
  • feat(retention): purge retained tool results, and report them in doctor by @duolahypercho in #277
  • feat(devin): reach Devin's models through the session its CLI already stored by @duolahypercho in #271
  • feat(gemini): publish routed models into Gemini CLI by @duolahypercho in #272
  • feat(models): offer GPT-5.6 Sol at the 1M context window OpenAI documents by @duolahypercho in #282
  • fix(usage): stop billing sealed reasoning ciphertext to the prompt-token estimate by @duolahypercho in #281
  • feat(retention): give retained tool results a lifetime by @duolahypercho in #283
  • feat(subagents): let a proven slug be demoted, and stop a looping child by @duolahypercho in #284
  • feat(devin-probe): make one tester's run settle each transport assumption by @duolahypercho in #285
  • fix(meta): drop the search_content_types Meta's older schema copy refuses by @duolahypercho in #288
  • fix(devin): map every Connect code, and refuse a compressed frame loudly by @duolahypercho in #289
  • fix(test): stop the suite from deleting the machine's own routed subagents by @duolahypercho in #287
  • docs(cursor): record why Cursor was measured and rejected, both directions by @duolahypercho in #280
  • fix(test): stop three flakes, and make a forwarder that cannot bind say so by @duolahypercho in #291
  • fix(devin-probe): keep the spawn options a Windows shim needs by @duolahypercho in #290
  • fix(test): wait for the demotion lines instead of racing macOS pipe writes by @duolahypercho in #294
  • test(reasoning): pin the plain follow-up after a thinking turn by @duolahypercho in #293
  • fix: retry a Grok OAuth progress-only stop once under the author contract by @Zzy-min in #295
  • feat(commandcode): require an API key and drop the CLI sign-in path by @duolahypercho in #306
  • chore(deps): bump actions/cache from 5 to 6 by @dependabot[bot] in #299
  • chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #300
  • chore(deps): bump Homebrew/actions/setup-homebrew from 2026.08.10.2 to 2026.08.14.1 by @dependabot[bot] in #302
  • chore(deps): bump actions/download-artifact from 4 to 8 by @dependabot[bot] in #301
  • fix(grok-oauth): certify after-tool stops instead of accepting a clean empty finish by @sirenexcelsior in #303
  • Integrate audited open PRs with routing and Control Center hardening by @duolahypercho in #326
  • feat(tray): support custom menu bar icons and icon-only mode (#307) by @Zzy-min in #308
  • fix(zai): use GPT-5.6 behavior instructions for GLM-5.3 by @PracticalSwan in #313
  • fix(zai): harden GLM-5.3 execution discipline by @PracticalSwan in #314
  • fix(zai): preserve GLM reasoning across tool turns by @PracticalSwan in #315
  • fix(zai): preserve authoritative usage through LiteLLM by @PracticalSwan in #316
  • fix(grok-oauth): preserve images in tool results by @mirucon in #317
  • feat(electron): land control center beta with hardened routing by @duolahypercho in #319
  • fix(kimi): stop tool_call re-seating from emitting invalid messages by @webhype in #320
  • Fix GPT-5.6 cache retention compatibility by @acct1cedric1 in #321
  • fix(api-forwarder): normalize trailing model turns for Gemini-backed endpoints by @Recoba86 in #322
  • feat(proxy): support environment proxy settings by @clxsh in #323
  • Integrate validated fixes from PRs #327#329 by @duolahypercho in #330
  • fix: harden Codex update compatibility and test isolation by @PracticalSwan in #327
  • fix: count terminal native closes as successful by @PracticalSwan in #329
  • fix(grok-oauth): alias view_image for Grok 4.6 tool selection by @mirucon in #328
  • feat: harden routing and expand provider workflows by @duolahypercho in #332
  • fix: stop quota retry storms by @PracticalSwan in #342
  • fix(linux): prefer bundled desktop Codex CLI by @PinguuSS in #339
  • api-forwarder: preserve streamed usage from chat providers by @duolahypercho in #346
  • feat: safely add DeepSeek V4 Flash Vision Exp by @duolahypercho in #347
  • Add safe V2 agent certification workflow by @duolahypercho in #345
  • fix: end streams cleanly on shutdown, and keep test runs out of the machine's service manager by @duolahypercho in #348
  • Add NanoGPT and Venice catalog-only providers by @duolahypercho in #354
  • fix(panel): serve i18n.mjs so the browser panel renders by @duolahypercho in #358
  • fix(opencode-go): correct GLM-5.3 to its 1M context window by @duolahypercho in #359
  • fix(homebrew): dispatch the packaged command through bin/codex-router by @duolahypercho in #360
  • fix: keep /health answering during concurrent streaming turns (reviewed) by @duolahypercho in #361
  • fix(installer): install Node dependencies before guided setup (reviewed) by @duolahypercho in #362
  • feat(opencode): support Zen Free Muse and Ox safely (reviewed) by @duolahypercho in #363
  • fix(picker): repair pre-allowlist installs, and keep guided model selection opt-in by @duolahypercho in #364
  • feat: reload provider catalogs from tray (rebased + hardened) by @duolahypercho in #365
  • fix(kimi): inline sibling $ref pointers Moonshot rejects by @duolahypercho in #367
  • fix(curation): source Zen free-model metadata, and withhold windows that fail the headroom check by @duolahypercho in #368
  • fix(health): probe the Grok OAuth forwarder, and infer Ready for an absent dependency by @duolahypercho in #369
  • fix(dsh): write credentials into the harness envelope without corrupting the document by @duolahypercho in #371
  • fix(minimax): request split reasoning instead of filtering it out by @duolahypercho in #373
  • feat(compaction): evidence-backed checkpoint format (format half of #344) by @duolahypercho in #378
  • fix(windows): drain startup handles before exit (split from #372) by @duolahypercho in #380
  • refactor: harden Windows private-file ACL handling (scope b) by @Zzy-min in #374
  • feat: group routed models by provider in the catalog picker (scope d) by @Zzy-min in #376
  • feat: harden Windows tray lifecycle and add deploy helpers (scope c) by @Zzy-min in #375
  • feat: Antigravity OAuth provider, reconciled from #372 and #377 by @duolahypercho in #383
  • feat: integrate Antigravity browser OAuth routing by @Zzy-min in #372
  • feat: ship Ox Alpha on six routes and add Venice and Nous Research providers by @duolahypercho in #379
  • fix: keep test runs out of this machine's systemd by @duolahypercho in #381
  • fix(windows): bound service process identity probes by @virajchoudhary in #382
  • feat(compaction): automate token maxxing under pressure by @duolahypercho in #386
  • feat: certify GLM-5.3 for v2 agents by @PracticalSwan in #395
  • fix(errors): anonymous providers have no stored credential to refresh by @virajchoudhary in #388
  • fix(windows): fail readiness early on a dead task; retry transient interpreter probes by @virajchoudhary in #387
  • Require opt-in for ChatGPT session sharing by @duolahypercho in #396
  • fix: keep provider icons within tray icon bounds by @jepgambardella in #401
  • test: isolate spawn suites from live installs; fix graceful-shutdown flake; pin #370 by @virajchoudhary in #415
  • feat: ship one unified cross-platform Model Router app by @duolahypercho in #416
  • Fix unified Codex Router app and Ox Alpha research by @duolahypercho in #419
  • Add Kimi K3 (Ollama Cloud) model by @malsabbagh in #394
  • fix: rebuild unusable Python environments by @duolahypercho in #427
  • perf: phase-lock the macOS thinking orb at 20 fps by @duolahypercho in #428
  • docs: update Devin probe instructions for main by @duolahypercho in #429
  • build(deps): bump Homebrew/actions/setup-homebrew from 2026.08.14.1 to 2026.08.24.1 by @dependabot[bot] in #431
  • fix(windows): verify live launcher in service status by @duolahypercho in #432
  • test: isolate Ox Alpha account usage state by @duolahypercho in #433
  • Harden Ox Alpha routing and streamed completion recovery by @duolahypercho in #426
  • Give Linux and Windows the macOS inset Control Center chrome by @12duolalalala in #440
  • fix: preserve activity dot colors in menu bar by @jepgambardella in #438
  • test: harden native delegation contract fixtures by @jepgambardella in #425
  • docs: add OpenCodex parity roadmap by @jepgambardella in #411
  • fix(windows): harden Control Center installation by @nikolaout in #436
  • fix(desktop): poll health without spawning processes by @duolahypercho in #442
  • Rebuild the Models page, and make subagent selection work again by @duolahypercho in #439
  • fix: size tray provider icons consistently by @duolahypercho in #443
  • fix: drop DeepSeek phantom tool messages safely by @duolahypercho in #444
  • Fix false empty-completion limits on large stream prologues by @mirucon in #445
  • fix(start): restart the managed service and restore the installed proxy by @duolahypercho in #446
  • feat(discovery): audit provider model catalogs on a schedule by @duolahypercho in #447
  • feat: record provider catalog capabilities by @duolahypercho in #448
  • feat(install): say whether the client is running when its config changes by @duolahypercho in #451
  • Fix tray alignment and unify Codex Router app icons by @duolahypercho in #452
  • Add OpenCode Go Grok 4.6 on Responses API by @duolahypercho in #456
  • feat: add Nous Hermes, free, and flagship portal models by @duolahypercho in #455
  • chore: release v0.5.0 by @duolahypercho in #453

New Contributors

Full Changelog: v0.4.0-beta.4...v0.5.0

Don't miss a new codex-router release

NewReleases is sending notifications on new releases.