fix(codex): respect user-owned model_catalog_json when generating catalog - #454
Merged
SaladDay merged 1 commit intoSep 15, 2026
Merged
Conversation
social4hyq
pushed a commit
to social4hyq/homebrew-core
that referenced
this pull request
Sep 20, 2026
cc-switch-cli 5.10.5 Created-by: HarmonybrewBot Commit-by: HarmonybrewBot Merged-by: HarmonybrewBot Description: Created by `brew bump` --- Created with `brew bump-formula-pr`.<details> <summary>release notes</summary> <pre># CC Switch CLI v5.10.5 v5.10.5 adds opt-in shared Codex sessions, per-model reasoning controls, local quota reset times, and GPT-6 Astra pricing. It also fixes model-catalog persistence, user-owned catalog paths, Windows session scanning, SQL imports, and Chat Completions compatibility. ## Added - **Codex / Shared Sessions**: Add opt-in `cc-switch start codex <provider> --shared-sessions` on macOS/Linux. Providers keep separate credentials and configuration while sharing persistent native session history and session locks. Includes [#440](SaladDay/cc-switch-cli#440), addressing [#436](SaladDay/cc-switch-cli#436). - **Codex / Per-Model Reasoning**: Expose supported reasoning levels and a default for each model in both TUI model-catalog editors, with the existing Auto behavior and contextual help. Includes [#442](SaladDay/cc-switch-cli#442), addressing [#441](SaladDay/cc-switch-cli#441). - **Providers / PatewayAI**: Add the PatewayAI sponsor preset and its provider setup support. ## Changed - **Quota / Reset Times**: Show quota reset timestamps in the local timezone, with UTC offsets and remaining time in CLI text; add compact reset countdowns to the TUI. Raw JSON timestamps and upstream quota calculations retain their existing semantics. Includes [#456](SaladDay/cc-switch-cli#456), fixing [#445](SaladDay/cc-switch-cli#445). - **Pricing / GPT-6 Astra**: Add standard prices per million tokens: $10 input, $50 output, $1 cached input, and $12.50 cache writes. Missing entries are added without replacing user-customized prices or restoring user-deleted entries. Includes [#460](SaladDay/cc-switch-cli#460), fixing [#459](SaladDay/cc-switch-cli#459). ## Fixed - **Codex / Model Mapping Persistence**: Preserve stored model catalogs and per-model reasoning settings during provider switches and temporary-launch capture. Fixes [#447](SaladDay/cc-switch-cli#447). - **Codex / User-Owned Catalogs**: Preserve custom `model_catalog_json` paths when generating a cc-switch catalog. Includes [#454](SaladDay/cc-switch-cli#454). - **Codex / OpenCode Go Reasoning**: Recognize the OpenCode Zen gateway before applying model-vendor reasoning defaults, and constrain effort to the model's catalog settings. Fixes [#443](SaladDay/cc-switch-cli#443). - **Proxy / Chat Completions Compatibility**: Convert null or missing message content to an empty string when translating Responses requests to Chat Completions, preserving tool payloads and multimodal content. Fixes the Azure compatibility issue in [#448](SaladDay/cc-switch-cli#448). - **Windows / Session Scanning**: Open existing session-cache files with the access required for synchronization, avoiding `Access denied (os error 5)` without truncating their contents. Includes [#455](SaladDay/cc-switch-cli#455), fixing [#450](SaladDay/cc-switch-cli#450). - **Configuration / SQL Import**: Acquire the sync lock before synchronous import and live-config projection to avoid a nested-executor panic when importing or restoring SQL backups. Fixes [#453](SaladDay/cc-switch-cli#453). - **TUI / Claude Quick Config**: Correct the displayed item total in the quick-configuration menu. Fixes [#435](SaladDay/cc-switch-cli#435). ## Upgrade notes - The database schema remains at v18; upgrading from v5.10.4 requires no schema migration. - Shared Codex sessions are opt-in and limited to macOS/Linux. Keep the persistent `.cc-switch-launches/` directories, allow only one shared launch per provider, and close a session before continuing it through another provider. See the [shared-session usage notes](https://github.com/SaladDay/cc-switch-cli/blob/v5.10.5/README.md) for argument restrictions and cross-provider limitations. - GPT-6 Astra uses the existing standard-rate calculator. Long-context and service-tier pricing are outside this release's pricing change. ## Update ```bash cc-switch update ``` Or use the macOS/Linux installer: ```bash curl -fsSL https://github.com/SaladDay/cc-switch-cli/releases/latest/download/install.sh | bash ``` ## Thank you Thank you to everyone who opened an issue or pull request, shared diagnostics, reviewed a change, or joined a discussion. This list covers issues and pull requests active since v5.10.4, including participants in their earlier discussions. | Contributor | Issues and pull requests | | --- | --- | | [@6UOOON9](https://github.com/6UOOON9) | [#447](SaladDay/cc-switch-cli#447) | | [@ChanthMiao](https://github.com/ChanthMiao) | [#409](SaladDay/cc-switch-cli#409) | | [@Curious-r](https://github.com/Curious-r) | [#441](SaladDay/cc-switch-cli#441), [#443](SaladDay/cc-switch-cli#443) | | [@czfhhh](https://github.com/czfhhh) | [#454](SaladDay/cc-switch-cli#454) | | [@Devin-Pi](https://github.com/Devin-Pi) | [#358](SaladDay/cc-switch-cli#358), [#446](SaladDay/cc-switch-cli#446) | | [@dividduang](https://github.com/dividduang) | [#358](SaladDay/cc-switch-cli#358) | | [@GMOogway](https://github.com/GMOogway) | [#433](SaladDay/cc-switch-cli#433) | | [@HappyLiang12](https://github.com/HappyLiang12) | [#448](SaladDay/cc-switch-cli#448) | | [@jinjiwu](https://github.com/jinjiwu) | [#436](SaladDay/cc-switch-cli#436), [#445](SaladDay/cc-switch-cli#445) | | [@JounQin](https://github.com/JounQin) | [#457](SaladDay/cc-switch-cli#457) | | [@kelvkhiu](https://github.com/kelvkhiu) | [#444](SaladDay/cc-switch-cli#444) | | [@moonjoke001](https://github.com/moonjoke001) | [#358](SaladDay/cc-switch-cli#358) | | [@netcatty](https://github.com/netcatty) | [#450](SaladDay/cc-switch-cli#450) | | [@neverdie0710](https://github.com/neverdie0710) | [#451](SaladDay/cc-switch-cli#451) | | [@odup](https://github.com/odup) | [#453](SaladDay/cc-switch-cli#453) | | [@paopjian](https://github.com/paopjian) | [#439](SaladDay/cc-switch-cli#439) | | [@RainyPixel](https://github.com/RainyPixel) | [#449](SaladDay/cc-switch-cli#449) | | [@SaladDay](https://github.com/SaladDay) | [#440](SaladDay/cc-switch-cli#440), [#442](SaladDay/cc-switch-cli#442), [#455](SaladDay/cc-switch-cli#455), [#456](SaladDay/cc-switch-cli#456), [#460](SaladDay/cc-switch-cli#460) | | [@suntory1](https://github.com/suntory1) | [#358](SaladDay/cc-switch-cli#358) | | [@SyaJask](https://github.com/SyaJask) | [#358](SaladDay/cc-switch-cli#358) | | [@tangjunyi1](https://github.com/tangjunyi1) | [#458](SaladDay/cc-switch-cli#458) | | [@TheBoYang](https://github.com/TheBoYang) | [#432](SaladDay/cc-switch-cli#432) | | [@tianzhuwei](https://github.com/tianzhuwei) | [#358](SaladDay/cc-switch-cli#358) | | [@Tonystarkw12](https://github.com/Tonystarkw12) | [#434](SaladDay/cc-switch-cli#434) | | [@u1544096979](https://github.com/u1544096979) | [#437](SaladDay/cc-switch-cli#437), [#438](SaladDay/cc-switch-cli#438) | | [@wangsiqidahaoren](https://github.com/wangsiqidahaoren) | [#459](SaladDay/cc-switch-cli#459) | | [@wbbo](https://github.com/wbbo) | [#435](SaladDay/cc-switch-cli#435) | | [@xiaoshidebug](https://github.com/xiaoshidebug) | [#452](SaladDay/cc-switch-cli#452) | We also thank [@farion1231](https://github.com/farion1231) and upstream CC-Switch contributors, including [@zayokami](https://github.com/zayokami) for the [OpenCode Zen reasoning fix](farion1231/cc-switch#6123), and [@misaka-myu](https://github.com/misaka-myu) for the [user-owned catalog fix](farion1231/cc-switch#6087). Some acknowledged reports and proposals remain open or are not included in this release; a thank-you does not imply that an issue is fixed or a pull request is merged. See the [full changelog](https://github.com/SaladDay/cc-switch-cli/blob/v5.10.5/CHANGELOG.md) and [all changes since v5.10.4](SaladDay/cc-switch-cli@v5.10.4...v5.10.5). </pre> <p>View the full release notes at <a href="https://github.com/SaladDay/cc-switch-cli/releases/tag/v5.10.5">https://github.com/SaladDay/cc-switch-cli/releases/tag/v5.10.5</a>.</p> </details> <hr> See merge request: Harmonybrew/homebrew-core!20243
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Port the user-owned model-catalog fix from the desktop upstream (farion1231/cc-switch#6087). When model mapping generates the Codex catalog, cc-switch-cli currently replaces any existing
model_catalog_jsonvalue withcc-switch-model-catalog.json. This PR makes the write side preserve user-managed catalog pointers.Problem
set_codex_model_catalog_json_fieldinsrc-tauri/src/codex_config.rshas two arms:Nonearm already checks ownership and only removes cc-switch-owned pointers.Somearm unconditionally writesCC_SWITCH_CODEX_MODEL_CATALOG_FILENAME, clobbering user paths such as~/.codex/model-catalog.local.json.Starting the Codex local route with model mapping enabled therefore rewrites
config.toml, breaking setups that depend on a user-managed catalog file. This builds on #265, which closed #260 by switching the same write to a relative filename.Fix
Mirror the
Nonearm's ownership rule in theSomearm: claim the pointer only when it is absent or already cc-switch-owned (matched by filename); otherwise leave the user's catalog path untouched. The generatedcc-switch-model-catalog.jsonfile is still written, so model-mapping based proxy routing keeps working.Testing
cargo fmt --checkpasses.cargo test --lib: 4334 passed, 0 failed, 2 ignored (CI-style sandbox environment).Somearm:set_catalog_json_some_preserves_user_owned_catalog(absolute custom path)set_catalog_json_some_preserves_user_owned_relative_filename(bare custom filename)model_catalog_json, enabling the Codex local route keeps the pointer inconfig.tomland multi-model routing continues to work.