[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"package:cask:cc-switch:ru":3,"releases:stats:cask:cc-switch:ru":440,"releases:cask:cc-switch:1:false:false:ru":441,"releases-count:cask:cc-switch:true:ru":583},{"accentColor":4,"artifacts":5,"autoUpdates":32,"categories":33,"conflictsWith":40,"dependsOn":43,"deprecated":36,"description":54,"descriptionEn":55,"developer":56,"disabled":36,"displayName":57,"downloadSha256":58,"downloadSize":59,"downloadUrl":60,"editorChoice":36,"formulaeUrl":61,"homepage":62,"iconUrl":63,"installCommand":64,"installs":65,"installs30d":66,"isFont":36,"isLibrary":36,"kegOnly":36,"kind":69,"latestRelease":70,"machineTranslated":36,"minMacos":53,"name":57,"names":77,"platforms":79,"primaryCategory":409,"rank30d":410,"releaseCount":411,"releaseStats":412,"repoUrl":62,"screenshots":418,"sourceLocale":422,"sourceUrl":427,"summary":428,"summaryTranslation":429,"supports":432,"tags":434,"tap":438,"token":78,"version":76,"versionChangedAt":439},"#E68C53",{"apps":6,"binaries":8,"entries":9,"pkgs":31},[7],"CC Switch.app",[],[10,17],{"declaration":11,"phase":14,"sources":15,"target":13,"type":16},{"app":12,"target":13},[7],"\u002FApplications\u002FCC Switch.app","install",[7],"app",{"declaration":18,"phase":28,"sources":29,"type":30},{"zap":19},[20],{"trash":21},[22,23,24,25,26,27],"~\u002F.cc-switch","~\u002FLibrary\u002FApplication Support\u002Fcom.ccswitch.desktop","~\u002FLibrary\u002FCaches\u002Fcom.ccswitch.desktop","~\u002FLibrary\u002FPreferences\u002Fcom.ccswitch.desktop.plist","~\u002FLibrary\u002FSaved Application State\u002Fcom.ccswitch.desktop.savedState","~\u002FLibrary\u002FWebKit\u002Fcom.ccswitch.desktop","cleanup",[],"zap",[],true,[34],{"icon":35,"machineTranslated":36,"name":37,"slug":38,"sourceLocale":39},"lucide:code-xml",false,"Developer Tools","developer-tools","zh-CN",{"casks":41,"formulae":42},[],[],{"arch":44,"casks":47,"formulae":48,"macos":49,"requirements":50},[45,46],"arm64","x86_64",[],[],">= 12",{"macos":51},{">=":52},[53],"12","CC Switch — настольный менеджер конфигурации с открытым исходным кодом для инструментов ИИ-кодирования. Он помогает разработчикам управлять адресами провайдеров, учетными данными, моделями, MCP-серверами, навыками, промптами, сессиями и использованием из единого интерфейса. Само приложение не предоставляет подписку на модель ИИ и не заменяет управляемые им клиенты для кодирования.\n\n## Возможности\n- Переключение параметров подключения к провайдерам с сохранением остальных настроек клиента.\n- Выбор прямых подключений, локальной маршрутизации с преобразованием и переключением при сбоях либо агрегации на основе моделей для поддерживаемых клиентов. Агрегация не обеспечивает переключение при сбоях.\n- Управление Claude Code, Claude Desktop, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw, Hermes, Pi и MiniMax Code; отдельные интеграции различаются.\n- Синхронизация поддерживаемых конфигураций MCP и навыков, а также редактирование промптов для конкретных инструментов.\n- Просмотр этапов сессий, результатов работы инструментов и изменений, поиск и экспорт переписки, возобновление поддерживаемых сессий.\n- Просмотр использования запросов, примерных расходов, квот провайдеров и сведений об учетных записях, если интеграции это поддерживают.\n\n## Установка и требования\nУстановите зарегистрированный Mac cask с помощью `brew install --cask cc-switch` либо скачайте официальный DMG, откройте его и скопируйте CC Switch в папку Applications. Официальная сборка для Mac универсальна и предназначена для Apple Silicon и Intel; требуется macOS12 или новее. По данным сопровождающего, сборка подписана и нотариально заверена. В cask не указаны дополнительные зависимости-формулы или явные конфликты. Настройте провайдера или импортируйте поддерживаемую существующую конфигурацию, затем выберите нужный режим. Для управляемых инструментов кодирования требуются собственные установки, среды выполнения, разрешения и учетные записи.\n\nСопровождающий также предоставляет пакеты для Windows10+ (включая сборки ARM) и Linux для x86_64\u002FARM64. Для Linux требуются glibc2.35+ и WebKitGTK4.1, например в Ubuntu22.04+ или Debian12+; RHEL\u002FRocky\u002FAlma8–9 не поддерживаются согласно заявленным требованиям выпуска. Поддерживаемая мобильная версия не подтверждена. В указанном руководстве не опубликованы минимальные требования к ОЗУ и свободному месту на диске. Проверенный DMG для Mac версии 4.0.4 имеет размер 33,926,314 байт; это размер загрузки, а не занимаемое после установки место.\n\n## Совместимость и обновления\nМаршрутизация и агрегация зависят от локального шлюза и поддержки протокола вышестоящей стороной. Для агрегации Claude Code требуется Claude Code2.1.243 или новее. После переключения перезапустите Codex, Gemini CLI и Grok Build, если появится запрос; изменения агрегации Claude Code применяются без перезапуска. Для сети WSL действуют отдельные требования к localhost.\n\nВерсия 4.0 меняет способ сохранения настроек и удаляет распространенные фрагменты конфигурации. Она переносит базу данных на схему 20 и автоматически создает резервную копию в `~\u002F.cc-switch\u002Fbackups\u002F`; клиент версии 3.x не сможет открыть новую базу данных. Перед откатом или изменением существующих настроек ознакомьтесь с официальными примечаниями к обновлению. Существующие предустановки провайдеров не заменяются новыми значениями по умолчанию без уведомления.\n\n## Учетные записи, расходы и лицензия\nCC Switch распространяется по лицензии MIT (авторское право принадлежит Jason Young); приложением можно пользоваться без покупки подписки CC Switch. У каждого провайдера ИИ отдельные способы аутентификации, стоимость подписки\u002FAPI и условия обслуживания. Для соответствующих операций провайдера нужны API-ключи и учетные данные; оценка стоимости запросов не является счетом. По умолчанию конфигурация и данные сессий хранятся локально в `~\u002F.cc-switch`. Синхронизация Cloud\u002FWebDAV и конечные точки ретрансляции предполагают отдельный выбор учетных записей и способов обработки данных.\n\nИсточники: [Официальный проект и требования](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch), [Примечания к выпуску 4.0.4 на английском языке](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fblob\u002Fmain\u002Fdocs\u002Frelease-notes\u002Fv4.0.4-en.md), [Лицензия](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fblob\u002Fmain\u002FLICENSE).","Configuration manager for AI coding agents","Jason Young (farion1231) and contributors","CC Switch","c85c1f643be8724c72d27b46e85c15a36e03e50354d1b7eb44f004d5627a2a60",33983250,"https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Fdownload\u002Fv4.0.5\u002FCC-Switch-v4.0.5-macOS.dmg","https:\u002F\u002Fformulae.brew.sh\u002Fcask\u002Fcc-switch","https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch","https:\u002F\u002Fcdn.opennavo.com\u002Ficons\u002Fuploads\u002Fefbe73b4642d\u002F50e788e99f3b-256.png","brew install --cask cc-switch",{"d30":66,"d365":67,"d90":68},2811,111713,24550,"cask",{"brewCommittedAt":71,"hasNotes":36,"isLatest":32,"isPrerelease":36,"sections":72,"source":73,"translation":74,"version":76},"2026-10-08T15:50:41Z",[],"homebrew",{"status":75},"none","4.0.5",[57,78],"cc-switch",[80,108,135,163,190,218,245,273,300,328,355,382],{"arch":46,"artifacts":81,"conflictsWith":96,"dependsOn":99,"downloadSha256":58,"downloadUrl":60,"macos":106,"minMacos":53,"requiresRosetta":36,"tag":107,"version":76},{"apps":82,"binaries":83,"entries":84,"pkgs":95},[7],[],[85,89],{"declaration":86,"phase":14,"sources":88,"target":13,"type":16},{"app":87,"target":13},[7],[7],{"declaration":90,"phase":28,"sources":94,"type":30},{"zap":91},[92],{"trash":93},[22,23,24,25,26,27],[],[],{"casks":97,"formulae":98},[],[],{"arch":100,"casks":101,"formulae":102,"macos":49,"requirements":103},[46],[],[],{"macos":104},{">=":105},[53],"27","golden_gate",{"arch":45,"artifacts":109,"conflictsWith":124,"dependsOn":127,"downloadSha256":58,"downloadUrl":60,"macos":106,"minMacos":53,"requiresRosetta":36,"tag":134,"version":76},{"apps":110,"binaries":111,"entries":112,"pkgs":123},[7],[],[113,117],{"declaration":114,"phase":14,"sources":116,"target":13,"type":16},{"app":115,"target":13},[7],[7],{"declaration":118,"phase":28,"sources":122,"type":30},{"zap":119},[120],{"trash":121},[22,23,24,25,26,27],[],[],{"casks":125,"formulae":126},[],[],{"arch":128,"casks":129,"formulae":130,"macos":49,"requirements":131},[45],[],[],{"macos":132},{">=":133},[53],"arm64_golden_gate",{"arch":46,"artifacts":136,"conflictsWith":151,"dependsOn":154,"downloadSha256":58,"downloadUrl":60,"macos":161,"minMacos":53,"requiresRosetta":36,"tag":162,"version":76},{"apps":137,"binaries":138,"entries":139,"pkgs":150},[7],[],[140,144],{"declaration":141,"phase":14,"sources":143,"target":13,"type":16},{"app":142,"target":13},[7],[7],{"declaration":145,"phase":28,"sources":149,"type":30},{"zap":146},[147],{"trash":148},[22,23,24,25,26,27],[],[],{"casks":152,"formulae":153},[],[],{"arch":155,"casks":156,"formulae":157,"macos":49,"requirements":158},[46],[],[],{"macos":159},{">=":160},[53],"26","tahoe",{"arch":45,"artifacts":164,"conflictsWith":179,"dependsOn":182,"downloadSha256":58,"downloadUrl":60,"macos":161,"minMacos":53,"requiresRosetta":36,"tag":189,"version":76},{"apps":165,"binaries":166,"entries":167,"pkgs":178},[7],[],[168,172],{"declaration":169,"phase":14,"sources":171,"target":13,"type":16},{"app":170,"target":13},[7],[7],{"declaration":173,"phase":28,"sources":177,"type":30},{"zap":174},[175],{"trash":176},[22,23,24,25,26,27],[],[],{"casks":180,"formulae":181},[],[],{"arch":183,"casks":184,"formulae":185,"macos":49,"requirements":186},[45],[],[],{"macos":187},{">=":188},[53],"arm64_tahoe",{"arch":46,"artifacts":191,"conflictsWith":206,"dependsOn":209,"downloadSha256":58,"downloadUrl":60,"macos":216,"minMacos":53,"requiresRosetta":36,"tag":217,"version":76},{"apps":192,"binaries":193,"entries":194,"pkgs":205},[7],[],[195,199],{"declaration":196,"phase":14,"sources":198,"target":13,"type":16},{"app":197,"target":13},[7],[7],{"declaration":200,"phase":28,"sources":204,"type":30},{"zap":201},[202],{"trash":203},[22,23,24,25,26,27],[],[],{"casks":207,"formulae":208},[],[],{"arch":210,"casks":211,"formulae":212,"macos":49,"requirements":213},[46],[],[],{"macos":214},{">=":215},[53],"15","sequoia",{"arch":45,"artifacts":219,"conflictsWith":234,"dependsOn":237,"downloadSha256":58,"downloadUrl":60,"macos":216,"minMacos":53,"requiresRosetta":36,"tag":244,"version":76},{"apps":220,"binaries":221,"entries":222,"pkgs":233},[7],[],[223,227],{"declaration":224,"phase":14,"sources":226,"target":13,"type":16},{"app":225,"target":13},[7],[7],{"declaration":228,"phase":28,"sources":232,"type":30},{"zap":229},[230],{"trash":231},[22,23,24,25,26,27],[],[],{"casks":235,"formulae":236},[],[],{"arch":238,"casks":239,"formulae":240,"macos":49,"requirements":241},[45],[],[],{"macos":242},{">=":243},[53],"arm64_sequoia",{"arch":46,"artifacts":246,"conflictsWith":261,"dependsOn":264,"downloadSha256":58,"downloadUrl":60,"macos":271,"minMacos":53,"requiresRosetta":36,"tag":272,"version":76},{"apps":247,"binaries":248,"entries":249,"pkgs":260},[7],[],[250,254],{"declaration":251,"phase":14,"sources":253,"target":13,"type":16},{"app":252,"target":13},[7],[7],{"declaration":255,"phase":28,"sources":259,"type":30},{"zap":256},[257],{"trash":258},[22,23,24,25,26,27],[],[],{"casks":262,"formulae":263},[],[],{"arch":265,"casks":266,"formulae":267,"macos":49,"requirements":268},[46],[],[],{"macos":269},{">=":270},[53],"14","sonoma",{"arch":45,"artifacts":274,"conflictsWith":289,"dependsOn":292,"downloadSha256":58,"downloadUrl":60,"macos":271,"minMacos":53,"requiresRosetta":36,"tag":299,"version":76},{"apps":275,"binaries":276,"entries":277,"pkgs":288},[7],[],[278,282],{"declaration":279,"phase":14,"sources":281,"target":13,"type":16},{"app":280,"target":13},[7],[7],{"declaration":283,"phase":28,"sources":287,"type":30},{"zap":284},[285],{"trash":286},[22,23,24,25,26,27],[],[],{"casks":290,"formulae":291},[],[],{"arch":293,"casks":294,"formulae":295,"macos":49,"requirements":296},[45],[],[],{"macos":297},{">=":298},[53],"arm64_sonoma",{"arch":46,"artifacts":301,"conflictsWith":316,"dependsOn":319,"downloadSha256":58,"downloadUrl":60,"macos":326,"minMacos":53,"requiresRosetta":36,"tag":327,"version":76},{"apps":302,"binaries":303,"entries":304,"pkgs":315},[7],[],[305,309],{"declaration":306,"phase":14,"sources":308,"target":13,"type":16},{"app":307,"target":13},[7],[7],{"declaration":310,"phase":28,"sources":314,"type":30},{"zap":311},[312],{"trash":313},[22,23,24,25,26,27],[],[],{"casks":317,"formulae":318},[],[],{"arch":320,"casks":321,"formulae":322,"macos":49,"requirements":323},[46],[],[],{"macos":324},{">=":325},[53],"13","ventura",{"arch":45,"artifacts":329,"conflictsWith":344,"dependsOn":347,"downloadSha256":58,"downloadUrl":60,"macos":326,"minMacos":53,"requiresRosetta":36,"tag":354,"version":76},{"apps":330,"binaries":331,"entries":332,"pkgs":343},[7],[],[333,337],{"declaration":334,"phase":14,"sources":336,"target":13,"type":16},{"app":335,"target":13},[7],[7],{"declaration":338,"phase":28,"sources":342,"type":30},{"zap":339},[340],{"trash":341},[22,23,24,25,26,27],[],[],{"casks":345,"formulae":346},[],[],{"arch":348,"casks":349,"formulae":350,"macos":49,"requirements":351},[45],[],[],{"macos":352},{">=":353},[53],"arm64_ventura",{"arch":46,"artifacts":356,"conflictsWith":371,"dependsOn":374,"downloadSha256":58,"downloadUrl":60,"macos":53,"minMacos":53,"requiresRosetta":36,"tag":381,"version":76},{"apps":357,"binaries":358,"entries":359,"pkgs":370},[7],[],[360,364],{"declaration":361,"phase":14,"sources":363,"target":13,"type":16},{"app":362,"target":13},[7],[7],{"declaration":365,"phase":28,"sources":369,"type":30},{"zap":366},[367],{"trash":368},[22,23,24,25,26,27],[],[],{"casks":372,"formulae":373},[],[],{"arch":375,"casks":376,"formulae":377,"macos":49,"requirements":378},[46],[],[],{"macos":379},{">=":380},[53],"monterey",{"arch":45,"artifacts":383,"conflictsWith":398,"dependsOn":401,"downloadSha256":58,"downloadUrl":60,"macos":53,"minMacos":53,"requiresRosetta":36,"tag":408,"version":76},{"apps":384,"binaries":385,"entries":386,"pkgs":397},[7],[],[387,391],{"declaration":388,"phase":14,"sources":390,"target":13,"type":16},{"app":389,"target":13},[7],[7],{"declaration":392,"phase":28,"sources":396,"type":30},{"zap":393},[394],{"trash":395},[22,23,24,25,26,27],[],[],{"casks":399,"formulae":400},[],[],{"arch":402,"casks":403,"formulae":404,"macos":49,"requirements":405},[45],[],[],{"macos":406},{">=":407},[53],"arm64_monterey",{"icon":35,"machineTranslated":36,"name":37,"slug":38,"sourceLocale":39},75,21,{"brewLag":413,"cadence":417,"count30d":414},{"compared":414,"earlierCount":415,"medianMinutes":416},3,2,-60,"weekly",[419],{"caption":420,"height":421,"machineTranslated":36,"sourceLocale":422,"theme":423,"thumbUrl":424,"url":425,"width":426},"Официальный4.0 пример интерфейса: карточки провайдеров, режимы Direct\u002FRouting\u002FAggregation и инструменты боковой панели в macOS.",849,"en-US","light","https:\u002F\u002Fcdn.opennavo.com\u002Fscreenshots\u002Fuploads\u002Fscreenshot\u002F58d0a56b0693\u002Fe72030ed8aa4-640.png","https:\u002F\u002Fcdn.opennavo.com\u002Fscreenshots\u002Fuploads\u002Fscreenshot\u002F58d0a56b0693\u002Fe72030ed8aa4-1280.png",1280,"https:\u002F\u002Fgithub.com\u002Fhomebrew\u002Fhomebrew-cask\u002Fblob\u002FHEAD\u002FCasks\u002Fc\u002Fcc-switch.rb","Настольный менеджер провайдеров ИИ-инструментов для кодирования, локальной маршрутизации, агрегации моделей, MCP, навыков, промптов, сессий и использования.",{"locale":430,"machineTranslated":36,"sourceLocale":422,"status":431},"ru-RU","manual",{"arm64":32,"requiresRosetta":36,"status":433,"x86_64":32},"known",[57,435,436,437],"MCP","Tauri","MIT","homebrew\u002Fcask","2026-10-09T07:15:26.193153Z",null,{"current":442,"records":443,"size":580,"stats":581,"total":411},1,[444,447,466,483,500,505,510,515,520,525,530,535,540,545,550,555,560,565,570,575],{"brewCommittedAt":71,"hasNotes":36,"isLatest":32,"isPrerelease":36,"sections":445,"source":73,"translation":446,"version":76},[],{"status":75},{"bodyMarkdown":448,"brewCommittedAt":449,"hasNotes":32,"id":450,"isLatest":36,"isPrerelease":36,"machineTranslated":36,"publishedAt":451,"sections":452,"source":461,"sourceLocale":422,"summary":462,"title":463,"translation":464,"version":465},"# CC Switch v4.0\n\n### Стабильный выпуск (4.0.4): новый интерфейс, режим Aggregation и более безопасное переключение конфигураций\n\nЭто первый стабильный выпуск v4.0, приложение обновится до него автоматически. В него вошло всё из предварительной версии 4.0, а также исправления и дополнения, внесённые во время тестирования, с 4.0.1 по 4.0.4.\n\nЭто самый масштабный выпуск CC Switch на сегодня. Мы переосмыслили основу работы с CC Switch: подключение к моделям, переключение провайдеров и управление растущим набором инструментов для программирования с помощью ИИ.\n\nИнтерфейс полностью переработан — от боковой панели до трея: для приложений, конфигурации, использования и сеансов теперь есть отдельные разделы. Новый режим Aggregation объединяет модели нескольких провайдеров в одном списке моделей Claude Code или Codex, позволяя переключаться между ними прямо в клиенте. Переработана и страница Usage: в журнале отображаются каждый запрос, расход токенов, стоимость и скорость генерации, а диапазон «All» показывает ежедневное использование за прошедший год в виде тепловой карты. Управление сеансами переписано с нуля: сразу видно, что ИИ сделал за каждый ход, что изменил и на каком шаге произошёл сбой. Перестроено и ядро записи конфигураций: при смене провайдера заменяются только ключевые поля, а не весь файл. Это значительно упрощает работу и устраняет целый класс проблем с потерей настроек. Теперь серверы MCP можно синхронизировать и с Pi — одна конфигурация MCP обслуживает сразу 8 инструментов программирования с ИИ.\n\n> **Обновляетесь с 3.x?** Изменились принцип переключения провайдеров, версия базы данных и некоторые настройки. Советуем сначала прочитать раздел «Перед обновлением» ниже.\n\n---\n\n## Обновлённый интерфейс\n\nВ новом интерфейсе используется боковая панель и оранжевая тема. Переключение приложений и общие функции — MCP, Skills, Prompts, Sessions, Accounts и Usage — доступны в один клик на боковой панели.\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fmain-en.png\" alt=\"Новый интерфейс: боковая панель, вкладки режимов и карточки провайдеров\" width=\"720\">\u003C\u002Fp>\n\n- **Режимы видны сразу**: На каждой странице приложения сверху есть три вкладки: Direct \u002F Routing \u002F Aggregation. Щелчок по вкладке меняет только отображение и не затрагивает конфигурацию. Кнопка фактического переключения режима поясняет, что произойдёт; вернуться к Direct можно за один шаг, и это действие можно отменить\n- **Все инструменты на одной странице**: На новой странице Apps указаны версии, места установки и источники каждого инструмента программирования с ИИ; доступны установка, обновление и пакетное обновление\n- **Упрощённая панель Add Provider**: Найдите и выберите готовую настройку, затем заполните форму. Поиск учитывает китайские названия и домены, а тарифы и регионы одного поставщика объединены в одну строку — теперь настройки Claude занимают заметно меньше места. Готовые провайдеры больше не выделяются как рекомендуемые\n- **Квота показывает остаток**: На карточках указано «осталось 5 часов, 94%» или «Баланс: 8.99 CNY», а под каждым уровнем отображается обратный отсчёт до сброса, например «⏱ 2ч30м». Квота остаётся ненавязчиво-серой: процент выделяется жирным при снижении ниже 10%, а баланс становится красным, только когда средства заканчиваются. Нажмите на него, чтобы проверить квоту и увидеть результат. Для подписок Codex также указаны число оставшихся отложенных сбросов и срок их действия, а для подписок ChatGPT — баланс Codex Credits, пересчитанный в доллары США по ценам API\n- **Трей сгруппирован по приложениям**: Каждая строка имеет вид «название · режим · провайдер · квота», а во вложенных меню перечислены только провайдеры, на которые можно переключиться сейчас. Значок в трее показывает точку, только если действительно требуется внимание\n- **Настройки сгруппированы по назначению**: General, App config, Local routing, Network, Data, About. Статус сервиса локальной маршрутизации, адрес прослушивания и настройки переключения при сбое собраны в одном месте\n- **Редактирование больше не открывает диалог**: Провайдеры, серверы MCP и prompts открываются на отдельной странице в области содержимого, а боковая панель остаётся доступной. Если есть несохранённые изменения, при нажатии на боковую панель, нажатии ⌘ или переключении из трея появится запрос подтверждения\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fapps-en.png\" alt=\"Страница Apps: версии, установка и обновления всех инструментов программирования с ИИ в одном месте\" width=\"720\">\u003C\u002Fp>\n\nПри первом запуске после обновления пользователи увидят краткое пояснение о перемещении элементов. После каждого обновления при первом запуске также отображается сводка изменений. Чтобы открыть её снова, нажмите «Recent updates» в Settings → About.\n\n---\n\n## Aggregation: много провайдеров, один список моделей\n\nРаньше, чтобы воспользоваться моделью другого провайдера, приходилось возвращаться в CC Switch, переключать провайдера и снова открывать клиент.\n\nВключите **Aggregation**, добавьте несколько провайдеров — и их модели появятся вместе в списке моделей Claude Code или Codex. Какую бы модель вы ни выбрали, запрос будет отправлен напрямую соответствующему провайдеру, не выходя из клиента.\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fagg-codex-en.png\" alt=\"Модели нескольких провайдеров в общем списке моделей Codex\" width=\"560\">\u003C\u002Fp>\n\n- **Добавляйте и удаляйте в любое время**: Нажмите «Add» или «Remove» на карточке провайдера, а затем выберите провайдера по умолчанию для запросов без указания агрегированной модели\n- **Сразу определяйте провайдера модели**: В названии каждой модели указан её провайдер, например «Kimi K3 (Kimi For Coding)», а в описании — фактический ID исходной модели и размер контекстного окна, например `kimi-k3 · 256K`\n- **Упрощённая форма**: При добавлении или редактировании провайдера на вкладке «Aggregation» сведения о подключении и список моделей находятся на одной странице — нужно заполнить только их. На вкладках «Direct» и «Routing» используется полная форма\n- **Используйте разные провайдеры в Codex без ошибок**: Выберите официальный аккаунт по умолчанию — официальные и сторонние модели будут отображаться рядом. При переключении между моделями разных провайдеров сохраняются уплотнение контекста и состояние рассуждений\n\n- **Переключайте модели во время сеанса**: Можно сменить модель прямо посреди сеанса. Учтите: после каждой смены новая модель заново формирует кэш промпта, поэтому первый ход после переключения заметно дороже\n- **Напоминания о перезапуске**: При изменении списка моделей Codex появится предложение перезапустить Codex; пользователи Codex CLI могут одним нажатием перезапустить фоновую службу с баннера. Изменения агрегированных моделей Claude Code вступают в силу сразу, без перезапуска\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fagg-en.png\" alt=\"Aggregation: один провайдер по умолчанию и шесть добавленных провайдеров\" width=\"720\">\u003C\u002Fp>\n\nAggregation — необязательный режим; сейчас он поддерживает Claude Code и Codex. Для агрегированного списка моделей Claude Code требуется Claude Code 2.1.243 или новее. В режиме Aggregation каждый запрос направляется по выбранной модели; переключения на резервный вариант нет.\n\n| Режим | Как направляются запросы | Для чего подходит |\n|------|---------------------|----------|\n| **Direct** | Клиент обращается напрямую к провайдеру | Повседневное использование |\n| **Routing** | Через локальную маршрутизацию к одному провайдеру, с преобразованием протокола и переключением при сбое | Несовместимые протоколы или необходимость переключения при сбое |\n| **Aggregation** | Через локальную маршрутизацию к нескольким провайдерам с распределением по моделям | Использование моделей нескольких провайдеров в одном сеансе |\n\n> **Посвящение opencodex**\n>\n> При разработке Aggregation мы многое почерпнули из [opencodex](https:\u002F\u002Fgithub.com\u002Flidge-jun\u002Fopencodex) и непосредственно использовали его идеи: добавлять префикс провайдера к ID модели, чтобы модели разных провайдеров могли отображаться в списках Claude Code и Codex; разрешить Codex уплотнять контекст сторонних моделей; определять, когда фоновая служба продолжает использовать старый список моделей, и предлагать перезапуск. Все эти идеи появились благодаря исследованиям opencodex. Благодарим автора ([@lidge-jun](https:\u002F\u002Fgithub.com\u002Flidge-jun)) и участников проекта за публикацию исходного кода и выражаем глубокое уважение их приверженности открытому ПО!\n>\n> Если вам нужен отдельный инструмент, который добавляет любую модель в Codex и Claude Code, настоятельно рекомендуем попробовать opencodex!\n\n---\n\n## Usage\n\n**Страница Usage** получила обновлённые метрики, график динамики, журнал запросов и четыре таблицы с постраничной навигацией для провайдеров, моделей и цен. Новый диапазон «All» показывает ежедневное использование в виде тепловой карты за 53 недель, а запросы за длительный период больше не зависают.\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fusage-en.png\" alt=\"Usage: тепловая карта за 53 недель и журнал запросов\" width=\"720\">\u003C\u002Fp>\n\n- **Скорость генерации** теперь рассчитывается только за время генерации, без ожидания первого токена. Даже без маршрутизации для запросов, импортированных из журналов сеансов Claude Code и Codex, оценивается скорость; она отмечена символом «≈»\n- **В таблицу моделей добавлены столбцы Success Rate и Speed**. Столбец «Average Cost» удалён; наведите курсор на стоимость, чтобы увидеть среднее значение\n- **В таблицах провайдеров и моделей учитываются токены кэша**, поэтому сумма по строкам совпадает с общим числом токенов вверху\n- Для данных об использовании, импортированных из журналов сеансов без маршрутизации, указывается провайдер, например «Claude Code · Session logs»; при наведении объясняется, почему определить конкретного провайдера невозможно\n- Записи об использовании обрабатываются в отдельном потоке, поэтому медленный диск больше не замедляет службу маршрутизации\n\n---\n\n## Переключайте провайдеров, сохраняя конфигурацию\n\nЭто важнейшее внутреннее изменение выпуска. Оно касается Claude Code, Codex, Gemini CLI, Grok Build и Claude Desktop.\n\nCC Switch появился в августе 2025, когда экосистема API была намного менее развитой, чем сейчас. Форматы API часто сильно различались у официальных и сторонних провайдеров, поэтому изначально при каждом переключении файл конфигурации переписывался целиком. Это решение повлекло за собой ряд проблем и усложнило работу. Теперь, когда экосистема стала зрелее, пришло время всё перестроить.\n\n**Раньше**: При переключении провайдеров весь файл конфигурации перезаписывался из сохранённой копии настроек этого провайдера. Добавленные вами хуки, плагины и разрешения в `settings.json` или серверы MCP в `config.toml` либо терялись при переключении, либо попадали в снимок настроек одного провайдера и исчезали при переходе на другой.\n\n**Теперь**: При переключении заменяются только конечная точка, учётные данные, модель и протокол, а также собственные переключатели провайдера. Всё остальное остаётся без изменений:\n\n- В файлах TOML и `.env` нетронутые строки, комментарии и порядок сохраняются побайтно\n- В файлах JSON значения и порядок всех остальных ключей сохраняются\n- Общие настройки просто остаются в файле конфигурации, поэтому функция «фрагмент общей конфигурации» больше не нужна\n\n**Редактор показывает предварительный вид файла конфигурации после переключения**. Изменённые в нём глобальные настройки записываются в файл, а перед сохранением CC Switch проверяет, не изменило ли его другое приложение.\n\nНовый механизм записи также обеспечивает несколько уровней защиты:\n\n- Если файл конфигурации не удаётся разобрать, запись прекращается, а исходный файл остаётся нетронутым\n- Перед записью проверяются внешние изменения: файл, только что сохранённый другой программой, не будет перезаписан\n- При одновременном изменении нескольких файлов намерение сначала записывается в журнал. Если приложение неожиданно завершится в процессе, при следующем запуске оно автоматически завершит операцию, не оставляя файлы в частично изменённом состоянии\n- Перед первой записью новой версии каждый файл сохраняется в исходном виде как резервная копия\n- Файлы конфигурации с ключами доступны для чтения и записи только вам\n\nВключение и отключение маршрутизации больше не зависят от резервного копирования и восстановления всей конфигурации. Когда Codex переключается на стороннего провайдера, данные для входа в ChatGPT, которые он перезаписывает, локально сохраняются и автоматически восстанавливаются при возврате к официальному аккаунту.\n\n---\n\n## Управление сеансами: наглядный обзор всех сеансов программирования с ИИ\n\nИнструменты ИИ для программирования сохраняют на вашем компьютере полную запись каждого сеанса, но необработанные журналы состоят из тысяч строк JSON и их почти невозможно читать. В этом выпуске управление сеансами полностью переработано, чтобы сделать записи максимально удобными для чтения, а также добавлены сведения об использовании токенов и стоимости каждого сеанса.\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fsession-en.png\" alt=\"Средство чтения сеансов: сводки шагов, подробности вызовов инструментов и структура диалога\" width=\"720\">\u003C\u002Fp>\n\n- **Девять клиентов — единый способ чтения**: сеансы Claude Code, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw, Hermes, Pi и MiniMax Code преобразуются в структурированное содержимое: текст, рассуждения, вызовы инструментов, результаты работы инструментов и изображения отображаются каждый в своем формате\n- **Один ход — одна строка сводки**: длинная последовательность действий ИИ сворачивается в одну строку, например «Шаги · 44 · 27 команд · изменено файлов: 2 · ошибок: 1 · 27м45с». Ошибочные команды отмечаются красным; при раскрытии отображаются их параметры, вывод и код завершения. Последовательности чтения файлов и поиска объединяются в «Прочитано файлов: N, выполнено поисков: N»\n- **Структура диалога**: на панели справа перечислены ваши запросы, число шагов в каждом ходе и его итог. Ходы с неудачными шагами помечены красной точкой; нажмите на нее, чтобы перейти к нужному месту\n- **Три режима просмотра**: «Все» показывает полный процесс, «Чат» — только реплики ваши и ИИ, а «Изменения» — только измененные файлы\n- **Весь сеанс как на ладони**: в заголовке показаны каталог проекта, время начала и окончания, число запросов и вызовов инструментов, модель, общее количество токенов и стоимость по ценам API\n- **Поиск в сеансе**: совпадения внутри свернутого вывода инструментов автоматически раскрываются и прокручиваются до нужного места; ввод остается плавным даже в длинных сеансах\n- **От просмотра — обратно к работе**: возобновите сеанс в любимом терминале (например, Ghostty) одним нажатием или скопируйте команду возобновления. Также можно экспортировать сеанс в Markdown и скопировать отдельный ход или весь диалог\n- **Список, в котором проще искать**: группируйте по проекту или времени, ищите по заголовкам, каталогам, первым и последним сообщениям или идентификаторам сеансов, удаляйте сразу несколько записей\n- Теперь поддерживаются сеансы OpenCode 2.x и новый формат сеансов Gemini CLI JSONL; сеансы Hermes снова открываются корректно\n\nПереработкой средства чтения сеансов руководил [@Owlbay](https:\u002F\u002Fgithub.com\u002FOwlbay). Огромное спасибо Owlbay за колоссальную работу.\n\n---\n\n## Синхронизация MCP с Pi\n\nВ Pi 1.0 есть встроенная поддержка MCP с тем же форматом конфигурации, что и в Claude Code. Включите синхронизацию для Pi на странице MCP, и существующие серверы MCP сразу станут доступны в Pi. Вместе с Claude Code, Codex, Gemini CLI, Grok Build, OpenCode, Hermes и MiniMax Code одну конфигурацию MCP теперь можно использовать для 8 инструментов программирования с ИИ.\n\n- **Записываются только параметры подключения**: собственные настройки Pi, такие как тайм-ауты, доступность инструментов и OAuth, остаются без изменений\n- **Отключение синхронизации не удаляет записи**: в Pi они лишь помечаются как отключенные, и настройки сохраняются, если снова включить синхронизацию\n- **Неподдерживаемые конфигурации сразу отмечаются**: серверы, использующие транспорт SSE, который Pi не поддерживает, а также серверы с особыми символами в имени не записываются в файл\n\nСинхронизацию MCP с Pi разработали [@Owlbay](https:\u002F\u002Fgithub.com\u002FOwlbay) и [@LystranG](https:\u002F\u002Fgithub.com\u002FLystranG).\n\n---\n\n## Другие улучшения\n\n- **Быстрые переключатели Claude Code**: добавлен параметр «Отключить проверки сервера в автоматическом режиме». Начиная с Claude Code 2.1.281 каждый сеанс через сторонний шлюз или локальную маршрутизацию сначала останавливался с уведомлением «не соответствует требованиям». Если установить этот флажок, проверка выполняется локально, и уведомление исчезает. Для новых сторонних провайдеров флажок установлен по умолчанию; не устанавливайте его для официальных конечных точек. После каждого быстрого переключателя теперь есть знак «?», поясняющий его назначение и то, является ли настройка глобальной или зависит от провайдера\n- **MCP**: вставляйте сразу несколько конфигураций серверов в форматах JSON, TOML, Codex или OpenCode. Если запись в одно приложение не удалась, можно повторить попытку только для него; сбой одного сервера больше не мешает синхронизации остальных\n- **Навыки**: разделы «Установленные» и «Обзор» объединены на одной странице; появилась кнопка «Обновить все» в одно нажатие и выбор способа синхронизации: автоматический, только символические ссылки или только копирование. В заголовке списка установленных навыков есть флажок «Выбрать все»\n- **Промпты**: управляйте промптами для восьми приложений на одной странице, копируйте их в другие приложения, импортируйте существующие файлы и отменяйте удаление\n- **Учетные записи**: учетные записи, повторный вход и оставшаяся квота — в одном месте\n- **Резервные копии — как на ладони**: в разделе «Резервное копирование и восстановление» появилась раскрывающаяся секция «Другие резервные копии» со сведениями о пути, размере и количестве элементов каждой категории резервных копий в `~\u002F.cc-switch`. Можно открыть место хранения или удалить целую категорию; перед удалением отображается список того, что будет потеряно\n- **Автозаполнение метаданных моделей**: при выборе полученной модели ее контекстное окно, предел вывода, уровни рассуждений и типы входных данных заполняются из предустановок и models.dev; уже введенные вами значения не перезаписываются\n- **Claude Desktop**: при сопоставлении моделей локальная служба маршрутизации запускается автоматически и останавливается, когда больше не нужна\n- **OpenCode**: поддерживается новая конфигурация провайдеров OpenCode 2.0. Можно читать и записывать конфигурации обоих форматов; ошибки формата указывают на конкретное поле. Можно выбирать варианты режима рассуждений: модели, для которых он поддерживается, помечаются автоматически, а варианты создает сам OpenCode. Комментарии и форматирование в `opencode.jsonc` сохраняются при синхронизации; отслеживается использование OpenCode 2.x\n- **MiniMax Code**: устанавливайте и обновляйте его на странице приложений, а при создании провайдера выбирайте собственный ключ провайдера\n- **Предустановки и цены**: добавлены предустановки Command Code, OpenCode Zen (Claude Code и Codex; использует одну строку с OpenCode Go) и MoArk (Claude Code, Codex, Pi, OpenCode, OpenClaw); обновлены цены Claude Opus 5.5, GPT-6 Sol \u002F Luna, MiMo V2.6 и других моделей; для всех существующих предустановок добавлены подходящие значки\n\n- **Упрощена диагностика по журналам**: при переключении провайдеров, а также при входе в режим маршрутизации или агрегации и выходе из него теперь записывается, откуда и куда произошло переключение и как оно прошло\n- **Переключатель проектов по умолчанию скрыт**: большинству пользователей проекты не нужны, поэтому при новых установках переключатель проектов больше не показывается на главной странице и в области уведомлений. Когда он понадобится, включите его в настройках. Если вы уже им пользуетесь, ничего не изменится\n\n---\n\n## Перед обновлением\n\n**Изменилось расположение настроек.** Общие настройки теперь хранятся в собственном конфигурационном файле клиента, а функция «фрагмент общей конфигурации» удалена. Временно выбранная в клиенте модель или уровень усилий рассуждения после переключения с провайдера и обратно возвращается к значению провайдера. Чтобы сохранить выбор, задайте его в редакторе провайдера.\n\n**Некоторые исправления вступят в силу после одного переключения.** Исправления каталога моделей Codex и истории сеансов применятся, когда CC Switch в следующий раз запишет конфигурацию Codex. Поэтому после обновления достаточно один раз переключить провайдера. Повторно синхронизируйте существующую конфигурацию MCP, чтобы удалить старое поле `type`.\n\n**Перезапускайте приложения по запросу после переключения.** Codex, Gemini CLI и Grok Build нужно перезапустить после смены модели; Codex также нужно перезапустить после изменения списка агрегации. Изменения агрегированных моделей Claude Code не требуют перезапуска.\n\n**Схема базы данных теперь версии 20.** Перед обновлением база данных автоматически копируется в `~\u002F.cc-switch\u002Fbackups\u002F` (файлы с именами, начинающимися на `db_backup_`). При последующем возврате к 3.x появится сообщение «Версия базы данных слишком новая».\n\n**Существующие карточки остаются без изменений.** Обновления предустановок применяются только к новым провайдерам. Например, для существующих провайдеров Claude параметр «Отключить проверки сервера в автоматическом режиме» не включается автоматически; если он вам нужен, отметьте его в редакторе. Новые цены подставляются задним числом только для запросов, ранее записанных по цене $0; стоимость остальных запросов за прошлые периоды не пересчитывается.\n\n**Для режима агрегации Claude Code требуется версия 2.1.243 или новее.** В этой версии Claude Code добавлена настройка `modelPicker`, через которую агрегированные модели отображаются в `\u002Fmodel`. Более ранние версии ее игнорируют, поэтому в `\u002Fmodel` не отображаются агрегированные модели. Выполните `claude --version`, чтобы проверить версию, и `claude update`, чтобы обновить программу.\n\n**Некоторые настройки удалены.** Удалены множители стоимости для отдельных провайдеров (цены ретрансляции уже включают множитель, поэтому повторное применение искажает значения); расширенные настройки проверки соединения (теперь используются встроенные значения по умолчанию); быстрые переключатели Claude «Режим товарищей по команде» и «Максимальное усилие рассуждений» (функции команды теперь встроены в каждый сеанс Claude Code, а максимальное усилие закрепляло за всеми сеансами самый дорогой уровень; если понадобится, используйте `\u002Feffort max` в сеансе). Переменные, уже записанные в конфигурацию, не удаляются.\n\n---\n\n## Исправления\n\n- **Диалоги Claude Code в учетной записи ChatGPT завершались ошибкой 400.** Официальный сервер Codex добавил поле в записи рассуждений, из-за чего следующий запрос отклонялся. Уже завершившиеся с ошибкой диалоги теперь восстанавливаются автоматически\n- **Если для Claude Code была сопоставлена модель GPT или Grok, отключение рассуждений все равно оставляло их на максимальном уровне.** Теперь отключение рассуждений снижает их уровень до низкого; неподдерживаемые целевой моделью уровни корректируются автоматически, а `\u002Feffort low` на GPT-5.x pro больше не вызывает ошибку 400\n- После выхода через `⌘Q`, пункт «Завершить» в Dock или выхода из учетной записи в macOS клиенты продолжали указывать на остановленную локальную службу маршрутизации\n- Ответы при использовании официального маршрута Codex приходили с большой задержкой, а использование фиксировалось как 0\n- Модели GPT в каталоге моделей Codex теряли официальные промпты, возможности инструментов и уровни рассуждений\n- Начиная с Codex 0.158 поле `type` в конфигурации MCP вызывало ошибки и даже могло помешать запуску Codex\n- Не удавалось разобрать аргументы вызовов инструментов MiniMax, а рассуждения некоторых моделей попадали в текст ответа\n- Некоторые вышестоящие серверы используют в потоковых ответах смешанные окончания строк LF и CRLF, из-за чего вызовы инструментов пропадали\n- Отклонение запроса вышестоящим сервером сообщалось как «достигнут предел вывода»; теперь отображается настоящая ошибка вышестоящего сервера с указанием причины\n- Claude Desktop с OpenCode Go завершал работу с ошибкой `400 MissingSessionID`; теперь локальная маршрутизация автоматически добавляет идентификатор сеанса\n- При импорте навыка другим приложениям ставилась отметка, хотя сам навык они не получали; синхронизация навыков также удаляла одноименные папки из каталога OpenClaw\n- Добавление или импорт промпта могло очистить созданный вручную файл промпта\n- Codex в WSL замедлял запуск и сканирование сеансов\n- Предустановка времени MCP завершала работу сразу после запуска; теперь она запускается с помощью `uvx mcp-server-time` (для уже добавленных серверов вручную измените команду на `uvx`, а аргумент — на `mcp-server-time`)\n- При обновлении некоторых CLI устанавливалась дополнительная копия npm\n- Файл базы данных не уменьшался после удаления старых журналов\n- Пункт «Сохранить и перезапустить службу» в настройках фактически не перезапускал службу\n- В macOS после обновления из приложения или смены каталога конфигурации перезапущенное окно открывалось позади других приложений (перезапуск этого обновления все еще выполняется старой версией, поэтому исправление начнет действовать со следующего обновления)\n- Пункт «Получить API-ключ» в Grok Build открывал обычную главную страницу, а предустановки Xiaomi MiMo для Hermes и OpenClaw по умолчанию выбирали модель без поддержки изображений\n\n---\n\n## Изменения после предварительной версии 4.0.0\n\nЕсли вы уже установили предварительную версию от 4.0.0 до 4.0.3, в этом разделе перечислены изменения, внесенные за время предварительного тестирования. Все они уже учтены в примечаниях выше.\n\n**Новое**: быстрый переключатель Claude Code «Отключить проверки сервера в автоматическом режиме» и пояснение к каждому переключателю; синхронизация MCP с Pi 1.0; полноэкранное редактирование серверов MCP и промптов с напоминанием сохранить изменения перед выходом; обзор «Другие резервные копии»; баланс Codex Credits; новая конфигурация провайдеров и варианты режима рассуждений в OpenCode 2.0; столбцы «Успешность» и «Скорость» в таблице моделей использования; предустановки OpenCode Zen и MoArk; выбор всех установленных навыков; журнал переключений; сводка изменений после каждого обновления.\n\n**Исправления**: сбой бесед в аккаунте ChatGPT с 400; рассуждения на полной мощности при выключенном режиме обдумывания; четыре строки одной модели вверху `\u002Fmodel` в режиме Aggregation Claude Code; приложения, проверенные при импорте Skill, не добавлялись в него; сопоставление моделей и агрегированные модели не работали после изменения другим инструментом настройки каталога моделей Codex; сессии Gemini CLI не отображались; Codex в WSL замедлял сканирование; ошибки upstream сообщались как превышение лимита вывода; Claude Desktop с OpenCode Go завершал работу с 400; терялись вызовы инструментов при потоковой передаче; в таблицах использования не учитывались токены кэша; запись данных об использовании замедляла маршрутизацию; предустановка time MCP завершалась при запуске; синхронизация данных Codex могла зависать; а также исправлены детали интерфейса: анимация боковой панели, разделитель, растягивание строк при выборе нескольких уровней рассуждения, рамка выбора периода и значки, заполнявшие свои поля.\n\n**Улучшения**: изменение агрегированных моделей Claude Code больше не требует перезапуска; форма провайдера соответствует открытой вкладке, а модели, полученные в полной форме Codex, можно сразу выбрать в таблице сопоставления моделей; быстрые переключатели Claude «Teammates Mode» и «Max Effort Thinking» удалены.\n\n**Новое в 4.0.4**:\n- В macOS после обновления в приложении или изменения каталога конфигурации перезапущенное окно выходит на передний план\n- В новых установках переключатель проектов по умолчанию скрыт\n- В узком окне Usage столбец Speed журнала запросов больше не вытесняется в область горизонтальной прокрутки\n- Предложение поставить звезду на странице About теперь отображается отдельной полосой, которую можно закрыть\n\n---\n\n## Благодарности\n\nСпасибо всем, кто внес вклад в этот выпуск:\n\n[@Owlbay](https:\u002F\u002Fgithub.com\u002FOwlbay) (переработка средства чтения сессий, тепловая карта использования и производительность, редактирование на всю страницу и напоминание о несохраненных изменениях, синхронизация MCP для Pi, предустановка time MCP, предустановки MiMo), [@qyinter](https:\u002F\u002Fgithub.com\u002Fqyinter) (масштабная доработка UI\u002FUX), [@allenxu09](https:\u002F\u002Fgithub.com\u002Fallenxu09), [@parkavenue9639](https:\u002F\u002Fgithub.com\u002Fparkavenue9639), [@ggbdpq](https:\u002F\u002Fgithub.com\u002Fggbdpq), [@SailingLoong](https:\u002F\u002Fgithub.com\u002FSailingLoong), [@DEAN-Cherry](https:\u002F\u002Fgithub.com\u002FDEAN-Cherry), [@LystranG](https:\u002F\u002Fgithub.com\u002FLystranG), [@lcgash](https:\u002F\u002Fgithub.com\u002Flcgash), [@Chris-Xie369](https:\u002F\u002Fgithub.com\u002FChris-Xie369), [@fisHarly0](https:\u002F\u002Fgithub.com\u002FfisHarly0), [@minc-nice-100](https:\u002F\u002Fgithub.com\u002Fminc-nice-100), [@funkpopo](https:\u002F\u002Fgithub.com\u002Ffunkpopo), [@ISuuuu](https:\u002F\u002Fgithub.com\u002FISuuuu), [@tingfeng347](https:\u002F\u002Fgithub.com\u002Ftingfeng347), [@Hexc01](https:\u002F\u002Fgithub.com\u002FHexc01), [@zhengkaics](https:\u002F\u002Fgithub.com\u002Fzhengkaics), [@7ten7](https:\u002F\u002Fgithub.com\u002F7ten7), [@2doright](https:\u002F\u002Fgithub.com\u002F2doright), [@RemindZ](https:\u002F\u002Fgithub.com\u002FRemindZ), [@M3chD09](https:\u002F\u002Fgithub.com\u002FM3chD09), [@Richard-Zhang1019](https:\u002F\u002Fgithub.com\u002FRichard-Zhang1019), [@YuxuZhou-CN](https:\u002F\u002Fgithub.com\u002FYuxuZhou-CN), [@Eureka0w0v0](https:\u002F\u002Fgithub.com\u002FEureka0w0v0), [@Ne1ther](https:\u002F\u002Fgithub.com\u002FNe1ther), [@h6rime](https:\u002F\u002Fgithub.com\u002Fh6rime), [@bigben446](https:\u002F\u002Fgithub.com\u002Fbigben446), [@szupzj18](https:\u002F\u002Fgithub.com\u002Fszupzj18), [@AnxForever](https:\u002F\u002Fgithub.com\u002FAnxForever)\n\nТакже благодарим [@PnutCN](https:\u002F\u002Fgithub.com\u002FPnutCN), [@Aaron-WealthTech](https:\u002F\u002Fgithub.com\u002FAaron-WealthTech), [@RuriLothlorien](https:\u002F\u002Fgithub.com\u002FRuriLothlorien), [@Ming-Sir-69](https:\u002F\u002Fgithub.com\u002FMing-Sir-69), [@juntaosun](https:\u002F\u002Fgithub.com\u002Fjuntaosun), [@killServer0](https:\u002F\u002Fgithub.com\u002FkillServer0), [@shangchaovo](https:\u002F\u002Fgithub.com\u002Fshangchaovo), [@gsmchen](https:\u002F\u002Fgithub.com\u002Fgsmchen), [@winter-maple](https:\u002F\u002Fgithub.com\u002Fwinter-maple), [@guangzh3n](https:\u002F\u002Fgithub.com\u002Fguangzh3n), [@AltCtrlFn](https:\u002F\u002Fgithub.com\u002FAltCtrlFn), [@R-Tsubasa](https:\u002F\u002Fgithub.com\u002FR-Tsubasa), [@Lingbou](https:\u002F\u002Fgithub.com\u002FLingbou), [@Enough1122](https:\u002F\u002Fgithub.com\u002FEnough1122), [@IAld010](https:\u002F\u002Fgithub.com\u002FIAld010) за подробные сообщения об ошибках, расследования и предложения, которые помогли нам выявить проблемы.\n\nОсобая благодарность проекту [opencodex](https:\u002F\u002Fgithub.com\u002Flidge-jun\u002Fopencodex): во многом дизайн Aggregation опирается на его исследования в области открытого исходного кода.\n\nИ спасибо всем, кто сообщал о проблемах или помогал воспроизводить ошибки. Полные технические подробности — в [CHANGELOG](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fblob\u002Fmain\u002FCHANGELOG.md).\n\n\n[Официальный выпуск версии](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Ftag\u002Fv4.0.4).","2026-10-07T12:59:54Z",625,"2026-10-07T14:00:21.503962Z",[453],{"area":454,"items":455},"Главное",[456,457,458,459,460],"Обновлены боковая панель, карточки провайдеров, управление приложениями и трей.","Агрегация моделей Claude Code и Codex от разных провайдеров.","Сохранение посторонних полей конфигурации и обнаружение внешних правок.","Новые представления сессий и использования; синхронизация MCP с Pi.","Схема БД 20; учтены миграция 3.x и перезапуск.","editorial","Первый стабильный выпуск 4.0: обновленный интерфейс, агрегация моделей нескольких провайдеров, безопасная запись конфигурации и новые представления сессий и использования.","CC Switch 4.0.4",{"locale":430,"machineTranslated":36,"sourceLocale":422,"status":431},"4.0.4",{"bodyMarkdown":467,"brewCommittedAt":468,"hasNotes":32,"id":469,"isLatest":36,"isPrerelease":36,"machineTranslated":36,"publishedAt":470,"sections":471,"source":461,"sourceLocale":422,"summary":479,"title":480,"translation":481,"version":482},"# CC Switch v3.20.4\n\n> В этом выпуске в основном исправления и одна новая интеграция: **MiniMax Code становится десятым управляемым приложением** — вместе с ним доступны провайдеры, MCP, Skills, промпты, просмотр сессий и статистика использования, тогда как модель по умолчанию, вход в систему и удаление сессий остаются под управлением самого MiniMax Code. Основные исправления касаются использования Codex через локальный прокси. В этом выпуске устранены четыре проблемы, делавшие Codex непригодным к работе: начиная с Codex 0.154, инструменты в `additional_tools` заставляли строгие Chat-шлюзы возвращать 400; один снимок экрана с `detail: \"original\"` приводил к тому, что все последующие запросы в сессии возвращали 400; при редактировании некоторых провайдеров Codex или переключении с них сохранённый API-ключ незаметно стирался; а карточку, привязанную к удалённой учётной записи ChatGPT, нельзя было ни переключить, ни привязать заново. В Claude Code снова работает автоматический режим с GitHub Copilot, а `\u002Feffort`, `xhigh` и `max`, как и усилие рассуждения Grok 4.6, передаются на выбранном уровне. Конфигурация сторонних провайдеров Claude Desktop теперь поддерживается и в Linux. **В этом выпуске выполняется миграция базы данных (v18 → v19); перед обновлением рекомендуем вручную создать резервную копию базы данных** — см. [Примечания к обновлению](#this-release-includes-a-database-migration).\n\n**[Китайская версия →](v3.20.4-zh.md) | [Японская версия →](v3.20.4-ja.md)**\n\n---\n\n## Главное: что теперь можно делать\n\n- **Управляйте MiniMax Code с помощью CC Switch** ([#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383), [#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578)): это десятое управляемое приложение. Провайдеры записываются в `~\u002F.minimax\u002Fconfig.yaml` вместе с собственными настройками MiniMax Code; можно использовать несколько провайдеров. MCP синхронизируется в обоих направлениях с `~\u002F.minimax\u002Fmcp.json`; доступны Skills и библиотека промптов `AGENTS.md`; предустановки берутся из каталога Pi — всего их 41. Модель по умолчанию, вход в систему и удаление сессий **по-прежнему управляются самим MiniMax Code** — CC Switch их не затрагивает.\n- **Просматривайте сессии и использование MiniMax Code на панели управления**: просматривайте сессии только для чтения и копируйте команду возобновления; данные об использовании импортируются постепенно в отдельный источник «MiniMax Code (Session)», а при первой синхронизации загружается история.\n- **Переключайте Claude Desktop на сторонних провайдеров в Linux** ([#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331), исправляет [#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855)): пути конфигурации соответствуют структуре macOS и Windows; сборка Flatpak также работает.\n- **Codex 0.154 и новее больше не получает 400 через Chat-шлюзы** ([#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454), исправляет [#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451), [#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158)): инструменты из `additional_tools` теперь правильно объединяются с запросом, а не превращаются в системное сообщение с `content: null`.\n- **Один снимок экрана больше не ломает всю сессию Codex** ([#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476), исправляет [#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495), [#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458)): уже повреждённые сессии восстанавливаются сразу после обновления, без ручного редактирования истории.\n- **При редактировании провайдера Codex или переключении с него сохранённый API-ключ больше не стирается** ([#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434), исправляет [#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433)).\n- **После удаления учётной записи ChatGPT привязанные к ней карточки Codex можно перепривязать или переключить** ([#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395), исправляет [#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392)).\n- **Используйте автоматический режим Claude Code с GitHub Copilot** ([#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404), исправляет [#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175)).\n- **`\u002Feffort` передаёт именно выбранный вами уровень** ([#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318), [#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531), исправляет [#7314](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7314), [#5367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5367)): `xhigh` больше не отбрасывается, у моделей, сопоставленных с Grok 4.6, снова передаётся усилие рассуждения, а `max` в GPT-5.6 и GPT-6 Astra больше не понижается до `xhigh`.\n- **Инструменты без описания больше не приводят к тому, что весь запрос возвращает 400** ([#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319), [#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378), исправляет [#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303)).\n- **Смотрите число выходных токенов в секунду в журнале запросов** ([#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369), исправляет [#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936)).\n- **Ищите модели и добавляйте их массово в форме провайдера OpenCode** ([#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515), исправляет [#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423)).\n\n---\n\n## Руководства\n\n- **[Claude Desktop](..\u002Fuser-manual\u002Fen\u002F2-providers\u002F2.6-claude-desktop.md)**: добавленные в этом выпуске пути конфигурации Linux, ограничения сборки Flatpak и обновлённая таблица поддерживаемых систем.\n- **[Добавление провайдеров](..\u002Fuser-manual\u002Fen\u002F2-providers\u002F2.1-add.md)**: различия между прямым подключением Codex через собственный Responses API и преобразованием маршрутизации Chat (в примерах провайдеров только для Chat теперь указаны Baidu Qianfan Coding Plan и StepFun Step Plan), а также три поля, которые теперь записывает переключатель «Скрыть указание ИИ».\n\n---\n\n> [!WARNING]\n>\n> ## Только официальные каналы (прочитайте)\n>\n> CC Switch — **полностью бесплатное приложение с открытым исходным кодом**; мы **не взимаем с пользователей плату**. Получайте программу только через указанные ниже официальные каналы:\n>\n> | Канал              | Только официальный источник                                                     |\n> | ------------------ | ------------------------------------------------------------------------------ |\n\n> | Сайт                | **[ccswitch.io](https:\u002F\u002Fccswitch.io)**                                         |\n> | Исходный код       | **[github.com\u002Ffarion1231\u002Fcc-switch](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch)** |\n> | Загрузки            | **[Релизы GitHub](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases)**        |\n> | Автор               | **[@farion1231](https:\u002F\u002Fgithub.com\u002Ffarion1231)**                               |\n> | Сообщить о подделке | **[Проблемы GitHub](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues)**            |\n>\n> **Любой сайт или клиент «CC Switch», который просит оплату, пополнение счёта или учётные данные, является подделкой.** Если вас обманом заставили заплатить, немедленно остановите платёж и сообщите об этом через раздел проблем GitHub.\n\n---\n\n## Обзор\n\nMiniMax Code — агент MiniMax для программирования; терминальная версия `mcode` и приложение для настольных компьютеров используют один каталог данных `~\u002F.minimax`. CC Switch управляет им в режиме добавления, как OpenCode, Hermes и Pi: каждый провайдер добавляется как запись в `custom_provider` файла `~\u002F.minimax\u002Fconfig.yaml`, несколько провайдеров могут работать одновременно, а изменения сохраняют остальные настройки MiniMax Code и учитывают блокировку файла конфигурации. MCP синхронизируется в обоих направлениях с `~\u002F.minimax\u002Fmcp.json`, Skills устанавливаются в `~\u002F.minimax\u002Fskills\u002F`, а библиотека промптов записывается в `~\u002F.minimax\u002FAGENTS.md`; просмотр сессий доступен только для чтения, а данные об использовании постепенно импортируются из собственной базы MiniMax Code. Область поддержки намеренно ограничена: модель по умолчанию, вход в систему, облачные функции и удаление сессий остаются под управлением MiniMax Code; локальный прокси, переключение при сбое, системный трей, фрагмент общей конфигурации и Profiles также его не охватывают. ([#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383), [#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578))\n\nНаиболее значимые исправления касаются использования Codex через локальный прокси. Начиная с 0.154, Codex помещает дополнительные инструменты, например плагины и пространства имён выполнения, в элемент ввода `additional_tools`; преобразователь принимал его за сообщение и создавал системное сообщение с `content: null`, из-за чего строгие Chat-шлюзы возвращали 400, а вложенные инструменты отбрасывались ([#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454)). Codex помечает снимки экрана значением `detail: \"original\"`, допустимым только в Responses API; при дословном копировании в Chat-запрос оно заставляло такие шлюзы, как Ark\u002FDoubao, SenseNova, GLM и vLLM, возвращать 400 для всего запроса. Поскольку Codex повторно отправляет полную историю при каждом запросе, одного изображения хватало, чтобы с этого момента каждый запрос в сессии завершался ошибкой ([#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476)). Ещё две проблемы связаны с данными учётных записей: у провайдеров Codex с собственным источником учётных данных сохранённый API-ключ перезаписывался пустыми актуальными данными авторизации при редактировании и сохранении провайдера либо переключении с него ([#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434)); после удаления учётной записи ChatGPT в Auth Center и повторного входа карточки, привязанные к старой учётной записи, сообщали «учётная запись не найдена» при каждом переключении, перехвате управления и восстановлении при запуске ([#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395)).\n\nИсправлено также несколько проблем в преобразуемых запросах Claude Code: инструменты без описания больше не отправляются с `\"description\": null` ([#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319), [#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)); классификатор автоматического режима с GitHub Copilot больше не получает 400 из-за параметра `stop` ([#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404)); `\u002Feffort xhigh` больше не отбрасывается, модели, сопоставленные с Grok 4.6, снова передают усилие рассуждения, а `max` в GPT-5.6 и GPT-6 Astra больше не понижается до `xhigh` ([#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318), [#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531)). Остальные исправления затрагивают установку Skills (идентификатор skills.sh, отличающийся от имени каталога, и репозитории с более чем 10,000 файлами, [#6381](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6381), [#7489](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7489)), повторное чтение промптами внешних изменений ([#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194)), общую конфигурацию OMO в WSL ([#7550](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7550)), определение версии на странице «О программе» ([#7346](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7346), [#7348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7348)) и панель задач Windows ([#6348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6348)). Среди новых функций: конфигурация сторонних провайдеров Claude Desktop теперь поддерживается в Linux ([#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331)), журнал запросов показывает число выходных токенов в секунду ([#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369)), а форма провайдера OpenCode позволяет искать загруженные модели и добавлять их массово ([#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515)).\n\nПредустановки также обновлены: отечественные предустановки Codex приведены в соответствие с документацией Responses API поставщиков (Kimi For Coding переходит на K2.8 Preview с контекстом 1M, DeepSeek по умолчанию использует `deepseek-flash`), китайский сайт MiniMax и BaiLing переходят на актуальные официальные домены, конечная точка семейства Codex для AICodeWith исправлена на `\u002Fv1`, добавлено несколько предустановок. 2026-09-12 DeepSeek отозвала объявление о том, что V4 Pro будет тарифицироваться по ценам V4.1 Flash, поэтому в этом выпуске отменено преждевременно внесённое в v3.20.3 изменение цены и восстановлен максимальный уровень. В выпуск включена миграция базы данных: `SCHEMA_VERSION` 18 → 19, добавляющая столбцы включения MiniMax Code в таблицы MCP и Skills.\n\n**Дата выпуска**: 2026-09-22\n\n**Объём изменений**: 46 коммитов | изменено файлов: 156 | +8,673 \u002F -684 строк\n\n---\n\n## Добавлено\n\n### MiniMax Code становится десятым управляемым приложением\n\n\nMiniMax Code (`app_type` — `mcode`) использует общий каталог данных для терминальной и настольной версий; по умолчанию это `~\u002F.minimax`, а переместить его можно с помощью `MINIMAX_DATA_DIR` (или прежней переменной `MAVIS_DATA_DIR`). ([#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383), [#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578))\n\n- **Провайдеры**: аддитивный режим, как в OpenCode, Hermes и Pi. Каждый провайдер — это запись в `custom_provider` файла `~\u002F.minimax\u002Fconfig.yaml`; карточка считается «Добавленной» только в том случае, если её ключ присутствует в файле. Форма использует структурированный редактор в стиле OpenCode и редактор JSON, поддерживая три формата API: `anthropic-messages`, `openai-completions` и `openai-responses`; пресеты основаны на каталоге пресетов Pi, 41 на момент выпуска. Пользовательские провайдеры, созданные в MiniMax Code, импортируются при загрузке списка, а внесённые там изменения синхронизируются обратно; провайдеры типа учётной записи (у которых `kind` не равно `custom`) не импортируются и не перезаписываются. При записи сохраняются все остальные ключи в `config.yaml`, а также учитывается блокировка каталога самим MiniMax Code `config.yaml.lock` (блокировка старше 10 секунд снимается; иначе сохранение завершается с предложением повторить попытку). Если запись исходного файла завершается ошибкой, изменения базы данных откатываются. После удаления провайдера из `config.yaml` его карточка немедленно обновляется до состояния «Не добавлен», и его можно добавить снова ([#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578)).\n- **Модель по умолчанию принадлежит MiniMax Code**: CC Switch никогда не записывает `defaultModel` \u002F `defaultLightModel`. Пока провайдер или модель используются одним из этих параметров, CC Switch отказывается удалять или отключать их; сначала выберите другую модель по умолчанию в MiniMax Code.\n- **MCP**: двусторонняя синхронизация с `~\u002F.minimax\u002Fmcp.json`. При редактировании заменяются только поля транспорта (`command`, `args`, `env`, `url`, `headers`, `type`), поэтому исходные параметры, например `timeout`, сохраняются. Сервер с тем же идентификатором, но другим транспортом пропускается с уведомлением, а не перезаписывается; полная повторная синхронизация не удаляет записи с выключенным переключателем — их удаляет только явное отключение или удаление. Если фиксация изменений в базе данных завершается ошибкой, исходный файл восстанавливается.\n- **Skills и промпты**: Skills развёртываются в `~\u002F.minimax\u002Fskills\u002F` с той же проверкой владения, что и в Pi, поэтому одноимённый Skill, развёрнутый не CC Switch, не затрагивается. Библиотека промптов записывает включённый промпт в `~\u002F.minimax\u002FAGENTS.md`: перед переключением внешние изменения файла сначала записываются обратно в текущий промпт; если промпт MiniMax Code ещё не включён, несопоставленное содержимое файла сначала сохраняется как резервный промпт. Отключение последнего промпта очищает файл; размер одного промпта ограничен 32 КиБ (подсчёт в байтах UTF-8).\n- **Глубокие ссылки**: поле `apps` в глубоких ссылках MCP принимает `mcode`; глубокие ссылки провайдеров для MiniMax Code отклоняются.\n- **Не входит в этот выпуск**: встроенные функции входа и облака MiniMax Code, перехват локального прокси и переключение при сбое, элемент в области уведомлений, фрагмент общей конфигурации, универсальные провайдеры, профили (на странице MiniMax Code переключатель профилей скрыт), тестирование провайдера для каждой карточки, переопределение каталога в настройках, а также установка или обновление через «Настройки → О программе».\n\n### Сеансы и использование MiniMax Code на панели управления\n\nПросмотрщик сеансов открывает `~\u002F.minimax\u002Fv2\u002Fsqlite\u002Fruntime-state.sqlite` только для чтения и показывает беседы MiniMax Code (скрытые, архивированные и дочерние сеансы, а также сеансы peek\u002Fchannel\u002Fcron не отображаются); для каждого сеанса доступна команда возобновления `env MINIMAX_DATA_DIR=\u003Cdir> mcode --session \u003Cid>` (в синтаксисе PowerShell для Windows). Сеансы связаны с состоянием среды выполнения MiniMax Code, поэтому удалить их через интерфейс нельзя; серверная часть также откажет в удалении.\n\nДанные об использовании постепенно импортируются из таблицы `local_runtime_token_usage` той же базы данных под источником «MiniMax Code (Session)»; на панели для него есть отдельный фильтр приложения. Токены рассуждений учитываются как выходные; идентификатор модели — часть после первого `\u002F` (`custom_provider:router\u002Fvendor\u002Fmodel` записывается как `vendor\u002Fmodel`). Если значение `cost_usd` самого MiniMax Code — конечное неотрицательное число, оно используется напрямую; если оно отсутствует, отрицательно или не является конечным числом, стоимость рассчитывается по таблице цен CC Switch. Строки, где исходная стоимость равна ровно $0, сохраняются как $0, однако, как и любые другие строки $0 с токенами, после появления цены модели в таблице цен они переоцениваются общей процедурой заполнения стоимости. Как и для Pi, при подсчёте итогов с учётом MiniMax Code отображается примечание о неполноте данных записи в кэш. ([#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383))\n\n### Поддержка конфигурации сторонних приложений Claude Desktop в Linux\n\nРанее запись конфигурации сторонних приложений Claude Desktop в Linux завершалась ошибкой из-за неподдерживаемой платформы. Теперь Linux использует ту же структуру файлов, что и macOS с Windows: корневой каталог конфигурации — `$XDG_CONFIG_HOME` (путь должен быть абсолютным), а если переменная не задана — `~\u002F.config`; CC Switch управляет файлами конфигурации в каталогах `Claude\u002F` и `Claude-3p\u002F` внутри него. При запуске CC Switch как Flatpak (определяется по `\u002F.flatpak-info`) программа всегда записывает данные в `~\u002F.config` хоста, а не в закрытый каталог песочницы `XDG_CONFIG_HOME`. Если Claude Desktop использует пользовательский каталог XDG, используйте нативный пакет. Включённый манифест Flatpak уже предоставляет доступ к домашнему каталогу. Пути macOS и Windows не изменились; руководство пользователя (zh\u002Fen\u002Fja) дополнено путями Linux и таблицей области поддержки. ([#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331), исправляет [#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855))\n\n### Журнал запросов показывает количество выходных токенов в секунду\n\nВ таблице журнала запросов скорость генерации указана рядом с выходными токенами (например, `1,234\u002F56 tps`), а на панели сведений о запросе — в скобках после выходных токенов. Если для потокового запроса зафиксировано время до первого токена, скорость = выходные токены ÷ (общая задержка − время до первого токена), то есть учитывается только генерация после первого токена; для непотоковых запросов используется полная задержка, поэтому скорость включает ожидание первого токена. Скорости от 1 округляются до целых чисел, а скорости ниже 1 отображаются с одним десятичным знаком. Для строк без выходных токенов или корректного временного интервала скорость не отображается. Это относится и к строкам, импортированным из журналов сеансов Claude Code, Codex и Gemini, в которых нет данных о задержке. Скорость вычисляется при отображении из сохранённых полей, схема и ведение журналов не меняются. ([#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369), исправляет [#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936))\n\n### Форма провайдера OpenCode: поиск моделей и массовое добавление\n\nПосле нажатия «Fetch Models» над формой появляется список с поиском и множественным выбором: фильтруйте по идентификатору модели или владельцу, отмечайте нужные модели (выбор сохраняется при изменении поискового запроса), а затем нажмите «Add selected (N)», чтобы добавить их разом; идентификатор модели используется и как ключ конфигурации, и как исходное отображаемое имя. Уже настроенные модели отмечены флажком, недоступны для выбора и помечены «Already added»; имена, лимиты и параметры существующих записей не меняются. При изменении Base URL или API Key список кандидатов очищается, а поздний ответ от предыдущего адреса отбрасывается; нажатие Enter в поле поиска не отправляет форму. Существующий выпадающий список выбора в каждой строке остаётся; в форме провайдера MiniMax Code, использующей те же поля OpenCode, есть такой же список. ([#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515), исправляет [#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423))\n\n### Новые пресеты\n\nKimi Global и Kimi For Coding Global ([#7526](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7526)), FluxA Token Plan и Soshow добавлены для семи приложений — Claude Code, Claude Desktop, Codex, Hermes, OpenClaw, OpenCode и Pi; два пресета Kimi Global предназначены для международного сайта Kimi (kimi.ai). В Codex также добавлены нативные пресеты Responses для StepFun API (внутреннего и международного), Baidu Qianfan (с оплатой по мере использования) и iFlytek Astron Coding Plan. Существующие провайдеры не затронуты.\n\n### Другие дополнения\n\n- **Цены для пяти моделей**: `grok-4.7`, `glm-5.3-flashx`, `hy4-preview` (Hunyuan Hy4 Preview), `qwen3.8-2.4t-a95b` и `qwen3.8-27b` ранее не имели записей о ценах, поэтому все их запросы учитывались по цене $0. После обновления при запуске выполняется заполнение исторических запросов с ценой $0 для этих идентификаторов. Для Grok 4.7 применяется базовый тариф для запросов с менее чем 200K токенов.\n- **Предложение поставить звезду на карточке About**: в карточку «Settings → About» добавлена строка с предложением поставить звезду на GitHub между заголовком и кнопками; нажатие открывает репозиторий. Кнопка GitHub перемещена в начало ряда кнопок.\n\n---\n\n## Изменено\n\n### Пресеты Codex для внутреннего рынка приведены в соответствие с документацией Responses каждого поставщика\n\n- **Kimi For Coding**: теперь `kimi-for-coding` обслуживается моделью K2.8 Preview; запись в каталоге переименована в «Kimi For Coding (K2.8 Preview)», размер контекстного окна увеличен с 262144 до 1048576, объявлена поддержка текстовых и графических входных данных, а уровни рассуждения расширены с одного `high` до `low` \u002F `high` \u002F `max` (по умолчанию `high`). Для `kimi-for-coding-highspeed` остаются 262144 и только `high`.\n- **DeepSeek**: в пресете теперь по умолчанию используется `deepseek-flash` (V4.1 Flash, текст и изображения) вместо прежнего псевдонима `deepseek-v4-flash`; для записи `deepseek-v4-pro` указана поддержка только текста, и обе записи соответствуют встроенному официальному каталогу DeepSeek. Карточки, в которых по-прежнему используется `deepseek-v4-flash`, работают как обычно, поскольку поставщик перенаправляет этот псевдоним на `deepseek-flash`.\n- **Tencent Hunyuan**: добавлена `hy4-preview` (960K входных токенов, только текст); модель по умолчанию остаётся `hy3`.\n- **платформа Qwen AI и QwenCloud с оплатой по мере использования**: добавлены модели с открытыми весами `qwen3.8-2.4t-a95b` (только текст) и `qwen3.8-27b` (текст и изображения).\n- **Протокол ни одного пресета не меняется**: четыре корпоративных пресета Tencent Token Plan остаются на Chat, поскольку TokenHub указывает, что Kimi K2.7 Code не поддерживает Responses, а DeepSeek V4 и GLM-5.2 там также преобразуются в Chat на стороне сервера.\n\n### Сайт MiniMax для Китая и BaiLing переходят на актуальные официальные домены\n\nПресеты MiniMax для Китая переходят с `api.minimaxi.com` на `api.minimax.cn` в семи приложениях (Claude Code и Claude Desktop используют `\u002Fanthropic`; Codex, Hermes, OpenClaw, OpenCode и Pi используют `\u002Fv1`), а ссылки на сайт и ключ API переходят на `platform.minimax.cn`. Определение использования Coding Plan распознаёт и новый, и старый домен и теперь проверяет имена узлов по отдельным меткам, поэтому похожие домены, например `api.minimax.cn.example.com`, больше не вызывают срабатывание. В Codex `minimax.cn` считается нативным Responses, и для него отключён `web_search`, как и для старого домена.\n\nBaiLing переходит с `api.tbox.cn` на `api.ant-ling.com` в тех же семи приложениях. Для шести приложений, которые по-прежнему используют `Ling-2.5-1T` (его больше нет в документации поставщика), теперь по умолчанию используется `Ling-2.6-1T`, как и в Codex; `Ling-2.6-1T` также зарегистрирована как текстовая модель — см. примечания к обновлению.\n\n### В Codex отключён `web_search` для конечных точек Responses StepFun, Baidu Qianfan и iFlytek Astron\n\n\nПо умолчанию Codex отправляет размещённый инструмент `web_search`, однако Responses API StepFun принимает только инструменты `function`, а в документации Responses для Qianfan с оплатой по мере использования и Astron размещённые инструменты также не перечислены. Для нативных карточек Responses на `stepfun.com`, `stepfun.ai`, `qianfan.baidubce.com` и `xf-yun.com` теперь записывается `web_search = \"disabled\"` в `~\u002F.codex\u002Fconfig.toml` (для Qianfan и Astron это мера предосторожности; подтверждения отказа нет). На этих доменах также размещены продукты Chat (StepFun Step Plan, Qianfan Coding Plan \u002F Token Plan, Astron Chat), поэтому домены целиком не считаются нативными Responses; настройка `web_search` для карточек Chat не затрагивается.\n\n### Другие изменения пресетов\n\n- В пресеты SudoCode.chat для Claude Code, Claude Desktop, Codex и Grok Build добавлена резервная конечная точка `api.sudorelay.com`, которая отображается в тесте скорости конечных точек; адрес по умолчанию остаётся `api.sudocode.chat`.\n- Сайт, ссылка регистрации и Base URL APIKEY.FUN во всех девяти приложениях меняются с `apikey.fun` на `apikey.fan`; Claude Code, Claude Desktop, Codex, Gemini и Grok Build сохраняют старый адрес как резервную конечную точку.\n\n---\n\n## Исправлено\n\n### Запросы Codex 0.154+ с `additional_tools` больше не получают 400 от шлюзов Chat\n\nНачиная с 0.154, Codex помещает дополнительные инструменты запроса (пространства имён выполнения `functions` \u002F `collaboration`, плагины) в один элемент входных данных `additional_tools`: `{\"type\":\"additional_tools\",\"role\":\"developer\",\"tools\":[…]}`, в котором есть `role`, но нет `content`. Конвертер Responses-to-Chat в Codex считал каждую запись с `role` сообщением и создавал `{\"role\":\"system\",\"content\":null}` в `messages[1]`; строгие шлюзы Chat сообщали `messages[1]: missing field \"content\"` и отклоняли весь запрос, а эти инструменты также незаметно отбрасывались при преобразовании и в Chat, и в Anthropic. Теперь обход сообщений пропускает этот контейнер; его инструменты удаляются из дубликатов и объединяются с верхнеуровневым `tools` (при совпадении имён приоритет имеет верхнеуровневое объявление), пространства имён раскрываются (`exec_command` в `functions` превращается в `functions__exec_command`), а в ответе имена преобразуются обратно в форму, распознаваемую Codex. Запросы без контейнера преобразуются побайтно, как и раньше. ([#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454), исправляет [#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451), [#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158))\n\n### Одно изображение `detail: \"original\"` больше не ломает сеанс Codex навсегда\n\nЕсли в записи модели каталога Codex объявлено `supports_image_detail_original`, Codex помечает изображения, возвращённые инструментами (например, снимки экрана `view_image`), значением `detail: \"original\"`, допустимым только в Responses API. При преобразовании в восходящий сервис Chat оно без изменений копировалось в `image_url.detail`, и строгие совместимые с OpenAI шлюзы (Ark\u002FDoubao, SenseNova, GLM, vLLM и другие) возвращали 400 для всего запроса. Codex повторно отправляет полную историю на каждом ходу, поэтому одно изображение приводило к сбою сеанса на всех последующих ходах, включая ходы только с текстом.\n\nИсправление состоит из двух частей: для изображений Chat прокси понижает `original` до `auto` (`auto`, `low` и `high` передаются без изменений), поэтому уже сломанные сеансы и версии Codex до 0.155.0, которые не исправляют свою историю самостоятельно, восстанавливаются сразу после обновления; кроме того, каталоги Codex, созданные для преобразования в Chat, всегда записывают `supports_image_detail_original: false`, поэтому Codex перестаёт отправлять `original` изначально. Вставленные непосредственно в диалог изображения никогда не затрагивались. ([#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476), исправляет [#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495), [#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458))\n\n### Редактирование провайдера Codex или переключение с него больше не удаляет сохранённый ключ API\n\nУ некоторых провайдеров Codex собственный источник учётных данных хранится в таблице `[model_providers.*]` (`env_key`, таблице `auth` \u002F `aws` или `Authorization` в `http_headers`). Такие провайдеры не передают токен в `config.toml`, а режим по умолчанию удаляет общую `~\u002F.codex\u002Fauth.json` при каждом переключении на стороннего провайдера, поэтому данные авторизации в текущем снимке всегда пусты, а `OPENAI_API_KEY` в базе данных — единственная копия ключа. Два сценария считали эту пустую авторизацию достоверной: диалог редактирования текущего провайдера заполнял форму по текущему снимку, а обратное заполнение при переключении записывало текущий снимок обратно в базу. В результате открытие редактора и сохранение без изменений либо простое переключение незаметно удаляли ключ; затем диалог скрипта использования считал карточку без ключа официальной подпиской и сбрасывал сохранённый скрипт.\n\nТеперь в обоих случаях «текущая авторизация без учётных данных» (`auth.json` отсутствует или содержит только маркер выхода из системы `auth_mode`) считается отсутствующим полем: сохранённые данные авторизации остаются, а текущий `config.toml` по-прежнему сохраняется как обычно. Если текущая авторизация содержит действительные учётные данные, они по-прежнему имеют приоритет, поэтому ручное редактирование `~\u002F.codex\u002Fauth.json` работает как прежде. ([#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434), исправляет [#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433))\n\n### После удаления аккаунта ChatGPT привязанные к нему карточки Codex можно перепривязать или переключить на другого провайдера\n\nУдаление управляемого аккаунта ChatGPT в Центре авторизации и повторный вход создают новый локальный идентификатор аккаунта, даже если пользователь ChatGPT и рабочая область те же. Карточки Codex, всё ещё привязанные к старому идентификатору, при каждом переключении маршрута, переключении режима перехвата, восстановлении при запуске и перепривязке выдавали `账号不存在: \u003Cid>` (аккаунт не найден), поэтому пользователи не могли ни сменить провайдера, ни выбрать новый аккаунт для этой карточки.\n\n\nТеперь при переключении различаются случаи «аккаунт удалён» и «аккаунт существует, но в активной конфигурации нет соответствующего токена»: если аккаунт удалён, снимается только маркер владения cc-switch, а `~\u002F.codex\u002Fauth.json` не затрагивается, поэтому тот же пользователь, позже вошедший через штатный Codex CLI, не будет удалён как управляемый cc-switch аккаунт. Аккаунт считается удалённым только после проверки сохранённого `codex_oauth_auth.json`; если файл не удаётся прочитать, он повреждён или аккаунт на самом деле всё ещё существует на диске, переключение прерывается, а активные файлы остаются без изменений — никаких предположений. Если привязка самой карточки нарушена, в сообщении об ошибке предлагается нажать «Выбрать аккаунт» на карточке провайдера, чтобы привязать его заново. Автоматическая повторная привязка не выполняется. ([#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395), исправляет [#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392))\n\n### Инструменты без описания больше не передаются как `null`\n\nПреобразователи Claude-to-OpenAI Chat и Claude-to-Responses дословно копировали `description` каждого инструмента в запрос, поэтому инструмент без описания превращался в `\"description\": null`, а строгие совместимые с OpenAI вышестоящие серверы отклоняли весь ход с ошибкой 400 `expected string, received null`. У размещённых Anthropic инструментов (например, `web_search`) описание по определению отсутствует; эту проблему также вызывают пользовательские инструменты и инструменты MCP без описания. Сбой затрагивает весь запрос, а не только такой инструмент. Отсутствующее или явно заданное как `null` описание теперь опускается, а все остальные значения передаются без изменений; поля по-прежнему записываются в порядке `name` → `description` → `parameters`, а инструменты с описанием сериализуются побайтно так же, как раньше, поэтому кэширование промптов не затрагивается. В преобразователе Codex Responses-to-Chat была та же проблема с функциональными инструментами; она также исправлена ([#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)). ([#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319), исправляет [#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303))\n\n### Автоматический режим Claude Code работает через GitHub Copilot\n\nКлассификатор автоматического режима Claude Code отправляет `stop_sequences` при каждой проверке безопасности. При работе через GitHub Copilot преобразование Anthropic-to-OpenAI Chat сопоставляло этот параметр с `stop`, а маршрут Chat Completions, который Copilot предоставляет для моделей Claude, возвращал 400 для этого параметра. Поэтому классификатор каждый раз завершался с ошибкой, хотя обычные диалоги работали нормально. Преобразованное `stop` теперь удаляется только для провайдера GitHub Copilot; другие совместимые с OpenAI вышестоящие серверы (например, OpenRouter) сохраняют его, как и прежде. ([#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404), исправляет [#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175))\n\n### Уровни `\u002Feffort` без изменений доходят до вышестоящих серверов OpenAI и Grok\n\nПри преобразовании уровня рассуждений Claude Code в формат OpenAI (`reasoning_effort` для Chat, `reasoning.effort` для Responses) обнаружились три недочёта; все они исправлены:\n\n- `\u002Feffort xhigh` отправляет `output_config.effort: \"xhigh\"` — значение, которое анализатор не распознавал. А поскольку явный `output_config.effort` перекрывает запасное значение `thinking`, уровень вообще не отправлялся. Теперь `xhigh` сопоставляется напрямую.\n- В списке моделей с поддержкой рассуждений были только серия `grok-4.5` и `grok-build-*`, поэтому у моделей Claude, сопоставленных с `grok-4.6` \u002F `grok-4.6-build`, терялись все уровни, включая `max`. Теперь в список добавлены `grok-4.6` и `grok-4.6-*`.\n- Явное значение `max` всегда понижалось до `xhigh`. Теперь `max` передаётся без изменений для `gpt-5.6`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna` и `gpt-6-astra`, которые поддерживают отдельный максимальный уровень; для остальных моделей по-прежнему используется `xhigh`.\n\nЗапросы с `low`, `medium` и `high` не изменились. ([#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318), [#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531), исправляет [#7314](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7314), [#6197](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6197), [#3389](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F3389), [#5367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5367))\n\n### Цена DeepSeek V4 Pro возвращена к максимальному тарифу\n\nПосле объявления DeepSeek о том, что «V4 Pro будет направляться на V4.1 Flash с 2026-09-14», в v3.20.3 для `deepseek-v4-pro` преждевременно установили тариф Flash ($0.30 \u002F $1.20 за миллион токенов, $0.006 за чтение из кэша). DeepSeek отозвала это объявление 2026-09-12, а V4 Pro продолжила тарифицироваться по исходной цене, поэтому запросы V4 Pro учитывались по цене намного ниже фактической. В этом выпуске цена возвращена к $1.32 за входные токены, $3.96 за выходные и $0.044 за чтение из кэша на миллион токенов (максимальный тариф, то есть CNY 9 \u002F 27 \u002F 0.3). Исправление переписывает только те строки, в которых все четыре столбца с ценами по-прежнему содержат значения, записанные v3.20.3 (0.3 \u002F 1.2 \u002F 0.006 \u002F 0); изменённые пользователем строки не затрагиваются. Идентификаторы семейства Flash, такие как `deepseek-v4-flash` и `deepseek-flash`, по-прежнему тарифицируются по тарифу V4.1 Flash.\n\n### Список промптов учитывает внешние изменения активных файлов\n\nЕсли глобальный `CLAUDE.md`, `AGENTS.md` или активный файл промпта другого приложения изменялся вне CC Switch, список промптов до перезапуска продолжал показывать старое содержимое из базы данных. Теперь при загрузке списка промптов перечитывается активный файл и обновляется включённый в данный момент промпт, если его содержимое изменилось; когда окно снова получает фокус, открытая панель промптов тоже обновляется (ожидая, пока не завершатся редактирование, подтверждение или запись). Обновляется только включённый промпт, остальные шаблоны не затрагиваются. Если файл отсутствует, недоступен для чтения, пуст или содержит только пробелы, сохранённое содержимое остаётся без изменений. Обновление пропускается во время синхронизации или восстановления. В Pi по-прежнему используется собственный механизм активации на основе `AGENTS.md`, поэтому это приложение не затрагивается. ([#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194))\n\n### Установка навыков: идентификаторы отличаются от имён каталогов, слишком много файлов в репозиториях\n\n\n- skills.sh передаёт `skillId` навыка как имя каталога, но идентификатор не обязательно совпадает с именем каталога в репозитории. Например, `tencent\u002FWeChatReading` публикует `name: weread-skills` в `skills\u002FSKILL.md`, поэтому установка не удавалась; даже после установки проверка обновлений искала навык только по имени каталога и не могла его найти. Теперь поиск сначала проверяет явно заданный путь и одноимённый каталог, а затем принимает `SKILL.md`, метаданные `name` которого совпадают с идентификатором (совпадение должно быть уникальным; если одинаковое имя указано в нескольких каталогах, установка отклоняется, а не выбирает один из них наугад). При проверке обновлений предпочтение отдаётся сохранённому исходному пути, поэтому навык продолжает обновляться, даже если его переместили или переименовали в репозитории. ([#6381](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6381), исправляет [#6365](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6365))\n- При установке навыка загружается архив всего репозитория GitHub; в репозитории вроде `hugohe3\u002Fppt-master`, содержащем 13,248 записей, превышался предел в 10,000 записей и установка завершалась ошибкой `ARCHIVE_TOO_MANY_ENTRIES`. Ограничение числа записей повышено до 30,000 для удалённых архивов, локальной установки ZIP-архивов и восстановления через WebDAV; фактическим ограничением по-прежнему остаётся бюджет распаковки 512 МиБ. ([#7489](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7489), исправляет [#7475](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7475))\n\n### Каталоги OpenCode в WSL также находят единую конфигурацию OMO\n\nЕсли каталог конфигурации OpenCode расположен в WSL (`\\\\wsl.localhost\\\u003Cdistro>\\home\\\u003Cuser>\\.config\\opencode` или `\\\\wsl$\\…`), OMO 4.19.3 и более поздних версий хранит единую конфигурацию в домашнем каталоге на стороне WSL (`~\u002F.omo\u002Fomo.jsonc` или `omo.json`). CC Switch искал её только в домашнем каталоге Windows и при отсутствии конфигурации незаметно возвращался к старому файлу плагина, который OMO больше не читает (`oh-my-opencode.jsonc`). Поэтому казалось, что переключение прошло успешно, хотя на самом деле оно не применялось. Теперь домашний каталог WSL определяется по пути каталога OpenCode в WSL, а чтение, запись и удаление сначала проверяют его; если единой конфигурации нет ни на одной из сторон, используется старый файл. ([#7550](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7550), исправляет [#7363](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7363))\n\n### Главное окно Windows сохраняет кнопку на панели задач при открытии из других точек входа\n\nПосле скрытого запуска или сворачивания в область уведомлений главное окно Windows скрывается с помощью `skip_taskbar(true)`, а сброс этого флага перед `show()` выполняется только при нажатии «Открыть главное окно» в области уведомлений. Если окно открывали любым другим способом, кнопка на панели задач не появлялась, и после однократного сворачивания окно становилось невозможно найти. Теперь все эти способы сначала вызывают `set_skip_taskbar(false)`: повторный запуск через ярлык или меню «Пуск», когда приложение уже работает; ссылки `ccswitch:\u002F\u002F`, переводящие фокус на главное окно; события открытия URL; а также экран восстановления базы данных, показываемый при несовпадении версий. ([#6348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6348))\n\n### Параметр «Скрыть указание на ИИ» также скрывает ссылки на сеансы Claude Code\n\nВ коммитах и PR, созданных Claude Code для веб-сеансов и сеансов Remote Control, содержится ссылка на сеанс claude.ai; она управляется отдельным параметром `attribution.sessionUrl`. Поэтому очистка только `commit` и `pr` больше не скрывала все указания на ИИ. Теперь переключатель «Скрыть указание на ИИ» в редакторе Claude записывает `attribution: {commit: \"\", pr: \"\", sessionUrl: false}` и отмечается только тогда, когда выполнены все три условия. При снятии отметки, как и прежде, удаляется весь объект `attribution`. ([#7053](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7053))\n\n### Определение версии на странице «О программе»: без загрузки полных метаданных npm и без путаницы между версиями Ubuntu и инструментов\n\n- Чтобы проверить актуальную версию инструментов, распространяемых через npm, загружался весь packument npm (14–25 МБ после распаковки для часто обновляемых пакетов, таких как Codex, OpenCode и OpenClaw), хотя требовалось лишь прочитать поле `dist-tags`. Кроме того, только у этой проверки не было тайм-аута в 15 секунд, поэтому использовался тайм-аут общего клиента — 600 секунд. При медленном соединении карточка могла оставаться в состоянии «Загрузка…» несколько минут. Теперь используется выделенная конечная точка `\u002F-\u002Fpackage\u002F{package}\u002Fdist-tags` (ответ занимает от десятков байт до нескольких КБ) с тайм-аутом 15 секунд; при превышении времени ожидания, сетевых ошибках и ответах 404 отображается «Неизвестно». ([#7346](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7346), исправляет [#7339](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7339))\n- В Windows проверка инструментов в WSL запускает `\u003Ctool> --version` через интерактивную оболочку входа и берёт первое `x.y.z` из стандартного вывода. При первом за день входе Ubuntu печатает MOTD («Добро пожаловать в Ubuntu 24.04.4 LTS …»), поэтому в карточке Claude Code отображалось `24.04.4`. Теперь перед запуском инструмента выводится строка-маркер, и анализируются только данные после последнего маркера. ([#7348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7348), исправляет [#7347](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7347))\n\n### Конечная точка Responses от Zhipu может получать список моделей\n\nКонечная точка OpenAI Responses от Zhipu (`https:\u002F\u002Fopen.bigmodel.cn\u002Fapi\u002Fv1`, базовый URL предустановки Zhipu GLM Codex) возвращает `\u002Fmodels` в формате удалённого каталога Codex (`models[].slug`), а не в формате `data[].id` от OpenAI \u002F Anthropic, поэтому запрос списка моделей в форме провайдера Codex всегда возвращал пустой результат. Если поля `data` нет, теперь выполняется резервное чтение `models[].slug`; если `data` присутствует, поведение не меняется. ([#7330](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7330))\n\n### Конечная точка семейства Codex у AICodeWith изменена на `\u002Fv1`\n\nКонечная точка Responses у AICodeWith — `https:\u002F\u002Fapi.aicodewith.ai\u002Fv1`; `\u002Fchatgpt\u002Fv1` в блоге поставщика — ошибка в документации (это подтверждено поставщиком). Предустановка Codex, а также предустановки Hermes, OpenClaw и Pi, использующие ту же конечную точку, теперь переключены на `\u002Fv1`. Существующие карточки необходимо отредактировать вручную — см. примечания к обновлению.\n\n### Claude Desktop предлагает контекст 1M для маршрутов DeepSeek V4\n\nСемейство DeepSeek V4 поддерживает контекст размером 1M, но пресеты Claude Desktop для этих моделей не включали `supports1m`, поэтому в списке моделей Claude Desktop не было варианта 1M. В пресетах DeepSeek (`deepseek-v4-pro` для Sonnet \u002F Opus, `deepseek-v4-flash` для Haiku), OpenCode Go (`deepseek-v4-flash`) и Baidu Qianfan Token Plan (`deepseek-v4-pro`) теперь везде указано 1M. Суффикс `[1m]` действует только локально в Claude Desktop; отправляемые провайдеру данные не меняются.\n\n### При переключении приложений список провайдеров возвращается вверх\n\nПри переключении приложений представление провайдера повторно использовало контейнер прокрутки, заменяя только анимированный список внутри него. Поэтому сохранялась позиция прокрутки предыдущего приложения: после переключения с длинного списка, прокрученного до конца, следующее приложение могло выглядеть как пустая страница. Теперь при переключении приложений основной контейнер страницы и контейнер списка провайдеров возвращаются в левый верхний угол перед отрисовкой. ([#5211](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5211))\n\n### Детали интерфейса\n\n- **Устаревшие уровни использования больше не отображаются**: после отключения скрипта использования или переключения на официальный шаблон подписки карточка провайдера больше не показывает кнопку раскрытия нескольких уровней из результата старого скрипта; это относится и к карточкам официальных провайдеров.\n- **Монохромные значки пресетов**: монохромные значки в окне выбора пресета теперь используют цвет переднего плана, как в предварительном просмотре формы и на карточках провайдеров (значки, такие как 9527CODE, раньше выглядели сероватыми).\n- **Значки провайдеров Pi**: провайдеры Pi без значка больше не сохраняются со значком приложения Pi; на карточке вместо этого отображается первая буква названия, как у пользовательских провайдеров в других приложениях. ([#6826](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6826))\n- **Формулировка на традиционном китайском**: подсказка о повторяющемся ключе в форме Pi теперь использует текст 「供應商識別碼」, соответствующий подписи поля. ([#7187](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7187))\n\n---\n\n## Примечания к обновлению\n\n### В этом выпуске выполняется миграция базы данных\n\n`SCHEMA_VERSION` 18 → 19: в таблицы `mcp_servers` и `skills` добавляется столбец `enabled_mcode`, по умолчанию отключённый. Миграция автоматически выполняется при первом запуске. CC Switch сначала пытается создать резервную копию базы данных и сохраняет её в `~\u002F.cc-switch\u002Fbackups\u002F` (имена файлов начинаются с `db_backup_`); однако сбой резервного копирования только записывается в журнал и не прерывает обновление. После запуска этого выпуска версии v3.20.3 и более ранние откажутся открывать базу данных с сообщением «Database version is too new», а откат возможен только путём восстановления резервной копии, сделанной до обновления. Для безопасности закройте CC Switch перед обновлением и вручную скопируйте файл:\n\n```bash\ncp ~\u002F.cc-switch\u002Fcc-switch.db ~\u002Fcc-switch-before-v3.20.4.db\n```\n\nВ Windows расположение по умолчанию — `%USERPROFILE%\\.cc-switch\\cc-switch.db`. Если вы изменили каталог конфигурации в настройках, база данных и `backups\u002F` находятся в этом каталоге.\n\n### MiniMax Code по умолчанию отображается в переключателе приложений\n\nЭто относится и к установкам, настройки которых были сохранены до этого выпуска. Если MiniMax Code вам не нужен, отключите его в разделе «Настройки → Отображение главной страницы».\n\n### Существующие данные MiniMax Code импортируются автоматически\n\n- Пользовательские провайдеры, уже имеющиеся в `~\u002F.minimax\u002Fconfig.yaml`, импортируются при первом открытии страницы MiniMax Code.\n- `~\u002F.minimax\u002FAGENTS.md` импортируется при запуске, только если библиотеки подсказок всех приложений ещё пусты (на практике — при новой установке), а размер файла не превышает 32 КиБ. У пользователей, обновивших программу и уже имеющих подсказки Claude, Codex или других приложений, автоматического импорта не будет; при первом включении подсказки MiniMax Code содержимое файла сначала сохраняется как резервная подсказка, поэтому ничего не теряется.\n- При первой синхронизации использования импортируется вся история из `local_runtime_token_usage`, поэтому в сводке MiniMax Code на панели сразу отображаются итоги по прошлому использованию.\n- Существующие серверы MCP и Skills по умолчанию отключены для MiniMax Code; пока вы не включите их вручную, CC Switch ничего не записывает в `~\u002F.minimax`.\n\n### Каталог данных MiniMax Code определяется только переменными окружения\n\nCC Switch считывает `MINIMAX_DATA_DIR`, затем `MAVIS_DATA_DIR` из собственного окружения и использует `~\u002F.minimax`, если ни одна из них не задана. В настройках нет параметра переопределения каталога; если MiniMax Code использует пользовательский каталог, CC Switch нужно запускать с той же переменной окружения.\n\n### Изменение модели по умолчанию в MiniMax Code\n\nЧтобы удалить или отключить провайдера либо модель, на которые ссылается `defaultModel` \u002F `defaultLightModel`, сначала выберите другую модель по умолчанию в MiniMax Code. Пока MiniMax Code блокирует конфигурацию, сохранение завершается ошибкой с предложением повторить попытку, а не ожиданием без конца.\n\n### Для карточек Codex, привязанных к удалённой учётной записи ChatGPT, нужна одна ручная перепривязка\n\nАвтоматической перепривязки нет: нажмите «Выбрать учётную запись» на карточке и выберите новый логин. Пока карточка не перепривязана, перехват Codex для неё включить нельзя; если он был включён при последнем выходе, восстановление при запуске отключит перехват Codex из-за сбоя проверки привязки, оставив `~\u002F.codex\u002Fauth.json` без изменений. После перепривязки включите перехват снова. ([#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395))\n\n### Уже удалённые ключи API Codex не восстанавливаются автоматически\n\nИсправление предотвращает только будущую потерю ключей. Если ключ провайдера Codex был потерян при предыдущем редактировании или переключении, введите его заново; если в результате был сброшен скрипт использования, его тоже нужно настроить снова. ([#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434))\n\n### Параметр «Скрыть атрибуцию ИИ» нужно включить ещё раз\n\nТеперь для включённого состояния переключателя также требуется, чтобы `attribution.sessionUrl` имело значение `false`, поэтому после обновления конфигурация, сохранённая в старом формате `{commit: \"\", pr: \"\"}`, отображается как выключенная. Повторное включение добавляет `sessionUrl: false`; существующие конфигурации автоматически не переписываются. ([#7053](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7053))\n\n### При открытии списка подсказок применяются внешние изменения активных файлов\n\n\nЕсли активный файл подсказок приложения (`CLAUDE.md`, `AGENTS.md` и т. д.) отличается от включённой подсказки и не пуст, при открытии списка подсказок содержимое файла перезаписывает данные в базе данных. Неактивные шаблоны не затрагиваются; Pi не включён. ([#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194))\n\n### Уровень усилий рассуждения соответствует выбранному уровню\n\n`\u002Feffort max` для `gpt-5.6`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna` и `gpt-6-astra` теперь действительно запрашивает уровень `max` ([#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531)); `\u002Feffort xhigh`, а также любой уровень для моделей, сопоставленных с `grok-4.6` \u002F `grok-4.6-*`, теперь передают уровень усилий рассуждения, тогда как раньше ничего не отправлялось ([#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318)). Расход токенов на рассуждение и задержка могут соответственно возрасти.\n\n### После обновления некоторые преобразованные запросы один раз теряют попадание в кэш префикса\n\nПосле обновления байтовое представление двух типов запросов изменится один раз и далее останется стабильным: во-первых, запросы Codex с носителем `additional_tools`, направляемые через нестрогие серверы Chat или Anthropic ([#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454)), где системное сообщение `content: null` исчезает, а инструменты носителя объединяются с `tools`; во-вторых, запросы с инструментами без описания, направляемые через нестрогие серверы, которые ранее принимали `\"description\": null` ([#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319), [#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)). Сериализация инструментов с описанием не меняется.\n\n### `Ling-2.6-1T` теперь считается текстовой моделью\n\nЭто относится ко всем провайдерам, использующим этот идентификатор, а не только к пресетам: если включён резервный режим обработки медиа прокси, перед отправкой запроса на сервер изображения заменяются маркером `[Unsupported Image]`.\n\n### Для Claude Desktop в Linux миграция не требуется\n\nПереключитесь на провайдера Claude Desktop и перезапустите Claude Desktop, как и на других платформах. Если в вашей собственной сборке Flatpak разрешения уже, чем в прилагаемом манифесте, предоставьте доступ на чтение и запись к `xdg-config\u002FClaude` и `xdg-config\u002FClaude-3p`, например (замените идентификатор приложения в конце на идентификатор собственной сборки):\n\n```bash\nflatpak override --user --filesystem=xdg-config\u002FClaude --filesystem=xdg-config\u002FClaude-3p com.ccswitch.desktop\n```\n\n### Старые провайдеры Pi без значка по-прежнему показывают значок Pi\n\nНа отображение первой буквы названия переходят только провайдеры, сохраняемые начиная с этого момента. Чтобы обновить старую карточку, просто измените её значок в форме. ([#6826](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6826))\n\n### Изменения пресетов затрагивают только вновь созданных провайдеров\n\nСуществующие карточки сохраняют снимок настроек, сделанный при их создании. В этом выпуске затрагиваются следующие элементы:\n\n- **Сайт MiniMax для Китая**: существующие карточки остаются на `api.minimaxi.com`; обнаружение использования, нативный каталог Responses Codex и переключатель `web_search` по-прежнему распознают этот домен и продолжают работать.\n- **BaiLing**: в существующих карточках остаётся `api.tbox.cn`, а приложения, кроме Codex, по-прежнему используют `Ling-2.5-1T`. Измените базовый URL и модель либо добавьте пресет заново.\n- **AICodeWith**: вручную измените существующие карточки Codex, Hermes, OpenClaw и Pi на `https:\u002F\u002Fapi.aicodewith.ai\u002Fv1`.\n- **APIKEY.FUN**: в существующих карточках остаётся `api.apikey.fun`.\n- **Резервная конечная точка `api.sudorelay.com` для SudoCode.chat**: записывается только в новые карточки Claude Code, Claude Desktop, Codex и Grok Build; существующие карточки могут добавить её как пользовательскую конечную точку в тесте скорости конечных точек.\n- **Каталоги моделей Codex**: строка K2.8 Preview для Kimi For Coding (окно 1M, `low` \u002F `high` \u002F `max`), модель DeepSeek по умолчанию `deepseek-flash` и текстовая строка `deepseek-v4-pro`, модель Hunyuan `hy4-preview` и строки моделей Qwen с открытыми весами. Добавьте их вручную в каталог моделей карточки либо добавьте пресет заново.\n- **Вариант 1M в Claude Desktop** (пресеты DeepSeek, OpenCode Go и Baidu Qianfan Token Plan): отметьте «Объявлять 1M» для соответствующего маршрута в редакторе провайдера либо добавьте пресет заново.\n- **Международный сайт Kimi**: существующие карточки Kimi по-прежнему используют китайские домены (`api.moonshot.cn` \u002F `api.kimi.com`); для ключей с международного сайта kimi.ai используйте новые пресеты Kimi Global \u002F Kimi For Coding Global.\n\n### Исправления каталога Codex применяются при следующем переключении провайдера\n\n`config.toml` и файлы каталога создаются заново при переключении провайдера. В этом выпуске затрагиваются следующие элементы: карточки с серверами Chat больше не объявляют `supports_image_detail_original` ([#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476)); нативные карточки Responses для `stepfun.com`, `stepfun.ai`, `qianfan.baidubce.com`, `xf-yun.com` и `minimax.cn` записывают `web_search = \"disabled\"`; карточки для `minimax.cn` используют нативный каталог Responses; а `Ling-2.6-1T` объявляется текстовой моделью. Один раз переключитесь с затронутых карточек на другую и обратно. Понижение `original` до `auto` на стороне прокси применяется сразу, а для сеансов, уже нарушенных из-за снимка экрана, не требуется вручную редактировать историю.\n\n### Цены\n\n- Пять новых строк цен добавляются с помощью `INSERT OR IGNORE` (уже добавленные вами одноимённые строки сохраняются), а при запуске для исторических запросов с этими идентификаторами, ранее записанных с ценой $0, заполняются расходы; строки с ненулевой стоимостью не меняются.\n- Исправление `deepseek-v4-pro` возвращает значения строки к 1.32 \u002F 3.96 \u002F 0.044, только если в ней всё ещё указаны в точности 0.3 \u002F 1.2 \u002F 0.006 \u002F 0, установленные v3.20.3; пользовательские строки не затрагиваются, однако строку, вручную установленную ровно в эти значения, отличить невозможно, поэтому она тоже будет сброшена. Стоимость V4 Pro, записанная во время v3.20.3, _не_ пересчитывается, поскольку при заполнении обрабатываются только строки со стоимостью $0 или меньше и с данными об использовании токенов. Поэтому по восстановленной цене тарифицируются только запросы после обновления.\n- Для Grok 4.7 применяется базовый тариф к запросам с числом токенов меньше 200K; xAI взимает двойную плату ($4 \u002F $12) за запросы с 200K токенов и больше, однако таблица цен не различает этот уровень.\n\n---\n\n## Предупреждение о рисках\n\n### Сохранённые предупреждения\n\n**Вход в xAI Grok через OAuth**: используется публичная идентификация OAuth-клиента официального Grok CLI; это может привести к ограничению или блокировке аккаунта — подробности см. в [примечаниях к выпуску v3.18.0](v3.18.0-en.md#risk-notice).\n\n**Обратный прокси Codex OAuth**: использование Codex OAuth подписки ChatGPT через обратный прокси может нарушать условия предоставления услуг OpenAI. Подробности см. в [примечаниях к выпуску v3.13.0](v3.13.0-en.md#️-risk-notice).\n\n**Запросы квоты SuperGrok**: отображение квоты на карточках провайдеров зависит от непубличного платёжного интерфейса grok.com и может перестать работать, если xAI изменит его, — подробности см. в [примечаниях к выпуску v3.19.0](v3.19.0-en.md#risk-notice).\n\n**Маршрутизация через сторонних провайдеров**: когда локальный прокси CC Switch преобразует запросы Codex, Claude Desktop или Grok Build и перенаправляет их стороннему провайдеру, у каждого провайдера свои ограничения в отношении оплаты, соответствия требованиям и хранения данных. Перед использованием ознакомьтесь с условиями предоставления услуг целевого провайдера.\n\nВключая эти функции, пользователи принимают связанные с ними риски. CC Switch не несёт ответственности за ограничения аккаунта, предупреждения или приостановку обслуживания, вызванные их использованием.\n\n---\n\n## Благодарности\n\n28 из 46 коммитов этого выпуска внесены 22 внешними участниками, 11 из них внесли вклад впервые.\n\n### Вклад в код\n\n- Спасибо @SaladDay за интеграцию MiniMax Code ([#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383)) и восстановление карточек Codex, привязанных к удалённому аккаунту ChatGPT ([#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395), исправляет [#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392)).\n- Спасибо @thisTom за обновление карточки после удаления провайдера MiniMax Code ([#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578)).\n- Спасибо @Railgun-wiki за поддержку сторонней конфигурации Claude Desktop в Linux ([#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331), исправляет [#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855)) — это их первый вклад. @vianrina предложил ту же функцию в [#7389](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7389); два улучшения — проверка тестами и таблица поддерживаемых сценариев в руководстве — вошли в этот выпуск.\n- Спасибо @SailingLoong за обработку носителя `additional_tools` ([#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454), исправляет [#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451), [#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158)), отказ от отправки `null` для инструментов без описания ([#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319), исправляет [#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303); аналогичное исправление для пути Codex — [#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)), а также за передачу параметров усилия рассуждения Grok 4.6 и `xhigh` ([#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318), исправляет [#7314](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7314), [#6197](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6197), [#3389](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F3389)); @BigStrongSun сообщил о [#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158) и ранее предложил исправление в [#6159](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6159).\n- Спасибо @nameserendipity за двухуровневое исправление изображений Codex `detail: \"original\"` ([#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476), исправляет [#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495), [#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458)) — это их первый вклад. @szupzj18 ранее предлагал исправление для Ark в [#6515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6515), а @somnifex также предложил другое исправление в [#7104](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7104).\n- Спасибо @YUZHEthefool за исправление, из-за которого сохраняемый API-ключ Codex удалялся ([#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434), исправляет [#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433)); @SailingLoong ранее предложил такое же исправление в [#7492](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7492).\n- Спасибо @liuziyuan за исправление классификатора автоматического режима в GitHub Copilot ([#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404), исправляет [#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175)) — это их первый вклад.\n- Спасибо @2doright за сохранение уровня `max` для GPT-5.6 и GPT-6 Astra ([#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531), исправляет [#5367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5367)) — это их первый вклад.\n- Спасибо @juexe за отображение скорости вывода токенов в секунду в журнале запросов ([#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369), исправляет [#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936)) — это их первый вклад.\n- Спасибо @funkpopo за поиск моделей и их массовое добавление в форму OpenCode ([#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515), исправляет [#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423)) — это их первый вклад.\n- Спасибо @allenxu09 за запрос подтверждения при чтении внешних изменений активных файлов ([#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194)).\n- Спасибо @xwil1 за установку и обновление навыков skills.sh, идентификаторы которых отличаются от имён каталогов ([#6381](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6381), исправляет [#6365](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6365)).\n- Спасибо @yovinchen за установку больших репозиториев навыков ([#7489](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7489), исправляет [#7475](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7475)).\n- Спасибо @fszcd за обнаружение единой конфигурации OMO в WSL ([#7550](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7550), исправляет [#7363](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7363)) в продолжение их более ранней работы [#7367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7367).\n- Спасибо @misaka-myu за кнопку панели задач главного окна Windows ([#6348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6348)).\n\n- Спасибо @sj817 за «Скрыть атрибуцию ИИ» для ссылок на сеансы ([#7053](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7053)); это их первый вклад.\n- Спасибо @lyfuci за проверку npm dist-tags ([#7346](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7346), исправляет [#7339](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7339)) и устранение влияния MOTD на определение версии WSL ([#7348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7348), исправляет [#7347](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7347), о чём автор сообщил сам); это их первый вклад. Ранее @NineSu добавил тайм-аут для той же проверки в [#7307](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7307).\n- Спасибо @xwwwb за список моделей для эндпоинта Responses от Zhipu ([#7330](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7330)); это их первый вклад.\n- Спасибо @Muleizhang за сброс положения прокрутки при переключении приложений ([#5211](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5211), продолжение их предыдущей работы [#4397](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F4397)).\n- Спасибо @JackieJK за отображение первой буквы имени, если значок провайдера Pi отсутствует ([#6826](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6826)); это их первый вклад.\n- Спасибо @ntdatt812 за единообразные формулировки в форме Pi на традиционном китайском ([#7187](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7187)).\n- Спасибо @ysntony за пресеты международного сайта Kimi ([#7526](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7526)) и изменения ссылок Kimi в README ([#7522](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7522)); это их первый вклад.\n\n### Сообщения об ошибках\n\n- Спасибо @zhanghuihubei и @BigStrongSun за сообщение о том, что `additional_tools` Codex 0.154 превращается в пустое системное сообщение при преобразовании Chat ([#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451), [#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158)).\n- Спасибо @ywy0 и @BAOfanTing за сообщение о том, что снимки экрана Codex возвращают 400 через Ark\u002FDoubao и SenseNova ([#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495), [#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458)).\n- Спасибо @paiguFK за сообщение об удалении API-ключа после редактирования провайдера Codex ([#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433)).\n- Спасибо @phjzs за сообщение о незакрытой привязке после удаления учётной записи ChatGPT и повторного входа ([#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392)).\n- Спасибо @Syuryuuki за сообщение о том, что инструменты без описания выдают `null` и вызывают 400 ([#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303)).\n- Спасибо @JoaquinHJ за сообщение о невозможности использовать классификатор автоматического режима с GitHub Copilot ([#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175)).\n- Спасибо @NorthDream-Y и @xiaodream551-a11y за сообщение о потере усилия рассуждения Grok 4.6 и понижении `max` у GPT-5.6 ([#7314](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7314), [#5367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5367)); также спасибо @bowendeng286-cmd и @icannotwait за сообщение о том, что `xhigh` и другие уровни усилий рассуждения не применяются при маршрутизации через протокол OpenAI ([#6197](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6197), [#3389](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F3389)).\n- Спасибо @xngch за запрос поддержки Claude Desktop в Linux ([#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855)).\n- Спасибо @Morganwan90 и @CrazyFigure за сообщение о сбоях установки Skills ([#6365](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6365), [#7013](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7013), [#7475](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7475)); также спасибо @jambo200 за запрос увеличения лимита записей ZIP ([#7513](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7513)).\n- Спасибо @liushilongpku за сообщение о том, что единая конфигурация OMO не обнаруживается в WSL ([#7363](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7363)).\n- Спасибо @netszzy за сообщение о том, что определение версии загружало все метаданные npm без тайм-аута ([#7339](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7339)).\n- Спасибо @sberry007 за предложение показывать скорость вывода в журнале запросов ([#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936)).\n- Спасибо @Zingsun за запрос возможности напрямую добавлять полученные модели в конфигурацию OpenCode ([#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423)).\n\n---\n\n## Загрузка и установка\n\nПерейдите на страницу [Releases](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Flatest) и загрузите сборку для своей системы либо скачайте её с официального сайта [ccswitch.io](https:\u002F\u002Fccswitch.io) (загрузки распространяются через узлы Cloudflare на границе сети и не зависят от доступности GitHub).\n\n### Системные требования\n\n| Система | Минимальная версия | Архитектура |\n| ------- | ------------------ | ----------- |\n| Windows | Windows 10 и новее | x64 \u002F ARM64 |\n| macOS | macOS 12 (Monterey)+ | Intel (x64) \u002F Apple Silicon (arm64) |\n| Linux | См. таблицу ниже | x64 \u002F ARM64 |\n\n### Windows\n\n| Файл | Описание |\n| ---- | -------- |\n| `CC-Switch-v3.20.4-Windows.msi` | **Рекомендуется** — установщик MSI с автообновлением |\n| `CC-Switch-v3.20.4-Windows-Portable.zip` | Портативная сборка: распакуйте и запустите |\n\nНа устройствах Windows ARM64 выберите файл, в имени которого есть метка `arm64`.\n\n### macOS\n\n| Файл | Описание |\n| ---- | -------- |\n| `CC-Switch-v3.20.4-macOS.dmg` | **Рекомендуется** — установщик DMG; перетащите в Applications |\n\n| `CC-Switch-v3.20.4-macOS.zip` | Распакуйте и перетащите в Applications; универсальный бинарный файл |\n| `CC-Switch-v3.20.4-macOS.tar.gz` | Для установки и автообновления через Homebrew |\n\nУстановка через Homebrew:\n\n```bash\nbrew install --cask cc-switch\n```\n\nОбновление:\n\n```bash\nbrew upgrade --cask cc-switch\n```\n\n### Linux\n\nФайлы Linux доступны для **x86_64** и **ARM64** (`aarch64`). Выберите файл с меткой архитектуры, соответствующей выводу команды `uname -m` на вашем компьютере:\n\n- `CC-Switch-v3.20.4-Linux-x86_64.AppImage` \u002F `.deb` \u002F `.rpm`\n- `CC-Switch-v3.20.4-Linux-arm64.AppImage` \u002F `.deb` \u002F `.rpm`\n\n| Дистрибутив | Рекомендуемый формат | Команда установки |\n| ----------- | ------------------- | ----------------- |\n| Ubuntu \u002F Debian \u002F Linux Mint \u002F Pop!\\_OS | `.deb` | `sudo dpkg -i CC-Switch-*.deb` или `sudo apt install .\u002FCC-Switch-*.deb` |\n| Fedora \u002F RHEL \u002F CentOS \u002F Rocky Linux | `.rpm` | `sudo rpm -i CC-Switch-*.rpm` или `sudo dnf install .\u002FCC-Switch-*.rpm` |\n| openSUSE | `.rpm` | `sudo zypper install .\u002FCC-Switch-*.rpm` |\n| Arch Linux \u002F Manjaro | `.AppImage` | Сделайте файл исполняемым и запустите напрямую либо используйте AUR |\n| Другие дистрибутивы \u002F не уверены | `.AppImage` | `chmod +x CC-Switch-*.AppImage && .\u002FCC-Switch-*.AppImage` |\n\n\n[Официальный выпуск версии](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Ftag\u002Fv3.20.4).","2026-09-22T15:45:41Z",626,"2026-10-07T09:38:27.243348Z",[472],{"area":454,"items":473},[474,475,476,477,478],"Управление сессиями, провайдерами и расходом MiniMax Code.","Скорость вывода токенов; поиск и массовое добавление моделей OpenCode.","Исправлена обработка additional_tools Codex и исходных изображений.","Сохранение API-ключей и восстановление действий перепривязки аккаунта.","Добавлена миграция БД и явные предупреждения об обновлении.","Добавлено управление MiniMax Code, улучшены пресеты провайдеров и отображение расхода; исправлены маршрутизация, учётные данные и навыки.","CC Switch 3.20.4",{"locale":430,"machineTranslated":36,"sourceLocale":422,"status":431},"3.20.4",{"bodyMarkdown":484,"brewCommittedAt":485,"hasNotes":32,"id":486,"isLatest":36,"isPrerelease":36,"machineTranslated":36,"publishedAt":487,"sections":488,"source":461,"sourceLocale":422,"summary":496,"title":497,"translation":498,"version":499},"# CC Switch v3.20.3\n\n> Большинство официальных API современных популярных моделей с открытым исходным кодом теперь изначально поддерживают формат OpenAI Responses. В этом выпуске два пресета Kimi для Codex переводятся с преобразования Chat Completions на **прямое подключение через нативный Responses**. Теперь официальные пресеты Codex для DeepSeek, Zhipu GLM, Qwen, MiniMax, Xiaomi MiMo, LongCat и Kimi подключаются напрямую к API поставщиков; вместе с Volcengine Doubao и Tencent Hunyuan им больше не нужна локальная маршрутизация для преобразования форматов. Если карточка Codex всё ещё использует формат Chat, с которым она была добавлена, добавьте пресет заново или выберите Responses в поле «Формат вышестоящего API» на странице редактирования — и подключение станет прямым. Остальные изменения — исправления корректности от участников проекта: пустые заполнители `reasoning_content` больше не засоряют Claude Code пустыми блоками Thought, задачи агента Codex не обрываются после одного сообщения о ходе выполнения, проверка моделей в Claude Desktop больше не сообщает ошибочно «недоступно» для Responses API, при каждом завершении работы параметры повторных попыток и тайм-аутов прокси Claude больше не копируются в Codex\u002FGemini\u002FGrok Build, а синхронизация универсального поставщика больше не стирает настройки дочерних карточек. В Codex исправлены маршрутизация прокси при отсутствии `model_provider`, учёт растущего использования сессии в Windows и отображение квоты управляемой учётной записи в системном трее. Пресеты и цены также обновлены: каталоги агрегаторов актуализированы, платформа Qwen AI переименована и переведена на Qwen 3.8, для MiniMax по умолчанию выбран M3, а семейство DeepSeek V4 переведено на тариф V4.1 Flash. **В этом выпуске миграции базы данных нет.**\n\n**[Китайская версия →](v3.20.3-zh.md) | [Японская версия →](v3.20.3-ja.md)**\n\n---\n\n## Основные возможности\n\n- **Прямое подключение Kimi в Codex через нативный Responses**: пресеты Kimi Open Platform и Kimi For Coding переходят с `openai_chat` на `openai_responses`, поэтому Codex подключается напрямую к `\u002Fv1\u002Fresponses` поставщика и больше не нуждается в локальной маршрутизации для преобразования Responses в Chat. Теперь все официальные пресеты Codex для DeepSeek, Zhipu GLM, Qwen, MiniMax, Xiaomi MiMo, LongCat и Kimi подключаются напрямую. Поставщики, предлагающие только Chat Completions (Baidu Qianfan, Tencent Token Plan, QwenCloud For Coding, StepFun, BaiLing, ModelScope и платформы-агрегаторы), по-прежнему используют локальную маршрутизацию для преобразования. Если существующая карточка всё ещё использует исходный формат Chat (Kimi, а также DeepSeek, GLM и другие модели, переключённые в предыдущих выпусках), добавьте пресет заново или выберите Responses в поле «Формат вышестоящего API» на странице редактирования. Подробности — в примечаниях к обновлению.\n- **Claude Code больше не засоряется пустыми блоками Thought** ([#7227](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7227), исправления [#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028), [#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404)): вышестоящие API, например GLM, Qwen и DeepSeek, которые включают пустой заполнитель `reasoning_content` в каждом фрагменте, больше не превращают каждый токен в отдельную строку с пустым блоком рассуждений.\n- **Задачи агента Codex больше не обрываются после одного сообщения о ходе выполнения** ([#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280), исправления [#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529)): при использовании Chat API сообщение с ходом выполнения и следующий за ним вызов инструмента объединяются в одно сообщение ассистента, поэтому вышестоящий API больше не выполняет `stop` преждевременно.\n- **Claude Desktop больше не сообщает «модель недоступна» для Responses API** ([#7287](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7287), исправления [#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103)): при преобразовании значение `max_tokens=1` для проверки ограничивается значением 16 — минимумом, разрешённым Responses API.\n- **При выходе параметры повторных попыток и тайм-аутов прокси Codex, Gemini и Grok Build больше не перезаписываются параметрами Claude** ([#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210), исправления [#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204)).\n- **Синхронизация универсального поставщика больше не стирает скрипт использования, отказ от общей конфигурации и порядок дочерних карточек** ([#7212](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7212), исправления [#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134)).\n- **Карточка Codex без `model_provider` при перехвате тоже проходит через локальный прокси** ([#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263), исправления [#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256)), а не подключается незаметно напрямую к `api.openai.com`.\n- **В Windows больше не теряются данные о растущем использовании сессии Codex** ([#7219](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7219), исправления [#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060)): если время изменения файла не меняется, учитывается и его размер.\n- **Квота учётной записи ChatGPT, привязанной к управляемой карточке Codex, теперь видна в системном трее** (исправления [#7267](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7267)): привязка нескольких учётных записей больше не оставляет только их названия.\n- **Теперь виден недельный лимит Claude Fable**: карточка поставщика и системный трей обрабатывают новый массив `limits[]` из API использования.\n- **Отключайте инструмент Artifact в Claude Code одним нажатием**: шлюзы со строгой проверкой схем инструментов, включая DeepSeek, больше не возвращают 400 на каждый запрос.\n- **Официальный пресет DeepSeek для Codex поддерживает изображения** ([#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286), исправления [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283)); `deepseek-flash` и семейство V4 тарифицируются по уровню V4.1 Flash, а не по цене $0 или прежней максимальной цене.\n- **Добавляйте платформа Qwen AI Token Plan одним нажатием** ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)); платформа Qwen AI переходит на Qwen 3.8, для MiniMax по умолчанию выбран M3 ([#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255), а каталоги Codex агрегаторов обновлены.\n\n---\n\n## Руководства по использованию\n\n\n- **[Добавление поставщиков](..\u002Fuser-manual\u002Fen\u002F2-providers\u002F2.1-add.md)**: различия между нативным прямым подключением Responses в Codex и маршрутизацией с преобразованием Chat, таблица быстрых переключателей Claude (включая новый пункт «Отключить инструмент Artifact») и объяснение того, что «изменения пресетов влияют только на вновь созданных поставщиков».\n- **[Маршрутизация запросов](..\u002Fuser-manual\u002Fen\u002F4-proxy\u002F4.2-routing.md)**: переписывание и восстановление конфигурации при перехвате — исправление маршрутизации в этом выпуске для карточек Codex без `model_provider` относится к этому разделу.\n- **[Статистика использования](..\u002Fuser-manual\u002Fen\u002F4-proxy\u002F4.4-usage.md)**: разбор сессий Codex и настройка цен, а также правила курсора байтов и восстановления цен из этого выпуска.\n\n---\n\n> [!WARNING]\n>\n> ## Только официальные каналы (прочитайте)\n>\n> CC Switch — **полностью бесплатное приложение с открытым исходным кодом**; мы **не взимаем с пользователей плату**. Получайте программу только через перечисленные ниже официальные каналы:\n>\n> | Канал | Только официальный |\n> | ------------------ | ------------------------------------------------------------------------------ |\n> | Сайт | **[ccswitch.io](https:\u002F\u002Fccswitch.io)** |\n> | Исходный код | **[github.com\u002Ffarion1231\u002Fcc-switch](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch)** |\n> | Загрузки | **[Релизы GitHub](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases)** |\n> | Автор | **[@farion1231](https:\u002F\u002Fgithub.com\u002Ffarion1231)** |\n> | Сообщить о подделке | **[Проблемы GitHub](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues)** |\n>\n> **Любой сайт или клиент «CC Switch», который просит оплату, пополнение счёта или учётные данные, — подделка.** Если вас обманом заставили заплатить, немедленно остановите транзакцию и сообщите об этом через раздел проблем GitHub.\n\n---\n\n## Обзор\n\nОфициальные API большинства популярных моделей с открытым исходным кодом теперь изначально предоставляют конечную точку OpenAI Responses, а Responses давно является единственным нативным протоколом Codex. До сих пор пресеты Codex CC Switch для таких моделей существовали в двух вариантах: прямое подключение, если API поставщика изначально поддерживал Responses, и локальный прокси для поставщиков, предлагавших только Chat Completions. Прокси преобразовывал запрос Responses от Codex в Chat, а затем преобразовывал обратно потоковый ответ. Этот путь работает, но каждый дополнительный уровень преобразования — ещё одна возможность для ошибки. Именно такой дефект преобразования исправлен в этом выпуске: [#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280). Конечные точки Kimi Open Platform и Kimi For Coding теперь обе изначально предоставляют `\u002Fv1\u002Fresponses`, а официальные руководства по интеграции Codex требуют `wire_api = \"responses\"`, поэтому оба пресета переходят на прямое подключение через нативный Responses. Теперь официальные пресеты Codex для популярных моделей с открытым исходным кодом — DeepSeek, Zhipu GLM, Qwen (платформа Qwen AI \u002F QwenCloud), MiniMax, Xiaomi MiMo, LongCat и Kimi — подключаются напрямую к API поставщика, как и Volcengine Doubao и Tencent Hunyuan. Поставщики, которые предлагают только Chat Completions (Baidu Qianfan, Tencent Token Plan, QwenCloud For Coding, StepFun, BaiLing, ModelScope и платформы-агрегаторы), по-прежнему используют локальную маршрутизацию для преобразования; примеры поставщиков, поддерживающих только Chat, в руководстве пользователя обновлены.\n\nОстальные изменения — волна исправлений корректности от участников проекта, закрывающая несколько проблем, остававшихся открытыми месяцами. В прокси: API, совместимые с OpenAI, которые сохраняют пустой заполнитель `reasoning_content` в каждом фрагменте, больше не засоряют Claude Code пустыми блоками Thought и переводами строки после каждого токена; преобразователь Responses-to-Chat в Codex больше не разделяет сообщение с ходом выполнения и следующие за ним вызовы инструментов на два сообщения ассистента — из-за чего длинная задача завершалась сразу после одного сообщения о ходе выполнения. Однотокенная проверка модели Claude Desktop теперь ограничена минимумом Responses API, поэтому сопоставленные модели больше не помечаются как «недоступные». Генерация изображений Codex при маршрутизации получила три исправления: для полных вставленных конечных точек, суффиксов в разных регистрах и потоковых данных об использовании. Исправлены две проблемы целостности данных: при каждом обычном завершении параметры повторных попыток и тайм-аутов Claude копировались в строки прокси Codex, Gemini и Grok Build; синхронизация универсального поставщика стирала скрипт использования, отказ от общей конфигурации и автоматический выбор конечной точки у дочерних карточек, а также перемещала карточку в конец списка. В Codex перехват теперь учитывает адрес прокси, если в карточке отсутствует `model_provider`; импорт статистики распознаёт растущие файлы в Windows NTFS благодаря сохраняемому курсору байтов; системный трей отображает квоту учётной записи ChatGPT, привязанной к управляемым карточкам Codex; недельный лимит Claude Fable теперь отображается в карточке поставщика и трее. В редактор поставщика Claude добавлен быстрый переключатель «Отключить инструмент Artifact» для шлюзов, отклоняющих схему инструмента Artifact в Claude Code.\n\nВ пресетах: каталоги пресетов Codex агрегаторов обновлены до актуальных; DashScope\u002FBailian переименована в платформа Qwen AI и переходит на Qwen 3.8 ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)); для MiniMax по умолчанию выбран M3 ([#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255)); встроенный каталог DeepSeek Codex обновлён до поддерживающего изображения `deepseek-flash` ([#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286)); семейство DeepSeek V4 переведено на тариф V4.1 Flash. В этом выпуске схема базы данных не меняется.\n\n**Дата выпуска**: 2026-09-11\n\n**Размер изменений**: 22 коммита | изменено файлов: 62 | +3,458 \u002F -802 строк\n\n---\n\n## Добавлено\n\n### Быстрый переключатель «Отключить инструмент Artifact» в редакторе поставщика Claude\n\nНекоторые сторонние шлюзы, совместимые с Anthropic (в том числе DeepSeek), проверяют JSON Schema инструментов строгим регулярным выражением и отклоняют экранирование свойств Unicode (`\\p{Cc}`, `\\p{Cf}`, …), которое генерирует инструмент Artifact в Claude Code после внедрения возможности базы данных `str_replace` — тогда каждый запрос завершается ошибкой 400 `Invalid schema for function 'Artifact'` независимо от выбранной модели. Шестой флажок рядом с существующими быстрыми переключателями Claude задаёт для провайдера `env.CLAUDE_CODE_DISABLE_ARTIFACT=\"1\"`, полностью исключая инструмент Artifact из массива инструментов; снятие флажка удаляет ключ, как и в других переключателях. Обновлены подписи на всех четырёх языках и таблица переключателей в руководстве пользователя (zh\u002Fen\u002Fja).\n\n### Недельный лимит Claude Fable отображается в карточке провайдера и системном трее\n\nAPI использования Claude OAuth теперь возвращает недельные лимиты для конкретных моделей в массиве верхнего уровня `limits[]` (`kind: \"weekly_scoped\"`, с `scope.model.display_name` и `percent`) вместо отдельных окон верхнего уровня; парсер читал только устаревшие окна, поэтому лимит Fable не отображался. Теперь `limits[]` разбирается в `seven_day_fable`, `seven_day_opus` и `seven_day_sonnet`: записи с областью действия имеют приоритет над устаревшим окном с тем же именем, дубликаты и некорректные записи пропускаются, а устаревшие окна, дополнительное использование и неизвестные окна сохраняются. В трее для Fable создана отдельная группа меток, чтобы она не объединялась с максимальным недельным значением; метка «Fable» добавлена на всех четырёх языках.\n\n### Новый пресет провайдера\n\nплатформа Qwen AI Token Plan ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)) добавлен в библиотеку пресетов для семи приложений — Claude Code, Claude Desktop, Codex, Hermes, OpenClaw, OpenCode и Pi — в той же партии, что и описанный ниже ребрендинг. Существующие провайдеры не затронуты.\n\n### Строки цен для `deepseek-flash` и `deepseek-v4-flash-vision-exp`\n\n`deepseek-flash` — единственный актуальный рекомендуемый идентификатор DeepSeek, а `deepseek-v4-flash-vision-exp` — устаревшее название модели с поддержкой зрения, которое официальный установочный скрипт записывал через 1.2.0; оба обслуживаются V4.1 Flash и тарифицируются по $0.30\u002F$1.20 за миллион токенов, с $0.006 за чтение из кэша. Для обоих не было строки, а резервное сопоставление по префиксу `LIKE '{id}-%'` совпадает только с более длинными идентификаторами, поэтому все запросы с любым из этих идентификаторов тарифицировались по $0.\n\n---\n\n## Изменено\n\n### Пресеты Kimi для Codex переведены на прямое подключение Native Responses\n\nТеперь и открытая платформа Kimi (`api.moonshot.cn\u002Fv1`), и Kimi For Coding (`api.kimi.com\u002Fcoding\u002Fv1`) нативно поддерживают `\u002Fv1\u002Fresponses`, а в официальных руководствах по интеграции с Codex требуется `wire_api = \"responses\"`, поэтому оба пресета переведены с `openai_chat` (локальное преобразование Responses в Chat через прокси с перехватом маршрутизации) на `openai_responses` (Codex подключается напрямую). Обе конечные точки проверены с реальными ключами на точной форме запроса Codex 0.153.4 (`reasoning.encrypted_content`, `reasoning.summary`, размещённый web_search, повторно переданные элементы рассуждения), а также с полными циклами работы инструментов в `codex exec`. `kimi-k3` становится моделью по умолчанию и первой записью каталога для открытой платформы, а `kimi-k2.7-code` остаётся второй; `codexChatReasoning`, нужный только для преобразования Chat, удалён из обоих пресетов, а `promptCacheRouting` — из Kimi For Coding: при нативном подключении Codex сам отправляет `prompt_cache_key`; в каждой строке Kimi объявлено `supportsParallelToolCalls` в соответствии с официальным `models.json` Kimi Code; значение рассуждения по умолчанию не задано, поскольку `model_reasoning_effort` из `config.toml` имеет приоритет над значением каталога, которое лишь отмечает вариант в меню `\u002Fmodel`. В руководстве пользователя (zh\u002Fen\u002Fja) в примерах «Только Chat» теперь указаны провайдеры, которые по-прежнему используют маршрутизацию Chat; исправлено устаревшее примечание о том, что Kimi Code отклоняет user agent `codex-cli`. Изменений серверной части нет.\n\n### Пресеты агрегаторов для Codex обновлены по текущим каталогам\n\nSiliconFlow (.cn) теперь использует по умолчанию `deepseek-ai\u002FDeepSeek-V4-Flash` (окно 1M, высокое\u002Fмаксимальное усилие, с явным соглашением `enable_thinking`\u002F`reasoning_effort`), поскольку MiniMax M2.5 снята с поддержки на внутреннем сайте; Atlas Cloud переключается на `zai-org\u002Fglm-5.2` — последнюю GLM, включённую в его Coding Plan (окно 1M); Novita переходит на `zai-org\u002Fglm-5.3` (1M, только текст); NVIDIA NIM переходит на `moonshotai\u002Fkimi-k3` (1M, текст и изображения; NIM принимает `reasoning_effort` со значениями low\u002Fhigh\u002Fmax и при отсутствии поля выбирает max, поэтому в пресете явно задано high, как и в его `config.toml`); записи GLM\u002FKimi в OpenCode Go также обновлены: `glm-5.3` (новое значение по умолчанию), `glm-5.3-flash` и `kimi-k3` заменяют `glm-5.2`, `glm-5.1` и `kimi-k2.7-code`; окна, модальности и уровни усилия приведены в соответствие с models.dev, а строки DeepSeek V4 Pro\u002FFlash и MiMo V2.5 Pro сохранены. Если платформа не документировала соглашение о thinking\u002Feffort для новой модели (Atlas Cloud, Novita), в пресете задано явное переопределение без действий, чтобы серверная часть больше не добавляла нативные поля thinking по имени модели.\n\n### Пресеты DashScope\u002FBailian переименованы в платформа Qwen AI и обновлены до Qwen 3.8 ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183))\n\n\nВнутренние пресеты Bailian переименованы в платформа Qwen AI и получили отдельный значок; ссылки на консоль и ключ API перенесены на `platform.qianwenai.com`. Семейство Qwen обновлено до поколения 3.8 во всех приложениях: Claude Code, Claude Desktop, Codex, Hermes, OpenClaw, OpenCode и Pi — `qwen3.8-max` \u002F `qwen3.7-plus` \u002F `qwen3.8-flash` для ролей Opus\u002FSonnet\u002FHaiku; единообразно используется официальное окно на 983,616 токенов. Внутренние пресеты `Bailian For Coding` (Claude Code, Claude Desktop, Hermes) становятся `千问AI平台 Coding Plan` на прежней конечной точке; метаданные моделей OpenClaw\u002FOpenCode\u002FPi приведены в соответствие с официальной документацией клиентов. Международные пресеты QwenCloud сохраняют названия и получают собственный значок; пресеты с оплатой по факту использования переходят на Qwen 3.8, а пресеты Token Plan приводятся в соответствие с ними (в Codex и Hermes строки 3.8 уже присутствовали); QwenCloud For Coding сохраняет `qwen3.7-plus`, `qwen3-coder-plus` и свою конечную точку `coding-intl`. Для конечных точек есть одно исключение: Pi QwenCloud Token Plan переключается с `\u002Fapps\u002Fanthropic` (Anthropic Messages) на `\u002Fcompatible-mode\u002Fv1` (OpenAI Chat Completions), тогда как пресеты Hermes и OpenClaw Token Plan остаются на адресах Anthropic.\n\n### В пресетах MiniMax по умолчанию используется M3, истёкшие предложения удалены ([#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255), исправляет [#7254](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7254))\n\nВ официальных пресетах MiniMax и MiniMax (en) во всех семи файлах пресетов теперь по умолчанию используется `MiniMax-M3`: для Claude Code объявлен контекст 1M (`MiniMax-M3[1M]` с официальным `CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000`), в Claude Desktop включена поддержка 1M, а в метаданных OpenClaw\u002FOpenCode\u002FPi указаны контекст на 1,000,000 токенов, 131, бюджет вывода 072 токенов, ввод изображений и поддержку рассуждений. Истёкшие акции Coding Plan удалены из всех пресетов и всех четырёх языковых версий. Существующие конфигурации и значения по умолчанию сторонних разработчиков не изменены.\n\n### Пресет DouBaoSeed переименован в Volcengine Doubao\n\nОтображаемое имя локализовано в файлах пресетов для семи приложений: 「火山 豆包AI」 для zh\u002Fzh-TW и «Volcengine Doubao» для en\u002Fja, согласно соглашению Qiniu\u002FCompshare — в имени верхнего уровня сохранён вариант на латинице, поэтому пресет можно найти и на китайском, и на английском. Также переименовано `settingsConfig.name`, которое OpenCode и Pi записывают в файлы конфигурации клиента, но его ASCII-форма сохранена (`Volcengine Doubao`). Идентификаторы в действующих конфигурациях намеренно не затронуты: имя провайдера в TOML Codex, ключ узла Hermes `doubao_seed`, ключ провайдера Pi, префикс model-ref OpenClaw, ключ акции и значок.\n\n### Цены семейства DeepSeek V4 пересчитаны по тарифу V4.1 Flash\n\nDeepSeek сняла с поддержки V4 Flash и объявила, что начиная с 2026-09-14 12:00 (Пекин) запросы V4 Pro будут перенаправляться в V4.1 Flash и тарифицироваться по цене Flash; этот выпуск выполняет переход досрочно. `deepseek-v4-flash`, `deepseek-v4-flash-0731` и `deepseek-v4-pro` переводятся на $0.30\u002F$1.20 с $0.006 за чтение кэша; записи исправления затрагивают только строки, для которых всё ещё действует прежний максимальный тариф, и добавлены после строк пикового\u002Fнепикового тарифа от 2026-08-16, поэтому старые базы данных последовательно проходят промежуточные цены. `deepseek-chat` и `deepseek-reasoner` не затронуты из-за отсутствия авторитетного источника. `deepseek-v4-pro` также исключена из подтверждённой таблицы моделей только для текста: теперь она указывает на модель с поддержкой зрения, поэтому очистка изображений для неё работает в режиме разрешения.\n\n### Кнопка Claude «Применить ко всем ролям» следует порядку формы\n\nКнопка, которая одним нажатием копирует имя одной модели во все роли сопоставления моделей Claude, раньше сначала брала `ANTHROPIC_MODEL`; теперь она читает значения сверху вниз в панели (Sonnet, Opus, Fable, Haiku, subagent) и использует модель по умолчанию только как последний запасной вариант.\n\n### Atlas Cloud больше не является спонсором\n\nСведения о спонсоре удалены из таблиц спонсоров README на всех четырёх языках, баннера, флагов `isPartner`\u002F`partnerPromotionKey` и строк акций; сами пресеты для семи приложений сохранены и перенесены из группы спонсоров в группу неспонсоров без изменений конечных точек, моделей и значка.\n\n---\n\n## Исправлено\n\n### Пустые заполнители `reasoning_content` больше не заполняют Claude Code пустыми блоками рассуждений\n\nНекоторые upstream-сервисы, совместимые с OpenAI (GLM, Qwen, DeepSeek-V4-Pro через ModelScope\u002FDashScope, Bailian, JD Cloud и другие), оставляют заполнитель `reasoning_content: \"\"` в каждом фрагменте содержимого вместо того, чтобы опустить поле. В ветке рассуждений конвертера OpenAI Chat-to-Anthropic SSE проверялось только наличие поля; состояние открытого блока у неё общее с веткой содержимого. Поэтому каждый фрагмент содержимого сначала закрывал открытый текстовый блок, открывал пустой блок рассуждений, а затем снова открывал текстовый блок: N фрагментов содержимого превращались в 2N блоков содержимого, половина из которых была пустыми блоками рассуждений. Claude Code отображал их как отдельную строку на каждый токен плюс десятки пустых блоков Thought, а JSONL сеанса разрастался. Пустые рассуждения теперь отфильтровываются до входа в ветку — как и в проверке ветки содержимого и конвертера без потоковой передачи; два регрессионных теста фиксируют индекс, тип и порядок блоков как для формы с заполнителем, так и для настоящих рассуждений. ([#7227](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7227), исправляет [#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028), [#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404); заменяет [#4869](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F4869), [#6421](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6421), [#6576](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6576))\n\n### Задачи агента Codex больше не останавливаются после обновления прогресса при подключении к Chat upstream-сервисам\n\nКонвертер Codex из Responses в Chat Completions выдавал два последовательных сообщения assistant, когда один ход модели содержал сообщение-комментарий, сразу за которым шли элементы `function_call`; серверы Chat воспринимали сообщение только с текстом как завершённый ход и возвращали `finish_reason=stop` до ожидаемого вызова инструмента. Теперь ожидающие вызовы инструментов объединяются с непосредственно предшествующим сообщением assistant, если в нём ещё нет `tool_calls`; ожидающие рассуждения добавляются отдельно для каждого сегмента, чтобы параллельные вызовы не дублировали их. Все прочие формы границ (границы сообщений пользователя и инструмента, предыдущие пакеты вызовов инструментов, сбросы медиа) по-прежнему используют путь создания нового сообщения; заполнение заглушки рассуждения по-прежнему применяется к объединённым вызовам без рассуждений. ([#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280), исправляет [#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529); заменяет [#6530](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6530), [#5895](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5895); также сообщалось как [#5860](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5860))\n\n### Проверки моделей Claude Desktop больше не завершаются ошибкой на серверах Responses\n\nAPI Responses отклоняет `max_output_tokens` меньше 16, но клиенты Anthropic законно отправляют очень малые бюджеты пробных запросов — проверка доступности модели в Claude Desktop использует `max_tokens=1`, — а преобразование Anthropic в Responses копировало значение без изменений. Поэтому строгие серверы возвращали 400, и Claude Desktop сообщал, что сопоставленная модель недоступна при локальной маршрутизации. Во время преобразования значения от 1 до 15 теперь увеличиваются до 16; для 16 и выше, 0 и нецелых значений сохраняется прежняя передача без изменений; обычные запросы сессии преобразуются побайтно, как и раньше, а путь OAuth Codex по-прежнему удаляет `max_output_tokens` после этого. ([#7287](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7287), исправляет [#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103))\n\n### Генерация изображений Codex при маршрутизации: полные вставленные конечные точки, суффиксы с разным регистром и потоковое использование\n\nМаршрут `\u002Fimages\u002Fedits` и таблица суффиксов, общая для Images\u002FResponses\u002FCompact\u002FChat, уже были добавлены в v3.20.2; в этом обновлении устранены три связанных с ними пробела. Если базовый URL вставлялся целиком как конечная точка `\u002Fchat\u002Fcompletions` или `\u002Fresponses`, а переключатель «полный URL» был выключен, соседние конечные точки Images и Alpha Search теперь формируются так же, как это уже поддерживалось для пути Chat, вместо отправки отдельных запросов на `…\u002Fchat\u002Fcompletions\u002Fimages\u002Fgenerations`. Определение суффиксов и переписывание соседних путей выполняются без учёта регистра (`\u002Fv1\u002FImages\u002FEdits\u002F`, `\u002Fv1\u002FResponses\u002FCompact\u002F`), при этом исходный префикс URL, процентное кодирование и запрос сохраняются. Использование при потоковой передаче Images теперь извлекается из поля верхнего уровня `usage` события `image_generation.completed` (с пропуском событий `partial_image`, в которых такого поля нет), а затем, если нужно, используется анализатор потока Chat Completions; поэтому для потоковой генерации больше не записывается нулевое число токенов. ([#7177](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7177), продолжение [#7036](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7036))\n\n### Завершение работы и выделение порта больше не перезаписывают настройки прокси отдельных приложений\n\nПри обычном завершении работы путь восстановления прокси вызывал устаревшую функцию записи глобальной конфигурации прокси, чтобы сбросить давно удалённый флаг `live_takeover_active`. Эта функция считывает строку Claude и выполняет UPDATE без условия WHERE, поэтому при каждом завершении работы настройки `max_retries` и три поля тайм-аута из Claude копировались в строки Codex, Gemini и Grok Build. При этом сам флаг в UPDATE не попадал, так что помимо перезаписи настроек этот шаг ничего не делал. Путь динамического порта прослушивания поступал так же при каждом запуске прокси. Ненужная запись обратно удалена (восстановление активной конфигурации, очистка резервной копии и сброс состояния работоспособности не изменились), а выделенный динамический порт теперь сохраняется через интерфейс глобальной конфигурации, который затрагивает только общие столбцы прослушивания и ведения журнала. В двух регрессионных тестах для всех четырёх приложений задаются разные настройки и проверяется, что они сохраняются в обоих сценариях. ([#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210), исправляет [#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204))\n\n### При синхронизации универсального провайдера сохраняются настройки и позиция его дочерних провайдеров\n\nСинхронизация универсального провайдера заново создаёт его дочерние провайдеры Claude\u002FCodex\u002FGemini. Поле дочернего провайдера `settings_config` объединялось с существующей строкой, но `meta`, `created_at` и `sort_index` брались из сгенерированного объекта, в котором их нет, если универсальный провайдер создан через интерфейс. Поэтому UPDATE сбрасывал скрипт использования, отказ от общей конфигурации, автоматический выбор конечной точки и другие настройки для отдельного приложения до `{}`, а индекс сортировки — до NULL. Карточка перемещалась в конец списка, как будто её удалили и создали заново. Теперь существующие дочерние провайдеры сохраняют эти три поля; имя, базовый URL, ключ, модели, веб-сайт и примечания по-прежнему задаются универсальным провайдером, а при первом создании наследуются метаданные родителя. ([#7212](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7212), исправляет [#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134))\n\n### Карточки Codex без `model_provider` используют адрес прокси при перехвате\n\nЕсли в TOML карточки Codex отсутствует `model_provider`, Codex переключается на встроенного провайдера `openai`. Однако при перехвате адрес прокси записывался в `base_url` на верхнем уровне, который Codex не читает, поэтому запросы обходили локальный прокси и шли напрямую к `api.openai.com`. Теперь при отсутствии селектора подразумевается встроенный провайдер `openai`, а адрес прокси записывается в `openai_base_url`. Затем существующая миграция перенаправления устаревших конфигураций преобразует его в пользовательскую таблицу провайдера `cc-switch` с токеном bearer `PROXY_MANAGED` — в ту же форму, что используется при перехвате всех остальных сторонних провайдеров. Явный выбор провайдера не изменился. ([#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263), исправляет [#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256), ссылки: [#7217](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7217))\n\n### Импорт использования Codex распознаёт растущие файлы rollout в Windows\n\n\nCodex сохраняет дескриптор для добавления данных в rollout открытым на протяжении всей сессии, поэтому в Windows NTFS время изменения файла не обновляется, пока файл растёт, и проверка только по времени изменения навсегда пропускала растущие файлы rollout. Теперь наблюдаемая длина в байтах сохраняется в существующем столбце `session_log_sync.last_byte_offset` для строк Codex, а файл пропускается, только если не изменились ни время изменения, ни размер. Анализатор вручную разделяет записи по символам новой строки, чтобы незавершённая запись в конце файла обрабатывалась повторно при следующем проходе, не продвигая курсор строк. В последующем изменении длина незавершённого фрагмента тоже учитывается как наблюдаемая: раньше учитывались только байты полностью обработанных записей, поэтому rollout, заканчивавшийся посреди записи или пробелами (например, из-за аварийно завершившейся сессии, которая не была возобновлена), всегда казался короче файла и полностью разбирался заново при каждом проходе синхронизации. Курсор строк по-прежнему останавливается перед незавершённой записью, поэтому она обрабатывается повторно, как только файл вырастет; если файл не меняется, он пропускается при проверке времени изменения и размера. ([#7219](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7219), исправляет [#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060); а также последующий коммит)\n\n### В трее для управляемых карточек Codex показывается квота привязанного аккаунта ChatGPT\n\nНачиная с [#6537](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6537), в трее намеренно убрали суффикс использования для официальных карточек Codex, привязанных к управляемому аккаунту ChatGPT. Причина в том, что кэш подписки для всего приложения пополнялся данными аккаунта, в который в данный момент выполнен вход в CLI Codex (сначала из связки ключей macOS, затем из `auth.json`), а при привязке нескольких аккаунтов он не может безопасно отображать квоту конкретного аккаунта. Карточка провайдера запрашивала данные привязанного аккаунта, но результат не доходил до трея, и пользователи с несколькими аккаунтами ChatGPT видели `Codex · \u003Cname>` без какой-либо квоты. В кэш использования добавлена карта OAuth-снимков Codex с ключами аккаунтов, куда записывается результат запроса квоты. При транспортных ошибках сохраняется последний успешный снимок; ошибки авторизации и HTTP-запросов заменяют его, чтобы трей скрывал недействительную квоту, а не показывал устаревшую. При каждой записи планируется обновление трея. Обновление и отображение используют единое решение `TrayUsageSource`: управляемые карточки Codex читают снимок только привязанного аккаунта (не переключаясь на снимок уровня провайдера или CLI), по умолчанию показывают данные, если переключатель использования ещё не сохранён (как и карточка провайдера), а фиксированная официальная карточка тоже использует этот путь, если она привязана к аккаунту. При смене привязки сразу используется снимок нового аккаунта, а запоздалый ответ для предыдущего аккаунта не может перезаписать подпись. (исправляет [#7267](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7267))\n\n### Каталог Codex для DeepSeek теперь соответствует модели `deepseek-flash` с поддержкой изображений\n\nВстроенный официальный каталог Codex для DeepSeek обновлён до текущей версии поставщика `models.json` (идентификатор `deepseek-flash`, поддержка изображений на входе, `supports_image_detail_original`), а `deepseek-v4-flash` исключён из подтверждённой таблицы моделей, работающих только с текстом. DeepSeek по-прежнему принимает прежний идентификатор и направляет запросы к V4.1 Flash с поддержкой изображений, поэтому санитайзер мультимедиа прокси и создаваемый каталог Codex теперь не блокируют его, вместо того чтобы заменять изображения на `[Unsupported Image]` или скрывать поддержку изображений от Codex. ([#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286), исправляет [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283))\n\n### В строках DeepSeek V4 для стороннего Token Plan явно указана поддержка только текста\n\nОфициальная конечная точка маршрутизирует `deepseek-v4-flash` к модели с поддержкой изображений, поэтому этот идентификатор не блокируется нигде. Однако Baidu Qianfan и Tencent Token Plan по-прежнему размещают текстовые развёртывания V4: в документации Coding Plan от Qianfan указано, что при вводе изображения возвращается 400, а в списках планов Tencent 2026-09-10 указан только V4. В строках пресетов Codex для них (семейства Flash и Pro, включая `-0731`\u002F`-0813`\u002F`-202605`\u002F`-202606`) теперь явно указано `inputModalities: [\"text\"]` вместо опоры на реестр. Тест пресетов также гарантирует, что в официальном пресете DeepSeek это поле останется незаданным (не блокировать по умолчанию). (продолжение [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283))\n\n---\n\n## Примечания к обновлению\n\n### В этом выпуске нет миграции базы данных\n\nВерсия схемы остаётся 18. Байтовый курсор Codex использует существующий столбец `session_log_sync.last_byte_offset`.\n\n### После обновления файлы rollout Codex будут разобраны повторно один раз\n\nДля строк Codex длина в байтах ещё не сохранена, поэтому при первом проходе синхронизации файлы rollout перечитываются на всех платформах (только нагрузка на ЦП; уже импортированные события пропускаются по смещению строки, поэтому повторного учёта не будет). В последующих проходах неизменённые файлы пропускаются.\n\n### Перезаписанные ранее настройки прокси отдельных приложений не восстанавливаются\n\n[#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210) предотвращает перезапись, но не может восстановить значения повторных попыток и тайм-аутов, скопированные при предыдущих завершениях работы из Claude в Codex, Gemini и Grok Build. Проверьте их один раз в настройках прокси и сбросьте все значения, отличающиеся от заданных вами.\n\n### Отныне при универсальной синхронизации сохраняются настройки дочерних провайдеров\n\nНастройки, уже сброшенные предыдущей синхронизацией (скрипт использования, отказ от общей конфигурации, автоматический выбор конечной точки и позиция сортировки), нужно ввести заново один раз.\n\n### При перехвате карточки Codex без `model_provider` теперь используют локальный прокси\n\nПосле [#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263) такие карточки больше не подключаются незаметно напрямую к `api.openai.com`, как и все остальные сторонние конфигурации при перехвате.\n\n### Изменения пресетов влияют только на вновь созданных провайдеров\n\nСуществующие карточки сохраняют снимок, сделанный при их создании. В этом выпуске затронуты: два пресета Codex для Kimi — существующая карточка Kimi по-прежнему использует `openai_chat` и работает через маршрутизацию; для прямого подключения задайте в карточке формат upstream Responses или импортируйте пресет заново (учтите, что ключи уровня Tier 0 открытой платформы Kimi ограничены 3 запросами в минуту, чего недостаточно для цикла инструментов с несколькими запросами); каталоги Codex агрегаторов; ребрендинг платформы Qwen AI и Qwen 3.8 (включая переключение протокола плана токенов QwenCloud в Pi); значения по умолчанию MiniMax M3; отображаемое имя Volcengine Doubao; и декларации «только текст» для строк DeepSeek в планах токенов Qianfan\u002FTencent (существующая карточка с этими пресетами по-прежнему использует реактивное удаление и повторную попытку для изображений либо импортируйте пресет заново).\n\n### Исправления каталога Codex вступают в силу при следующем переключении провайдера\n\nФайлы каталогов пересоздаются при переключении: в этом выпуске добавлена строка vision `deepseek-flash` в официальном каталоге DeepSeek ([#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286)). Один раз переключитесь с карточки DeepSeek на другой провайдер и обратно.\n\n### Цены\n\n`deepseek-flash` и `deepseek-v4-flash-vision-exp` — новые начальные строки, поэтому при заполнении данных при запуске для исторических запросов с этими идентификаторами устанавливается цена $0. Исправление `deepseek-v4-flash` \u002F `-0731` \u002F `-pro` корректирует только строки, где всё ещё указаны начальные значения пикового уровня (0.44\u002F1.32\u002F0.014 и 1.32\u002F3.96\u002F0.044); пользовательские строки не меняются, исторические расходы _не_ пересчитываются. Изменение V4 Pro вступает в силу до перехода DeepSeek 2026-09-14, поэтому запросы V4 Pro, сделанные до этого момента, оцениваются по цене Flash. `deepseek-chat` и `deepseek-reasoner` сохраняют прежние значения.\n\n### Клиенты Anthropic, проверяющие upstream Responses с `max_tokens` 1–15, теперь отправляют 16\n\nНастройка не требуется.\n\n### После обновления в карточках Codex с Chat-upstream один раз будет пропущено попадание в кэш префикса\n\nСообщение с commentary и вызовом инструмента, объединённое в [#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280), однократно меняет байты запроса; далее структура остаётся стабильной от хода к ходу.\n\n### В управляемых карточках Codex квота по умолчанию показывается в системном лотке\n\nКвота отображается, если переключатель использования не сохранялся; так же работает карточка провайдера. Чтобы скрыть квоту, выключите переключатель использования в карточке.\n\n---\n\n## Уведомление о рисках\n\n### Ранее опубликованные уведомления\n\n**Вход в xAI Grok через OAuth**: используется публичная идентичность OAuth-клиента официального CLI Grok; это может привести к ограничению или блокировке аккаунта — подробности см. в [примечаниях к выпуску v3.18.0](v3.18.0-en.md#risk-notice).\n\n**Обратный прокси Codex OAuth**: использование Codex OAuth подписки ChatGPT через обратный прокси может нарушать условия обслуживания OpenAI. Подробности см. в [примечаниях к выпуску v3.13.0](v3.13.0-en.md#️-risk-notice).\n\n**Запросы квоты SuperGrok**: отображение квоты в карточках провайдера зависит от непубличного платёжного интерфейса grok.com и может перестать работать, если xAI изменит этот интерфейс — подробности см. в [примечаниях к выпуску v3.19.0](v3.19.0-en.md#risk-notice).\n\n**Маршрутизация через стороннего провайдера**: когда локальный прокси CC Switch преобразует запросы Codex, Claude Desktop или Grok Build и пересылает их стороннему провайдеру, у каждого провайдера свои ограничения по оплате, соблюдению требований и хранению данных. Перед использованием ознакомьтесь с условиями обслуживания целевого провайдера.\n\nВключая эти функции, пользователи принимают связанные с ними риски. CC Switch не несёт ответственности за ограничения аккаунта, предупреждения или приостановку обслуживания, возникшие в результате их использования.\n\n---\n\n## Благодарности\n\n11 из 22 коммитов этого выпуска внесены 8 сторонними участниками.\n\n### Вклад в код\n\n- Благодарим @gongzhenhu за фильтрацию пустых заполнителей `reasoning_content` ([#7227](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7227), исправления [#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028), [#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404)) — это был первый вклад; @AdJIa ([#4869](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F4869)), @U1traTC ([#6421](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6421)) и @Hypocrite000 ([#6576](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6576)) ранее каждый предлагал исправление той же проблемы.\n- Благодарим @fszcd за объединение commentary Codex с вызовами инструментов ([#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280), исправления [#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529)) — это был первый вклад; @BigStrongSun сообщил о проблеме и предложил исправление в [#6530](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6530), а @xu-xiang также пытался её исправить в [#5895](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5895).\n- Благодарим @SailingLoong за ограничение `max_tokens` зонда Claude Desktop значением 16 ([#7287](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7287), исправления [#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103)) и зеркало каталога DeepSeek vision ([#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286), исправления [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283)); @John1Tang ранее предлагал исправление ограничения зонда в [#7126](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7126).\n- Благодарим @Komikawayi за три исправления: сброс настроек прокси отдельных приложений при завершении работы ([#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210), исправления [#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204)), сохранение метаданных дочерних элементов при синхронизации универсальных провайдеров ([#7212](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7212), исправления [#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134)) и соблюдение Codex адреса прокси при отсутствии `model_provider` ([#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263), исправления [#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256)).\n\n- Благодарим @woniuxiaoshu за сохранение курсора байтов для использования Codex ([#7219](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7219), исправления [#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060)) — это был первый вклад; @LimiChan-2026 ([#6080](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6080), также автор сообщения о #6060), @woshimaxfive ([#6027](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6027), также сообщивший о таком же симптоме в Windows в [#6023](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6023)) и @puppnn ([#6246](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6246)) ранее каждый предлагал исправление той же проблемы.\n- Благодарим @thisTom за три последующих исправления генерации изображений в Codex ([#7177](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7177)), продолжившие его собственную работу над [#7036](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7036).\n- Благодарим @shigzz за ребрендинг платформы Qwen AI и обновление Qwen 3.8 ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)) — это был первый вклад.\n- Благодарим @jellyjelly814 за значения MiniMax M3 по умолчанию и удаление просроченного предложения ([#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255)); участник сообщил о проблеме и сам её исправил в [#7254](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7254) — это был первый вклад. @octo-patch ранее предлагал обновить значение M3 по умолчанию в [#3567](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3567), а цены и режимы M3 — в [#6396](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6396).\n\n### Сообщения о проблемах\n\n- Благодарим @Sunshine-SACA и @snowing0427 за сообщения о потоке пустых блоков рассуждений и фрагментации блоков содержимого ([#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028), [#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404)), а @csj-ccc — за добавление примера воспроизведения с ModelScope Qwen3-Coder на v3.20.0 в #4404.\n- Благодарим @BigStrongSun и @aducker2016 за сообщения о том, что преобразование Responses в Chat разделяет ход ассистента ([#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529), [#5860](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5860)); последний также установил, что бесконечное повторение DeepSeek имеет ту же первопричину.\n- Благодарим @haoyubai212 за сообщение о 400 зонда Claude Desktop на upstream Responses ([#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103)).\n- Благодарим @HEYUESAMA за сообщение о замене изображений DeepSeek на `[Unsupported Image]` и объявлении в каталоге режима «только текст» ([#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283)).\n- Благодарим @Jason-purse за сообщение о том, что после перезапуска настройки переключения Codex перезаписываются настройками Claude ([#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204)).\n- Благодарим @auqhjjqdo за сообщение о том, что синхронизация универсальных провайдеров нарушила работу таких настроек, как запросы использования ([#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134)).\n- Благодарим @pemagic за сообщение о прямом подключении Codex к `api.openai.com` в обход локальной маршрутизации ([#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256)), а @Tiacoo — за описание того, как тот же симптом проявляется в Codex 0.153.x, в [#7217](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7217).\n- Благодарим @LimiChan-2026 и @MoEternal за сообщения о пропуске учёта использования Codex в Windows ([#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060), [#7264](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7264)).\n- Благодарим @ringzxw за сообщение о том, что в системном лотке не отображалась квота при привязке нескольких аккаунтов ChatGPT ([#7267](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7267)).\n\n---\n\n## Загрузка и установка\n\nПерейдите на страницу [Releases](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Flatest) и скачайте сборку для своей системы либо получите её на официальном сайте [ccswitch.io](https:\u002F\u002Fccswitch.io) (загрузки распространяются через пограничные узлы Cloudflare и не зависят от доступности GitHub).\n\n### Системные требования\n\n| Система | Минимальная версия | Архитектура |\n| ------- | ------------------ | ----------- |\n| Windows | Windows 10 и новее | x64 \u002F ARM64 |\n| macOS | macOS 12 (Monterey)+ | Intel (x64) \u002F Apple Silicon (arm64) |\n| Linux | См. таблицу ниже | x64 \u002F ARM64 |\n\n### Windows\n\n| Файл | Описание |\n| ---- | -------- |\n| `CC-Switch-v3.20.3-Windows.msi` | **Рекомендуется** — установщик MSI с автообновлением |\n| `CC-Switch-v3.20.3-Windows-Portable.zip` | Портативная сборка: распакуйте архив и запустите |\n\nДля устройств Windows ARM64 выберите файл, в имени которого есть метка `arm64`.\n\n### macOS\n\n| Файл | Описание |\n| ---- | -------- |\n| `CC-Switch-v3.20.3-macOS.dmg` | **Рекомендуется** — установщик DMG, перетащите в Applications |\n| `CC-Switch-v3.20.3-macOS.zip` | Распакуйте и перетащите в Applications; универсальный двоичный файл |\n| `CC-Switch-v3.20.3-macOS.tar.gz` | Для установки и автообновления через Homebrew |\n\nУстановка через Homebrew:\n\n```bash\nbrew install --cask cc-switch\n```\n\nОбновление:\n\n```bash\nbrew upgrade --cask cc-switch\n```\n\n### Linux\n\nСборки Linux доступны для **x86_64** и **ARM64** (`aarch64`). Выберите файл с меткой архитектуры, соответствующей результату команды `uname -m` на вашем компьютере:\n\n- `CC-Switch-v3.20.3-Linux-x86_64.AppImage` \u002F `.deb` \u002F `.rpm`\n- `CC-Switch-v3.20.3-Linux-arm64.AppImage` \u002F `.deb` \u002F `.rpm`\n\n| Дистрибутив | Рекомендуемый формат | Команда установки |\n| ----------- | ------------------- | ----------------- |\n\n| Ubuntu \u002F Debian \u002F Linux Mint \u002F Pop!\\_OS | `.deb` | `sudo dpkg -i CC-Switch-*.deb` или `sudo apt install .\u002FCC-Switch-*.deb` |\n| Fedora \u002F RHEL \u002F CentOS \u002F Rocky Linux | `.rpm` | `sudo rpm -i CC-Switch-*.rpm` или `sudo dnf install .\u002FCC-Switch-*.rpm` |\n| openSUSE | `.rpm` | `sudo zypper install .\u002FCC-Switch-*.rpm` |\n| Arch Linux \u002F Manjaro | `.AppImage` | Сделайте файл исполняемым и запустите напрямую либо используйте AUR |\n| Другие дистрибутивы \u002F не уверены | `.AppImage` | `chmod +x CC-Switch-*.AppImage && .\u002FCC-Switch-*.AppImage` |\n\n\n[Официальный релиз](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Ftag\u002Fv3.20.3).","2026-09-11T18:46:03Z",627,"0001-01-01T00:00:00Z",[489],{"area":454,"items":490},[491,492,493,494,495],"Добавлен переключатель Artifact Tool и отображение квоты Claude Fable.","Обновлены пресеты и цены Kimi, MiniMax, Qwen и DeepSeek.","Фильтрация пустых блоков рассуждений; сохранение вызовов инструментов Codex.","Сохранение настроек прокси приложений и метаданных провайдеров.","Исправлены зонды Responses, изображения и импорт в Windows.","Обновлены пресеты провайдеров и цены, исправлено преобразование рассуждений и сеансов, сохранены настройки маршрутизации отдельных приложений.","CC Switch 3.20.3",{"locale":430,"machineTranslated":36,"sourceLocale":422,"status":431},"3.20.3",{"brewCommittedAt":501,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":502,"source":73,"translation":503,"version":504},"2026-09-07T15:38:06Z",[],{"status":75},"3.20.2",{"brewCommittedAt":506,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":507,"source":73,"translation":508,"version":509},"2026-08-28T03:39:58Z",[],{"status":75},"3.20.1",{"brewCommittedAt":511,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":512,"source":73,"translation":513,"version":514},"2026-08-18T09:50:07Z",[],{"status":75},"3.20.0",{"brewCommittedAt":516,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":517,"source":73,"translation":518,"version":519},"2026-08-06T10:25:19Z",[],{"status":75},"3.19.2",{"brewCommittedAt":521,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":522,"source":73,"translation":523,"version":524},"2026-07-31T16:17:10Z",[],{"status":75},"3.19.1",{"brewCommittedAt":526,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":527,"source":73,"translation":528,"version":529},"2026-07-30T07:25:49Z",[],{"status":75},"3.19.0",{"brewCommittedAt":531,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":532,"source":73,"translation":533,"version":534},"2026-07-21T16:14:25Z",[],{"status":75},"3.18.0",{"brewCommittedAt":536,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":537,"source":73,"translation":538,"version":539},"2026-07-14T01:02:08Z",[],{"status":75},"3.17.0",{"brewCommittedAt":541,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":542,"source":73,"translation":543,"version":544},"2026-07-02T01:30:59Z",[],{"status":75},"3.16.5",{"brewCommittedAt":546,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":547,"source":73,"translation":548,"version":549},"2026-06-27T07:37:52Z",[],{"status":75},"3.16.4",{"brewCommittedAt":551,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":552,"source":73,"translation":553,"version":554},"2026-06-15T01:42:07Z",[],{"status":75},"3.16.3",{"brewCommittedAt":556,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":557,"source":73,"translation":558,"version":559},"2026-06-08T16:53:24Z",[],{"status":75},"3.16.2",{"brewCommittedAt":561,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":562,"source":73,"translation":563,"version":564},"2026-06-01T14:40:22Z",[],{"status":75},"3.16.1",{"brewCommittedAt":566,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":567,"source":73,"translation":568,"version":569},"2026-05-29T16:49:31Z",[],{"status":75},"3.16.0",{"brewCommittedAt":571,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":572,"source":73,"translation":573,"version":574},"2026-05-16T07:18:21Z",[],{"status":75},"3.15.0",{"brewCommittedAt":576,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":577,"source":73,"translation":578,"version":579},"2026-04-23T16:17:53Z",[],{"status":75},"3.14.1",20,{"brewLag":582,"cadence":417,"count30d":414},{"compared":414,"earlierCount":415,"medianMinutes":416},{"current":442,"records":584,"size":442,"stats":588,"total":411},[585],{"brewCommittedAt":71,"hasNotes":36,"isLatest":32,"isPrerelease":36,"sections":586,"source":73,"translation":587,"version":76},[],{"status":75},{"brewLag":589,"cadence":417,"count30d":414},{"compared":414,"earlierCount":415,"medianMinutes":416}]