Files
cc-switch/docs/release-notes/v4.0.8-en.md
T

4.8 KiB

CC Switch v4.0.8

The fourth fix release for 4.0 stable

Users who installed only the Codex desktop app, without a separate Codex CLI, can now use Codex Aggregation mode too. When the official model list can't be read, the prompt now says why, and it goes away on its own once the problem is fixed. When adding and editing providers, "Fetch Models" now sends the request headers you configured, so gateways that require extra headers no longer reject it. "Settings → Data" adds an "Open log" button. Dark mode text is a bit dimmer and no longer as glaring. For everything new in 4.0, see the v4.0 release notes.


New

"Settings → Data → Application Diagnostic Logs" adds an "Open log" button. Clicking it selects cc-switch.log in your system's file manager; if the log file has not been created yet, it opens the folder where the log lives. When reporting an issue, you can attach it directly instead of digging through the hidden config directory.

Fixes

  • With only the Codex desktop app installed, the Aggregation page said "the Codex model list can't be read", and Aggregation mode did not work. When fetching the official list online fails, CC Switch falls back to the model list bundled with the Codex CLI, but it used to look for the codex command only on the system path. Users with only the desktop app don't have this command, so it always failed. Now, if it can't find one there, it uses the CLI bundled with the Codex desktop app: on macOS it looks for ChatGPT.app and the pre-rename Codex.app in "Applications", and when both are present it uses ChatGPT.app, so an old Codex.app does not supply an outdated model list; on Windows it looks for the newest version in the desktop app's install directory. A separately installed Codex CLI still takes priority.
  • When the official model list could not be read, the prompt did not say why, and it did not go away after the problem was fixed. Every cause used to show the same line, "the Codex model list can't be read". The prompt now lists the specific cause below it and tells you what to do: Codex has no usable ChatGPT sign-in, the sign-in has not been refreshed for more than 8 days, the sign-in information is incomplete, the Codex version can't be read, fetching online failed, or the returned data is incomplete; for the list bundled with Codex, the causes are that the Codex CLI can't be found, the CLI did not output a list, or the list has no usable models. Details of online and CLI failures are written to the log. Also, after falling back to the backup list, the prompt used to stay until your next manual switch even if the official list later recovered (for example, when Codex automatically refreshed an expired sign-in); CC Switch now switches back to the official list automatically, and the prompt goes away with it.
  • "Fetch Models" did not send the request headers you configured, so gateways that require extra headers rejected it. For example, Cloudflare AI Gateway requires the cf-aig-authorization header. OpenCode providers now send the request headers configured for them; Claude Code, Codex and Grok Build providers send the headers entered in "Header overrides", and fetching works as usual when the format is wrong or the field is empty. In the Codex and Grok Build forms, changing "Header overrides" clears the model list already fetched, so you don't pick a model the current identity can't use.
  • Dark mode text was too bright and became glaring after a while. All three text colors were close to pure white, which felt harsh on screens full of tables and labels and made it hard to tell primary from secondary text. All three are now a bit dimmer, and secondary text still keeps enough contrast on cards and selected backgrounds. Light mode is unchanged.

Other:

  • The "Compress old Codex sessions" section of the v4.0.7 release notes now also covers how to turn it on, when compression happens, how to continue old sessions, how CC Switch shows them, and things to note.
  • The English and Japanese help text for the quota display setting, and the English, Japanese and Traditional Chinese backup notices, now use the names actually shown in the interface.

Upgrade Notes

The database schema is unchanged, still at 20.


Thanks

Thanks to @SailingLoong (sending request headers when OpenCode fetches models) and @ggbdpq (sending "Header overrides" when Claude Code and Codex fetch models) for their contributions.

Thanks to @xovow, @YX-bobi and @cydebbb for reporting issues and making suggestions.

For the full technical details, see the CHANGELOG.