[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"package:cask:cc-switch:pt":3,"releases:stats:cask:cc-switch:pt":441,"releases:cask:cc-switch:1:false:false:pt":442,"releases-count:cask:cc-switch:true:pt":582},{"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":410,"rank30d":411,"releaseCount":412,"releaseStats":413,"repoUrl":62,"screenshots":419,"sourceLocale":423,"sourceUrl":428,"summary":429,"summaryTranslation":430,"supports":433,"tags":435,"tap":439,"token":78,"version":108,"versionChangedAt":440},"#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 é um gerenciador de configuração de desktop de código aberto para ferramentas de programação com IA. Ele ajuda desenvolvedores a manter endpoints de provedores, credenciais, modelos, servidores MCP, skills, prompts, sessões e uso em uma única interface. Ele não fornece uma assinatura de modelo de IA nem substitui os clientes de programação que gerencia.\n\n## Recursos\n- Alterna campos de conexão de provedores preservando configurações não relacionadas do cliente.\n- Escolha entre conexões diretas, roteamento local com conversão e failover ou agregação baseada em modelos para clientes compatíveis. A agregação não oferece failover.\n- Gerencia Claude Code, Claude Desktop, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw, Hermes, Pi e MiniMax Code; as integrações variam individualmente.\n- Sincroniza configurações compatíveis de MCP e skills e edita prompts específicos de ferramentas.\n- Lê etapas de sessões, resultados de ferramentas e alterações; pesquisa e exporta conversas e retoma sessões compatíveis.\n- Examina o uso de solicitações, custos estimados, cotas de provedores e informações da conta quando as integrações oferecem suporte.\n\n## Instalação e requisitos\nInstale o cask para Mac registrado com `brew install --cask cc-switch` ou baixe o DMG oficial, abra-o e copie CC Switch para Aplicativos. A versão oficial para Mac é universal para Apple Silicon e Intel, requer macOS12 ou posterior e, segundo o mantenedor, é assinada e notarizada. O cask não lista dependências extras de formula nem conflitos explícitos. Configure um provedor ou importe uma configuração existente compatível e selecione o modo desejado. As ferramentas de programação gerenciadas têm seus próprios requisitos de instalação, execução, permissões e conta.\n\nO mantenedor também fornece pacotes para Windows10+ (incluindo versões ARM) e compilações Linux x86_64\u002FARM64. O Linux requer glibc2.35+ e WebKitGTK4.1, por exemplo Ubuntu22.04+ ou Debian12+; RHEL\u002FRocky\u002FAlma8–9 não são compatíveis com os requisitos declarados para a versão. Não foi confirmada nenhuma edição móvel compatível. Os requisitos mínimos de RAM e espaço em disco para instalação não foram publicados no guia citado. O DMG verificado para Mac, versão 4.0.4, tem33,926,314bytes; esse é o tamanho do download, não o espaço ocupado após a instalação.\n\n## Compatibilidade e atualizações\nO roteamento e a agregação dependem do gateway local e do suporte ao protocolo upstream. A agregação do Claude Code requer Claude Code2.1.243 ou posterior. Reinicie Codex, Gemini CLI e Grok Build quando solicitado após a troca; as alterações de agregação do Claude Code são aplicadas sem reinicialização. A rede do WSL tem requisitos próprios para localhost.\n\nA versão 4.0 altera a forma como as configurações são preservadas e remove trechos de configuração comuns. Ela migra o banco de dados para o esquema 20 e cria automaticamente um backup em `~\u002F.cc-switch\u002Fbackups\u002F`; um cliente da série 3.x não consegue abrir o novo banco de dados. Consulte as notas oficiais de atualização antes de reverter a versão ou alterar configurações existentes. Predefinições de provedores existentes não são substituídas silenciosamente por novos padrões.\n\n## Contas, custos e licença\nCC Switch é lançado sob a licença MIT (copyright de Jason Young) e pode ser usado sem comprar uma assinatura do CC Switch. Cada provedor de IA tem autenticação, cobranças de assinatura\u002FAPI e condições de serviço próprias. São necessárias chaves de API e credenciais de conta para as operações pertinentes do provedor; estimativas de custo das solicitações não são faturas. Por padrão, os dados de configuração e sessão são armazenados localmente em `~\u002F.cc-switch`. A sincronização por nuvem\u002FWebDAV e os endpoints de retransmissão envolvem escolhas próprias de conta e tratamento de dados.\n\nFontes: [Projeto oficial e requisitos](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch), [Notas de versão em inglês 4.0.4](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fblob\u002Fmain\u002Fdocs\u002Frelease-notes\u002Fv4.0.4-en.md), [Licença](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fblob\u002Fmain\u002FLICENSE).","Configuration manager for AI coding agents","Jason Young (farion1231) and contributors","CC Switch","1e4d02e19864336b7fdc7e47d791c0a66f652c9591d8bf3c59be48a4cc940fd3",33926314,"https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Fdownload\u002Fv4.0.4\u002FCC-Switch-v4.0.4-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,109,136,164,191,219,246,274,301,329,356,383],{"arch":46,"artifacts":81,"conflictsWith":96,"dependsOn":99,"downloadSha256":58,"downloadUrl":60,"macos":106,"minMacos":53,"requiresRosetta":36,"tag":107,"version":108},{"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","4.0.4",{"arch":45,"artifacts":110,"conflictsWith":125,"dependsOn":128,"downloadSha256":58,"downloadUrl":60,"macos":106,"minMacos":53,"requiresRosetta":36,"tag":135,"version":108},{"apps":111,"binaries":112,"entries":113,"pkgs":124},[7],[],[114,118],{"declaration":115,"phase":14,"sources":117,"target":13,"type":16},{"app":116,"target":13},[7],[7],{"declaration":119,"phase":28,"sources":123,"type":30},{"zap":120},[121],{"trash":122},[22,23,24,25,26,27],[],[],{"casks":126,"formulae":127},[],[],{"arch":129,"casks":130,"formulae":131,"macos":49,"requirements":132},[45],[],[],{"macos":133},{">=":134},[53],"arm64_golden_gate",{"arch":46,"artifacts":137,"conflictsWith":152,"dependsOn":155,"downloadSha256":58,"downloadUrl":60,"macos":162,"minMacos":53,"requiresRosetta":36,"tag":163,"version":108},{"apps":138,"binaries":139,"entries":140,"pkgs":151},[7],[],[141,145],{"declaration":142,"phase":14,"sources":144,"target":13,"type":16},{"app":143,"target":13},[7],[7],{"declaration":146,"phase":28,"sources":150,"type":30},{"zap":147},[148],{"trash":149},[22,23,24,25,26,27],[],[],{"casks":153,"formulae":154},[],[],{"arch":156,"casks":157,"formulae":158,"macos":49,"requirements":159},[46],[],[],{"macos":160},{">=":161},[53],"26","tahoe",{"arch":45,"artifacts":165,"conflictsWith":180,"dependsOn":183,"downloadSha256":58,"downloadUrl":60,"macos":162,"minMacos":53,"requiresRosetta":36,"tag":190,"version":108},{"apps":166,"binaries":167,"entries":168,"pkgs":179},[7],[],[169,173],{"declaration":170,"phase":14,"sources":172,"target":13,"type":16},{"app":171,"target":13},[7],[7],{"declaration":174,"phase":28,"sources":178,"type":30},{"zap":175},[176],{"trash":177},[22,23,24,25,26,27],[],[],{"casks":181,"formulae":182},[],[],{"arch":184,"casks":185,"formulae":186,"macos":49,"requirements":187},[45],[],[],{"macos":188},{">=":189},[53],"arm64_tahoe",{"arch":46,"artifacts":192,"conflictsWith":207,"dependsOn":210,"downloadSha256":58,"downloadUrl":60,"macos":217,"minMacos":53,"requiresRosetta":36,"tag":218,"version":108},{"apps":193,"binaries":194,"entries":195,"pkgs":206},[7],[],[196,200],{"declaration":197,"phase":14,"sources":199,"target":13,"type":16},{"app":198,"target":13},[7],[7],{"declaration":201,"phase":28,"sources":205,"type":30},{"zap":202},[203],{"trash":204},[22,23,24,25,26,27],[],[],{"casks":208,"formulae":209},[],[],{"arch":211,"casks":212,"formulae":213,"macos":49,"requirements":214},[46],[],[],{"macos":215},{">=":216},[53],"15","sequoia",{"arch":45,"artifacts":220,"conflictsWith":235,"dependsOn":238,"downloadSha256":58,"downloadUrl":60,"macos":217,"minMacos":53,"requiresRosetta":36,"tag":245,"version":108},{"apps":221,"binaries":222,"entries":223,"pkgs":234},[7],[],[224,228],{"declaration":225,"phase":14,"sources":227,"target":13,"type":16},{"app":226,"target":13},[7],[7],{"declaration":229,"phase":28,"sources":233,"type":30},{"zap":230},[231],{"trash":232},[22,23,24,25,26,27],[],[],{"casks":236,"formulae":237},[],[],{"arch":239,"casks":240,"formulae":241,"macos":49,"requirements":242},[45],[],[],{"macos":243},{">=":244},[53],"arm64_sequoia",{"arch":46,"artifacts":247,"conflictsWith":262,"dependsOn":265,"downloadSha256":58,"downloadUrl":60,"macos":272,"minMacos":53,"requiresRosetta":36,"tag":273,"version":108},{"apps":248,"binaries":249,"entries":250,"pkgs":261},[7],[],[251,255],{"declaration":252,"phase":14,"sources":254,"target":13,"type":16},{"app":253,"target":13},[7],[7],{"declaration":256,"phase":28,"sources":260,"type":30},{"zap":257},[258],{"trash":259},[22,23,24,25,26,27],[],[],{"casks":263,"formulae":264},[],[],{"arch":266,"casks":267,"formulae":268,"macos":49,"requirements":269},[46],[],[],{"macos":270},{">=":271},[53],"14","sonoma",{"arch":45,"artifacts":275,"conflictsWith":290,"dependsOn":293,"downloadSha256":58,"downloadUrl":60,"macos":272,"minMacos":53,"requiresRosetta":36,"tag":300,"version":108},{"apps":276,"binaries":277,"entries":278,"pkgs":289},[7],[],[279,283],{"declaration":280,"phase":14,"sources":282,"target":13,"type":16},{"app":281,"target":13},[7],[7],{"declaration":284,"phase":28,"sources":288,"type":30},{"zap":285},[286],{"trash":287},[22,23,24,25,26,27],[],[],{"casks":291,"formulae":292},[],[],{"arch":294,"casks":295,"formulae":296,"macos":49,"requirements":297},[45],[],[],{"macos":298},{">=":299},[53],"arm64_sonoma",{"arch":46,"artifacts":302,"conflictsWith":317,"dependsOn":320,"downloadSha256":58,"downloadUrl":60,"macos":327,"minMacos":53,"requiresRosetta":36,"tag":328,"version":108},{"apps":303,"binaries":304,"entries":305,"pkgs":316},[7],[],[306,310],{"declaration":307,"phase":14,"sources":309,"target":13,"type":16},{"app":308,"target":13},[7],[7],{"declaration":311,"phase":28,"sources":315,"type":30},{"zap":312},[313],{"trash":314},[22,23,24,25,26,27],[],[],{"casks":318,"formulae":319},[],[],{"arch":321,"casks":322,"formulae":323,"macos":49,"requirements":324},[46],[],[],{"macos":325},{">=":326},[53],"13","ventura",{"arch":45,"artifacts":330,"conflictsWith":345,"dependsOn":348,"downloadSha256":58,"downloadUrl":60,"macos":327,"minMacos":53,"requiresRosetta":36,"tag":355,"version":108},{"apps":331,"binaries":332,"entries":333,"pkgs":344},[7],[],[334,338],{"declaration":335,"phase":14,"sources":337,"target":13,"type":16},{"app":336,"target":13},[7],[7],{"declaration":339,"phase":28,"sources":343,"type":30},{"zap":340},[341],{"trash":342},[22,23,24,25,26,27],[],[],{"casks":346,"formulae":347},[],[],{"arch":349,"casks":350,"formulae":351,"macos":49,"requirements":352},[45],[],[],{"macos":353},{">=":354},[53],"arm64_ventura",{"arch":46,"artifacts":357,"conflictsWith":372,"dependsOn":375,"downloadSha256":58,"downloadUrl":60,"macos":53,"minMacos":53,"requiresRosetta":36,"tag":382,"version":108},{"apps":358,"binaries":359,"entries":360,"pkgs":371},[7],[],[361,365],{"declaration":362,"phase":14,"sources":364,"target":13,"type":16},{"app":363,"target":13},[7],[7],{"declaration":366,"phase":28,"sources":370,"type":30},{"zap":367},[368],{"trash":369},[22,23,24,25,26,27],[],[],{"casks":373,"formulae":374},[],[],{"arch":376,"casks":377,"formulae":378,"macos":49,"requirements":379},[46],[],[],{"macos":380},{">=":381},[53],"monterey",{"arch":45,"artifacts":384,"conflictsWith":399,"dependsOn":402,"downloadSha256":58,"downloadUrl":60,"macos":53,"minMacos":53,"requiresRosetta":36,"tag":409,"version":108},{"apps":385,"binaries":386,"entries":387,"pkgs":398},[7],[],[388,392],{"declaration":389,"phase":14,"sources":391,"target":13,"type":16},{"app":390,"target":13},[7],[7],{"declaration":393,"phase":28,"sources":397,"type":30},{"zap":394},[395],{"trash":396},[22,23,24,25,26,27],[],[],{"casks":400,"formulae":401},[],[],{"arch":403,"casks":404,"formulae":405,"macos":49,"requirements":406},[45],[],[],{"macos":407},{">=":408},[53],"arm64_monterey",{"icon":35,"machineTranslated":36,"name":37,"slug":38,"sourceLocale":39},75,21,{"brewLag":414,"cadence":418,"count30d":415},{"compared":415,"earlierCount":416,"medianMinutes":417},3,2,-60,"weekly",[420],{"caption":421,"height":422,"machineTranslated":36,"sourceLocale":423,"theme":424,"thumbUrl":425,"url":426,"width":427},"Exemplo oficial da interface4.0: cartões de provedores, modos Direct\u002FRouting\u002FAggregation e ferramentas da barra lateral no 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","Gerenciador desktop de provedores de ferramentas de programação com IA, roteamento local, agregação de modelos, MCP, skills, prompts, sessões e uso.",{"locale":431,"machineTranslated":36,"sourceLocale":423,"status":432},"pt-BR","manual",{"arm64":32,"requiresRosetta":36,"status":434,"x86_64":32},"known",[57,436,437,438],"MCP","Tauri","MIT","homebrew\u002Fcask","2026-10-07T14:00:21.503962Z",null,{"current":443,"records":444,"size":579,"stats":580,"total":412},1,[445,448,465,482,499,504,509,514,519,524,529,534,539,544,549,554,559,564,569,574],{"brewCommittedAt":71,"hasNotes":36,"isLatest":32,"isPrerelease":36,"sections":446,"source":73,"translation":447,"version":76},[],{"status":75},{"bodyMarkdown":449,"brewCommittedAt":450,"hasNotes":32,"id":451,"isLatest":36,"isPrerelease":36,"machineTranslated":36,"publishedAt":440,"sections":452,"source":461,"sourceLocale":423,"summary":462,"title":463,"translation":464,"version":108},"# CC Switch v4.0\n\n### Versão estável (4.0.4): nova interface, novo modo Aggregation e troca de configuração mais segura\n\nEsta é a primeira versão estável do v4.0, e o app será atualizado automaticamente para ela. Ela inclui tudo da prévia 4.0, além das correções e adições feitas durante a prévia, da 4.0.1 à 4.0.4.\n\nEsta é a maior versão do CC Switch até agora. Com ela, repensamos o núcleo da experiência do CC Switch: como você se conecta aos modelos, troca de provedores e gerencia um conjunto crescente de ferramentas de programação com IA.\n\nA interface foi redesenhada da barra lateral até a bandeja, dando a apps, configurações, uso e sessões um lugar próprio. O novo modo Aggregation reúne modelos de vários provedores em um seletor de modelos do Claude Code ou Codex, para que você possa alternar entre eles diretamente no cliente. A página Usage também foi reformulada: cada solicitação é registrada com o uso de tokens, custo e velocidade de saída; ao selecionar o período \"All\", o uso diário do último ano aparece em um mapa de calor. O gerenciamento de sessões foi reescrito do zero: o que a IA fez em cada turno, o que alterou e qual etapa falhou fica visível de imediato. E o núcleo de gravação das configurações foi reconstruído: ao trocar de provedor, agora somente os campos-chave são substituídos, em vez de reescrever o arquivo inteiro, reduzindo bastante a complexidade e eliminando uma categoria inteira de problemas de perda de configurações. Agora também é possível sincronizar servidores MCP com Pi, para que uma configuração MCP atenda a 8 ferramentas de programação com IA ao mesmo tempo.\n\n> **Atualizando do 3.x?** O funcionamento da troca de provedores, a versão do banco de dados e algumas configurações mudaram. Recomendamos ler primeiro a seção \"Antes de atualizar\", abaixo.\n\n---\n\n## Interface redesenhada\n\nA nova interface usa um layout com barra lateral e tema laranja. Alternar entre apps e acessar recursos globais como MCP, Skills, Prompts, Sessions, Accounts e Usage está a um clique na barra lateral.\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=\"A nova interface: barra lateral, abas de modo e cartões de provedores\" width=\"720\">\u003C\u002Fp>\n\n- **Modos de relance**: cada página de app tem três abas no topo: Direct \u002F Routing \u002F Aggregation. Clicar em uma aba apenas muda o que você está vendo e nunca altera sua configuração. O botão que realmente troca de modo informa o que vai acontecer; voltar para Direct exige apenas uma etapa e pode ser desfeito\n- **Um espaço para suas ferramentas**: a nova página Apps mostra a versão, o local de instalação e a origem de cada ferramenta de programação com IA, além de oferecer instalação, atualização e atualização em lote\n- **Painel Add Provider mais limpo**: pesquise, escolha uma predefinição e preencha o formulário. A busca encontra nomes e domínios em chinês, e os planos e regiões de um fornecedor são reunidos em uma linha, então as predefinições do Claude agora ocupam visivelmente menos linhas. Provedores predefinidos não são mais destacados como recomendações\n- **A cota mostra o que resta**: os cartões exibem \"5 horas: 94% restante\" ou \"Saldo: 8.99 CNY\", e cada nível é seguido pela contagem regressiva para a renovação, como \"⏱ 2h30m\". A cota permanece em cinza discreto: a porcentagem fica em negrito quando cai abaixo de 10%, e o saldo fica vermelho somente quando acaba. Clique para verificar novamente e ver o resultado. Assinaturas do Codex também mostram quantas renovações salvas restam e quando expiram; assinaturas do ChatGPT exibem o saldo de Codex Credits, convertido para dólares americanos com preços de API\n- **Bandeja organizada por app**: cada linha mostra \"nome · modo · provedor · cota\", e os submenus listam apenas os provedores para os quais você pode trocar agora. O ícone da bandeja mostra um ponto somente quando algo realmente exige sua atenção\n- **Configurações agrupadas por finalidade**: General, App config, Local routing, Network, Data, About. O status do serviço, endereço de escuta e opções de failover do roteamento local agora ficam todos no mesmo lugar\n- **Edição sem janelas de diálogo**: provedores, servidores MCP e prompts abrem como páginas completas na área de conteúdo, e a barra lateral continua funcionando. Se houver alterações não salvas, clicar na barra lateral, pressionar ⌘ ou sair pela bandeja exibirá uma confirmação\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=\"A página Apps: versões, instalações e atualizações de todas as ferramentas de programação com IA em um só lugar\" width=\"720\">\u003C\u002Fp>\n\nQuem está atualizando verá uma breve nota na primeira inicialização explicando onde as coisas foram parar. Após cada atualização, a primeira inicialização também mostra um resumo das alterações. Para vê-lo novamente, clique em \"Recent updates\" em Settings → About.\n\n---\n\n## Aggregation: vários provedores, um seletor de modelos\n\nAté agora, para usar o modelo de outro provedor era preciso voltar ao CC Switch, trocar de provedor e retornar ao cliente.\n\nAtive **Aggregation**, adicione alguns provedores e os modelos de todos eles aparecerão juntos no seletor de modelos do Claude Code ou Codex. Qualquer que seja o modelo escolhido, a solicitação vai diretamente para o provedor correspondente, sem sair do cliente.\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=\"Modelos de vários provedores reunidos no seletor de modelos do Codex\" width=\"560\">\u003C\u002Fp>\n\n- **Adicione e remova quando quiser**: clique em \"Add\" ou \"Remove\" no cartão de um provedor e escolha um provedor como padrão para atender às solicitações que não especificarem um modelo agregado\n- **Identifique cada modelo de relance**: o nome de cada modelo indica seu provedor, como \"Kimi K3 (Kimi For Coding)\", e a descrição mostra o ID real do modelo upstream e a janela de contexto, como `kimi-k3 · 256K`\n- **Formulário simplificado**: ao adicionar ou editar um provedor na aba \"Aggregation\", os detalhes da conexão e a lista de modelos ficam em uma única página; é só isso que você precisa preencher. As abas \"Direct\" e \"Routing\" usam o formulário completo\n- **Combine provedores no Codex sem erros**: defina sua conta oficial como padrão, e os modelos oficiais e de terceiros serão listados lado a lado. Ao alternar entre modelos de diferentes provedores, o estado de compactação do contexto e de raciocínio é preservado\n\n- **Troque de modelo durante a sessão**: você pode mudar para outro modelo no meio de uma sessão. Observe que, após cada troca, o novo modelo precisa reconstruir o cache do prompt, então o primeiro turno após a troca custa visivelmente mais\n- **Lembretes para reiniciar**: quando a lista de modelos do Codex muda, você recebe uma solicitação para reiniciar; usuários do Codex CLI podem reiniciar o serviço em segundo plano com um clique no banner. Alterações nos modelos agregados do Claude Code entram em vigor imediatamente, sem reinicialização\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: um provedor padrão e seis provedores adicionados\" width=\"720\">\u003C\u002Fp>\n\nAggregation é opcional e atualmente oferece suporte ao Claude Code e ao Codex. A lista de modelos agregados do Claude Code requer o Claude Code 2.1.243 ou posterior. Aggregation encaminha cada solicitação com base no modelo escolhido e não oferece failover.\n\n| Modo | Como as solicitações são encaminhadas | Ideal para |\n|------|---------------------|----------|\n| **Direct** | O cliente se comunica diretamente com o provedor | Uso cotidiano |\n| **Routing** | Por meio do roteamento local para um provedor, com conversão de protocolo e failover | Protocolos incompatíveis ou quando você precisa de failover |\n| **Aggregation** | Por meio do roteamento local, distribuídas por modelo entre vários provedores | Combinar modelos de vários provedores em uma sessão |\n\n> **Uma homenagem ao opencodex**\n>\n> Aggregation aprendeu muito com [opencodex](https:\u002F\u002Fgithub.com\u002Flidge-jun\u002Fopencodex) e se baseia diretamente em suas ideias: prefixar IDs de modelo com o provedor para que modelos de vários provedores possam compartilhar os seletores do Claude Code e do Codex; permitir que o Codex compacte o contexto em modelos de terceiros; e detectar quando um serviço em segundo plano ainda usa uma lista antiga de modelos, solicitando então uma reinicialização. Tudo isso nasceu da exploração do opencodex. Agradecemos ao autor ([@lidge-jun](https:\u002F\u002Fgithub.com\u002Flidge-jun)) e aos colaboradores por disponibilizarem este trabalho como código aberto, e manifestamos nosso profundo respeito pelo espírito de código aberto deles!\n>\n> Se você quer uma ferramenta dedicada a levar qualquer modelo ao Codex e ao Claude Code, recomendamos muito experimentar o opencodex!\n\n---\n\n## Uso\n\n**A página Usage** foi reformulada e agora tem métricas, um gráfico de tendências, um registro de solicitações e quatro tabelas paginadas de provedores, modelos e preços. Um novo período \"All\" mostra seu uso diário em um mapa de calor de 53 semanas, e consultas de períodos longos não congelam mais a janela.\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: mapa de calor de 53 semanas e registro de solicitações\" width=\"720\">\u003C\u002Fp>\n\n- **A velocidade de saída** agora é medida somente durante a geração, sem contar a espera pelo primeiro token. Mesmo sem roteamento, solicitações importadas dos registros de sessão do Claude Code e do Codex recebem uma estimativa de velocidade, marcada com \"≈\"\n- **A tabela de modelos ganhou as colunas Success Rate e Speed**. A coluna \"Average Cost\" foi removida; passe o cursor sobre o custo para vê-la\n- **As tabelas de provedores e modelos contabilizam tokens de cache**, para que a soma das linhas corresponda ao total de tokens exibido no topo\n- O uso importado de registros de sessão sem roteamento mostra um nome de provedor como \"Claude Code · Session logs\"; ao passar o cursor, uma explicação informa por que não é possível distinguir o provedor específico\n- Os registros de uso são gravados em uma thread separada, para que um disco lento não atrase mais o serviço de roteamento\n\n---\n\n## Troque de provedor, mantenha sua configuração intacta\n\nEsta é a mudança interna mais importante desta versão. Ela se aplica ao Claude Code, Codex, Gemini CLI, Grok Build e Claude Desktop.\n\nO CC Switch foi lançado em agosto de 2025, quando o ecossistema de APIs era muito menos maduro do que é hoje. Os formatos de API frequentemente variavam bastante entre provedores oficiais e de terceiros, então o projeto original reescrevia todo o arquivo de configuração a cada troca. Essa decisão trouxe uma série de problemas e muita complexidade. Agora que o ecossistema amadureceu, chegou a hora de reconstruir.\n\n**Antes**: ao trocar de provedor, o arquivo de configuração inteiro era reescrito com base no instantâneo salvo daquele provedor. Hooks, plugins e permissões adicionados a `settings.json`, ou servidores MCP adicionados a `config.toml`, eram perdidos na troca ou incorporados ao instantâneo de um provedor, desaparecendo assim que você mudava para outro.\n\n**Agora**: a troca substitui somente o endpoint, a credencial, o modelo e o protocolo, além das opções específicas do provedor. Todo o resto permanece exatamente como estava:\n\n- Em arquivos TOML e `.env`, as linhas, comentários e a ordem não alterados permanecem idênticos byte a byte\n- Em arquivos JSON, todas as outras chaves mantêm seus valores e sua ordem\n- As configurações compartilhadas simplesmente permanecem no arquivo de configuração, então o recurso de \"trecho de configuração comum\" não é mais necessário\n\n**O editor mostra uma prévia da aparência do arquivo de configuração após a troca**. As configurações globais editadas nele são gravadas no arquivo de configuração, e antes de salvar o CC Switch verifica se outro programa alterou o arquivo nesse meio-tempo.\n\nO novo mecanismo de gravação também adiciona várias camadas de proteção:\n\n- Se um arquivo de configuração não puder ser analisado, a gravação é interrompida e o arquivo original permanece intacto\n- Alterações externas são verificadas antes da gravação, para que um arquivo recém-salvo por outro programa nunca seja sobrescrito\n- Quando vários arquivos mudam juntos, a intenção é registrada primeiro. Se o app fechar inesperadamente no meio do processo, na próxima inicialização o trabalho será concluído automaticamente, em vez de deixar os arquivos parcialmente gravados\n- Cada arquivo é copiado como está antes de receber pela primeira vez a nova versão\n- Os arquivos de configuração que armazenam chaves só podem ser lidos e gravados por você\n\nAtivar ou desativar o roteamento já não depende de fazer backup e restaurar toda a configuração. Quando o Codex muda para um provedor de terceiros, o login do ChatGPT que seria substituído é guardado localmente e restaurado automaticamente quando você volta para a conta oficial.\n\n---\n\n## Gerenciamento de sessões: veja claramente cada sessão de programação com IA\n\nAs ferramentas de programação com IA mantêm um registro completo de cada sessão na sua máquina, mas os logs brutos têm milhares de linhas de JSON e são quase impossíveis de ler. Esta versão reescreve do zero o gerenciamento de sessões para tornar esses registros o mais legíveis possível e adiciona o uso de tokens e o custo de cada sessão.\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=\"O leitor de sessões: resumos de etapas, detalhes das chamadas de ferramentas e estrutura da conversa\" width=\"720\">\u003C\u002Fp>\n\n- **Nove clientes, uma forma de leitura**: As sessões de Claude Code, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw, Hermes, Pi e MiniMax Code são interpretadas como conteúdo estruturado, com texto, raciocínio, chamadas de ferramentas, resultados de ferramentas e imagens exibidos cada um à sua maneira\n- **Um turno, uma linha de resumo**: Uma longa sequência de ações da IA é condensada em uma única linha, como \"Etapas · 44 · 27 comandos · 2 arquivos alterados · 1 falhas · 27m45s\". Comandos com falha são marcados em vermelho; ao expandir um deles, você vê seus parâmetros, saída e código de saída. Sequências de leituras de arquivos e pesquisas são agrupadas em \"Leu N arquivos, pesquisou N vezes\"\n- **Estrutura da conversa**: O painel à direita lista cada um dos seus prompts, quantas etapas o turno levou e a que conclusão chegou. Turnos com etapas com falha recebem um ponto vermelho; clique para ir até eles\n- **Três visualizações**: \"Tudo\" mostra o processo completo, \"Chat\" mostra apenas o que você e a IA disseram, e \"Alterações\" mostra apenas quais arquivos foram modificados\n- **A sessão inteira em um relance**: O cabeçalho mostra o diretório do projeto, horários de início e término, número de prompts e chamadas de ferramentas, modelo, total de tokens e custo pelos preços da API\n- **Buscar na sessão**: Correspondências ocultas em saídas de ferramentas recolhidas são expandidas e exibidas automaticamente, e a digitação continua fluida até em sessões longas\n- **Da leitura de volta ao trabalho**: Retome uma sessão no seu terminal favorito (como Ghostty) com um clique ou copie o comando de retomada. Você também pode exportar para Markdown e copiar um único turno ou a conversa inteira\n- **Uma lista mais fácil de pesquisar**: Agrupe por projeto ou horário, pesquise títulos, diretórios, primeiras e últimas mensagens ou IDs de sessão, e exclua em massa\n- Sessões do OpenCode 2.x e o novo formato JSONL de sessão do Gemini CLI agora são compatíveis, e as sessões do Hermes voltaram a abrir corretamente\n\nA reformulação do leitor de sessões foi liderada por [@Owlbay](https:\u002F\u002Fgithub.com\u002FOwlbay). Muito obrigado a Owlbay pelo enorme esforço.\n\n---\n\n## Sincronização MCP com Pi\n\nPi 1.0 tem MCP integrado e usa o mesmo formato de configuração do Claude Code. Ative a sincronização do Pi na página MCP e seus servidores MCP existentes funcionarão no Pi imediatamente. Junto com Claude Code, Codex, Gemini CLI, Grok Build, OpenCode, Hermes e MiniMax Code, uma configuração MCP agora pode gerenciar 8 ferramentas de programação com IA.\n\n- **Somente os campos de conexão são gravados**: As configurações próprias do Pi, como tempos limite, exposição de ferramentas e OAuth, permanecem inalteradas\n- **Desativar a sincronização não exclui as entradas**: Elas são apenas marcadas como desativadas no Pi, e as configurações continuam lá quando você reativa a sincronização\n- **Configurações incompatíveis são sinalizadas imediatamente**: Servidores que usam o transporte SSE, não compatível com Pi, ou têm caracteres especiais nos nomes não são gravados no arquivo\n\nA sincronização MCP para Pi foi desenvolvida por [@Owlbay](https:\u002F\u002Fgithub.com\u002FOwlbay) e [@LystranG](https:\u002F\u002Fgithub.com\u002FLystranG).\n\n---\n\n## Mais melhorias\n\n- **Alternâncias rápidas do Claude Code**: Nova opção \"Desativar verificações do servidor do Modo Automático\". A partir do Claude Code 2.1.281, cada sessão que passava por um gateway de terceiros ou roteamento local era interrompida uma vez com o aviso \"não elegível\". Com esta opção marcada, a verificação é feita localmente e o aviso desaparece. Ela vem marcada por padrão para novos provedores de terceiros; não a marque para endpoints oficiais. Agora, cada alternância rápida tem um \"?\" ao lado, que explica sua função e se é uma configuração global ou vinculada ao provedor\n- **MCP**: Cole várias configurações de servidor de uma vez nos formatos JSON, TOML, Codex ou OpenCode. Se a gravação em um aplicativo falhar, você pode tentar novamente apenas nesse aplicativo, e um servidor com problemas não impede mais a sincronização dos demais\n- **Skills**: \"Instaladas\" e \"Descobrir\" foram reunidas em uma única página com a opção \"Atualizar tudo\" em um clique; agora você pode escolher o método de sincronização: automático, somente link simbólico ou somente cópia. A lista de itens instalados tem uma caixa de seleção para selecionar tudo no cabeçalho\n- **Prompts**: Gerencie prompts de oito aplicativos em uma página, copie-os para outros aplicativos, importe arquivos existentes e desfaça uma exclusão\n- **Contas**: Veja de relance as contas, as ações para fazer login novamente e a cota restante\n- **Backups em um relance**: \"Backup e restauração\" agora tem uma seção expansível \"Outros backups\", que lista o caminho, o tamanho e a quantidade de itens de cada tipo de backup em `~\u002F.cc-switch`. Você pode abrir o local de armazenamento ou excluir uma categoria inteira; antes da exclusão, o sistema informa o que será perdido\n- **Preenchimento automático de metadados do modelo**: Ao selecionar um modelo obtido, a janela de contexto, o limite de saída, os níveis de raciocínio e os tipos de entrada são preenchidos com base em predefinições e models.dev, sem substituir o que você já informou\n- **Claude Desktop**: Com o mapeamento de modelos, o serviço de roteamento local inicia automaticamente e para quando deixa de ser necessário\n- **OpenCode**: A nova configuração de provedores do OpenCode 2.0 é compatível. Os formatos antigo e novo podem ser lidos e gravados, e os erros de formato indicam o campo exato. Você pode escolher variantes de raciocínio: os modelos conhecidos por oferecer suporte a raciocínio são marcados automaticamente, e o OpenCode gera as variantes. Comentários e formatação em `opencode.jsonc` são preservados durante a sincronização, e o uso do OpenCode 2.x é acompanhado\n- **MiniMax Code**: Instale e atualize pela página Aplicativos e escolha sua própria chave de provedor ao criar um provedor\n- **Predefinições e preços**: Novas predefinições Command Code, OpenCode Zen (Claude Code e Codex; compartilha uma linha com OpenCode Go) e MoArk (Claude Code, Codex, Pi, OpenCode, OpenClaw); preços atualizados para Claude Opus 5.5, GPT-6 Sol \u002F Luna, MiMo V2.6 e outros; todas as predefinições existentes agora têm ícones adequados\n\n- **Solução de problemas mais fácil pelos logs**: A troca de provedores e a entrada ou saída de Roteamento ou Agregação agora registram de onde e para onde foi feita a mudança e como ela ocorreu\n- **Seletor de projetos oculto por padrão**: A maioria dos usuários não precisa de projetos, então novas instalações não mostram mais o seletor de projetos na página principal nem na bandeja. Ative-o nas Configurações quando precisar. Se você já o usa, nada muda\n\n---\n\n## Antes de atualizar\n\n**O local das configurações mudou.** As configurações compartilhadas agora permanecem no próprio arquivo de configuração do cliente, e o recurso de \"trecho de configuração comum\" foi removido. Um modelo ou nível de esforço de raciocínio escolhido temporariamente no cliente volta ao valor do provedor quando você troca de provedor e retorna. Para mantê-lo, salve-o no editor do provedor.\n\n**Algumas correções entram em vigor após uma troca.** As correções do catálogo de modelos e do histórico de sessões do Codex são aplicadas na próxima vez que o CC Switch gravar a configuração do Codex; basta trocar de provedor uma vez após a atualização. Sincronize novamente sua configuração MCP existente uma vez para limpar o campo `type` antigo.\n\n**Reinicie quando solicitado após a troca.** Codex, Gemini CLI e Grok Build precisam ser reiniciados após a troca de modelos, e o Codex também precisa ser reiniciado quando sua lista de Agregação muda. Alterações nos modelos agregados do Claude Code não exigem reinicialização.\n\n**O esquema do banco de dados agora está na versão 20.** O banco de dados é copiado automaticamente antes da atualização, em `~\u002F.cc-switch\u002Fbackups\u002F` (arquivos que começam com `db_backup_`). Voltar para 3.x depois disso exibirá \"A versão do banco de dados é muito recente\".\n\n**Os cartões existentes permanecem como estão.** Atualizações de predefinições só se aplicam a provedores criados recentemente. Por exemplo, a opção \"Desativar verificações do servidor do Modo Automático\" não será marcada automaticamente nos provedores Claude existentes; marque-a no editor se precisar. Os novos preços só são aplicados retroativamente a solicitações registradas anteriormente a $0; outros custos históricos não são recalculados.\n\n**O modo de Agregação do Claude Code exige a versão 2.1.243 ou posterior.** O Claude Code adicionou uma configuração `modelPicker` nessa versão, por meio da qual os modelos agregados são listados em `\u002Fmodel`. Versões anteriores a ignoram, então `\u002Fmodel` não mostra nenhum modelo agregado. Execute `claude --version` para verificar sua versão e `claude update` para atualizar.\n\n**Algumas configurações foram removidas.** Multiplicadores de custo por provedor (os preços de retransmissão já incluem o multiplicador, então aplicar outro distorce os valores); configurações avançadas de verificação de conectividade (agora são usados os padrões integrados); e as alternâncias rápidas \"Modo de equipe\" e \"Raciocínio de esforço máximo\" do Claude (todas as sessões do Claude Code agora têm recursos de equipe integrados, e o esforço máximo fixava cada sessão no nível mais caro; use `\u002Feffort max` em uma sessão quando precisar). As variáveis já gravadas na sua configuração não são removidas.\n\n---\n\n## Correções\n\n- **As conversas do Claude Code em uma conta ChatGPT falhavam com um erro 400.** O backend oficial do Codex adicionou um campo aos registros de raciocínio, e a solicitação seguinte era rejeitada. Conversas que já haviam falhado agora se recuperam automaticamente\n- **Com Claude Code mapeado para GPT ou Grok, desativar o raciocínio ainda o deixava no esforço máximo.** Agora, desativar o raciocínio reduz o esforço para baixo; níveis incompatíveis com o modelo de destino são ajustados automaticamente, e `\u002Feffort low` no GPT-5.x pro não falha mais com 400\n- Após sair usando `⌘Q`, a opção \"Sair\" do Dock ou encerrar a sessão no macOS, os clientes continuavam apontando para o serviço de roteamento local que havia parado\n- As respostas pela rota oficial do Codex apareciam apenas após uma longa demora, com o uso registrado como 0\n- Os modelos GPT no catálogo de modelos do Codex perdiam seus prompts oficiais, recursos de ferramentas e níveis de raciocínio\n- Desde o Codex 0.158, o campo `type` na configuração MCP causava erros e podia até impedir o Codex de iniciar\n- As chamadas de ferramentas do MiniMax não conseguiam interpretar seus argumentos, e o raciocínio de alguns modelos aparecia misturado ao texto da resposta\n- Alguns serviços upstream misturam quebras de linha LF e CRLF nas respostas em streaming, o que fazia as chamadas de ferramentas desaparecerem\n- Uma rejeição do upstream era informada como \"limite de saída atingido\"; agora é informado o erro real do upstream, com o motivo\n- O Claude Desktop com OpenCode Go falhava com `400 MissingSessionID`; agora, o roteamento local adiciona automaticamente o ID da sessão\n- Outros aplicativos verificados ao importar uma Skill nunca a recebiam de fato, e a sincronização de Skills excluía pastas com o mesmo nome dentro do diretório do OpenClaw\n- Adicionar ou importar um prompt podia esvaziar um arquivo de prompt escrito manualmente\n- O Codex no WSL deixava a inicialização e a verificação de sessões mais lentas\n- A predefinição de MCP de horário encerrava logo após iniciar; agora, ela executa `uvx mcp-server-time` (para servidores que você já adicionou, altere manualmente o comando para `uvx` e o argumento para `mcp-server-time`)\n- A atualização de algumas CLIs instalava uma cópia extra do npm\n- O arquivo do banco de dados não diminuía após a remoção de logs antigos\n- \"Salvar e reiniciar serviço\" nas configurações não reiniciava o serviço de verdade\n- No macOS, após uma atualização no aplicativo ou uma alteração no diretório de configuração, a janela reiniciada abria atrás de outros aplicativos (a reinicialização desta atualização ainda é feita pela versão antiga, portanto a correção terá efeito a partir da próxima atualização)\n- A opção \"Obter chave de API\" do Grok Build abria a página inicial simples, e as predefinições Xiaomi MiMo para Hermes e OpenClaw selecionavam por padrão um modelo sem suporte a imagens\n\n---\n\n## Alterações desde a versão de prévia 4.0.0\n\nSe você já instalou uma versão de prévia entre 4.0.0 e 4.0.3, esta seção lista o que mudou durante a prévia. As notas acima já incluem tudo isso.\n\n**Novidades**: Alternância rápida \"Desativar verificações do servidor do Modo Automático\" do Claude Code e explicações para cada alternância; sincronização MCP com Pi 1.0; edição em página inteira de servidores MCP e prompts, com lembrete para salvar antes de sair; visão geral de \"Outros backups\"; saldo de créditos do Codex; nova configuração de provedores do OpenCode 2.0 e variantes de raciocínio; colunas de taxa de sucesso e velocidade na tabela de modelos de Uso; predefinições OpenCode Zen e MoArk; seleção de todas as Skills instaladas; registro de trocas; resumo após cada atualização.\n\n**Correções**: Falhas nas conversas da conta do ChatGPT com 400; raciocínio no esforço máximo com o pensamento desativado; quatro linhas do mesmo modelo no topo de `\u002Fmodel` no modo Aggregation do Claude Code; apps verificados ao importar uma Skill que não a recebiam; mapeamento de modelos e modelos agregados que deixavam de funcionar após outra ferramenta alterar a configuração do catálogo de modelos do Codex; sessões do Gemini CLI que não apareciam; varreduras lentas do Codex no WSL; erros do upstream informados como limite de saída; falha do Claude Desktop com OpenCode Go e 400; chamadas de ferramentas perdidas durante o streaming; tabelas de uso sem tokens de cache; gravações de uso que deixavam o roteamento lento; predefinição de horário do MCP que encerrava na inicialização; possível travamento da sincronização de uso do Codex; além de detalhes de interface, como a animação da barra lateral, o divisor, linhas esticadas ao selecionar muitos níveis de raciocínio, a borda do seletor de período e ícones que preenchiam todo o espaço.\n\n**Aprimoramentos**: Alterar os modelos agregados do Claude Code não exige mais reinicialização; o formulário do provedor acompanha a aba atual, e modelos buscados no formulário completo do Codex podem ser selecionados diretamente na tabela de mapeamento de modelos; os atalhos \"Teammates Mode\" e \"Max Effort Thinking\" do Claude foram removidos.\n\n**Novidades em 4.0.4**:\n- No macOS, após uma atualização no app ou uma alteração no diretório de configuração, a janela reiniciada passa para o primeiro plano\n- Em novas instalações, o seletor de projetos fica oculto por padrão\n- Em uma janela de uso estreita, a coluna de velocidade do registro de solicitações não é mais empurrada para a área de rolagem horizontal\n- O convite para dar uma estrela na página Sobre agora é uma faixa própria que pode ser dispensada\n\n---\n\n## Agradecimentos\n\nAgradecemos a todos que contribuíram para esta versão:\n\n[@Owlbay](https:\u002F\u002Fgithub.com\u002FOwlbay) (redesign do leitor de sessões, mapa de calor de uso e desempenho, edição em página inteira e lembrete de alterações não salvas, sincronização do MCP para Pi, predefinição de horário do MCP, predefinições MiMo), [@qyinter](https:\u002F\u002Fgithub.com\u002Fqyinter) (amplos aprimoramentos de 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\nAgradecemos também a [@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) pelos relatos detalhados de bugs, investigações e sugestões que nos ajudaram a identificar os problemas.\n\nAgradecimento especial ao projeto [opencodex](https:\u002F\u002Fgithub.com\u002Flidge-jun\u002Fopencodex); grande parte do design do Aggregation se beneficia de sua exploração de código aberto.\n\nE obrigado a todos que abriram uma issue ou ajudaram a reproduzir um bug. Para ver todos os detalhes técnicos, consulte o [CHANGELOG](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fblob\u002Fmain\u002FCHANGELOG.md).\n\n\n[Versão oficial](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Ftag\u002Fv4.0.4).","2026-10-07T12:59:54Z",625,[453],{"area":454,"items":455},"Destaques",[456,457,458,459,460],"Redesign da barra lateral, cartões de provedores, apps e bandeja.","Agrega modelos do Claude Code e Codex de vários provedores.","Preserva campos de configuração e detecta edições externas.","Recria as telas de sessões e uso; sincroniza MCP com Pi.","Banco migra para o esquema20; confira migração3.x e reinicialização.","editorial","Primeiro lançamento estável4.0: interface redesenhada, agregação de modelos de vários provedores, gravações de configuração mais seguras e telas de sessões e uso recriadas.","CC Switch 4.0.4",{"locale":431,"machineTranslated":36,"sourceLocale":423,"status":432},{"bodyMarkdown":466,"brewCommittedAt":467,"hasNotes":32,"id":468,"isLatest":36,"isPrerelease":36,"machineTranslated":36,"publishedAt":469,"sections":470,"source":461,"sourceLocale":423,"summary":478,"title":479,"translation":480,"version":481},"# CC Switch v3.20.4\n\n> Esta versão é principalmente de correções, além de uma nova integração: **MiniMax Code passa a ser o décimo aplicativo gerenciado** — provedores, MCP, Skills, prompts, navegação de sessões e estatísticas de uso vêm junto, enquanto o modelo padrão, o login e a exclusão de sessões continuam sob controle do próprio MiniMax Code. As correções se concentram no uso do Codex pelo proxy local, e quatro problemas que tornavam o Codex inutilizável foram resolvidos nesta versão: a partir do Codex 0.154, ferramentas em `additional_tools` faziam gateways Chat estritos retornarem 400; uma única captura de tela com `detail: \"original\"` fazia todos os turnos seguintes da sessão retornarem 400; editar ou deixar alguns provedores Codex apagava silenciosamente a chave de API salva; e não era possível trocar nem reassociar um cartão vinculado a uma conta ChatGPT excluída. No Claude Code, o modo automático voltou a funcionar com GitHub Copilot, e `\u002Feffort`'s `xhigh` e `max`, assim como o esforço de raciocínio do Grok 4.6, são enviados no nível selecionado. A configuração de terceiros do Claude Desktop agora também funciona no Linux. **Esta versão inclui uma migração do banco de dados (v18 → v19); recomendamos fazer um backup manual do banco antes de atualizar** — consulte as [Notas de atualização](#this-release-includes-a-database-migration).\n\n**[Versão chinesa →](v3.20.4-zh.md) | [Versão japonesa →](v3.20.4-ja.md)**\n\n---\n\n## Destaques: o que você pode fazer agora\n\n- **Gerencie o MiniMax Code com CC Switch** ([#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383), [#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578)): o décimo aplicativo gerenciado. Os provedores são gravados em `~\u002F.minimax\u002Fconfig.yaml` junto às configurações próprias do MiniMax Code, e vários podem coexistir; MCP sincroniza nos dois sentidos com `~\u002F.minimax\u002Fmcp.json`; Skills e a biblioteca de prompts `AGENTS.md` também estão incluídos; as predefinições vêm do catálogo do Pi, 41 ao todo. O modelo padrão, o login e a exclusão de sessões **continuam sendo gerenciados pelo próprio MiniMax Code** — CC Switch não os altera.\n- **Consulte sessões e uso do MiniMax Code no painel**: navegue pelas sessões em modo somente leitura e copie o comando de retomada; o uso é importado incrementalmente como uma fonte separada, “MiniMax Code (Session)”, e a primeira sincronização recupera o histórico.\n- **Use provedores de terceiros no Claude Desktop no Linux** ([#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331), correção de [#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855)): os caminhos de configuração seguem o mesmo padrão do macOS e do Windows, e a versão Flatpak também funciona.\n- **Codex 0.154 e posteriores não recebem mais 400 por gateways Chat** ([#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454), correções de [#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451), [#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158)): as ferramentas em `additional_tools` são mescladas corretamente à solicitação, em vez de virarem uma mensagem de sistema com `content: null`.\n- **Uma captura de tela não estraga mais uma sessão inteira do Codex** ([#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476), correções de [#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495), [#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458)): sessões já afetadas se recuperam logo após a atualização, sem edição manual do histórico.\n- **Editar ou deixar um provedor Codex não apaga mais a chave de API salva** ([#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434), correção de [#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433)).\n- **Após excluir uma conta ChatGPT, os cartões Codex vinculados a ela podem ser reassociados ou trocados** ([#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395), correção de [#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392)).\n- **Use o modo automático do Claude Code com GitHub Copilot** ([#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404), correção de [#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175)).\n- **`\u002Feffort` envia exatamente o nível escolhido** ([#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318), [#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531), correções de [#7314](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7314), [#5367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5367)): `xhigh` não é mais descartado, modelos mapeados para Grok 4.6 voltam a transmitir o esforço de raciocínio, e `max` em GPT-5.6 e GPT-6 Astra não é mais rebaixado para `xhigh`.\n- **Ferramentas sem descrição não fazem mais a solicitação inteira retornar 400** ([#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319), [#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378), correção de [#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303)).\n- **Veja os tokens de saída por segundo no log de solicitações** ([#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369), correção de [#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936)).\n- **Pesquise e adicione modelos em lote no formulário de provedores do OpenCode** ([#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515), correção de [#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423)).\n\n---\n\n## Guias de uso\n\n- **[Claude Desktop](..\u002Fuser-manual\u002Fen\u002F2-providers\u002F2.6-claude-desktop.md)**: caminhos de configuração do Linux adicionados nesta versão, limites da versão Flatpak e tabela de escopo de suporte atualizada.\n- **[Adição de provedores](..\u002Fuser-manual\u002Fen\u002F2-providers\u002F2.1-add.md)**: diferença entre a conexão direta nativa Responses do Codex e a conversão de roteamento Chat (os exemplos de provedores somente Chat agora citam Baidu Qianfan Coding Plan e StepFun Step Plan), além dos três campos gravados agora pela opção “Hide AI Attribution”.\n\n---\n\n> [!WARNING]\n>\n> ## Somente canais oficiais (leia)\n>\n> CC Switch é um aplicativo desktop **totalmente gratuito e de código aberto**, e **não cobramos nenhuma taxa dos usuários**. Obtenha o software somente pelos canais oficiais listados abaixo:\n>\n> | Canal              | Somente oficial                                                                |\n> | ------------------ | ------------------------------------------------------------------------------ |\n\n> | Site               | **[ccswitch.io](https:\u002F\u002Fccswitch.io)**                                         |\n> | Código-fonte       | **[github.com\u002Ffarion1231\u002Fcc-switch](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch)** |\n> | Downloads          | **[GitHub Releases](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases)**        |\n> | Autor              | **[@farion1231](https:\u002F\u002Fgithub.com\u002Ffarion1231)**                               |\n> | Denunciar impostor | **[GitHub Issues](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues)**            |\n>\n> **Qualquer site ou cliente “CC Switch” que peça pagamento, recargas ou credenciais de login é falso.** Se você foi enganado e pagou, interrompa a transação imediatamente e registre uma denúncia pelo GitHub Issues.\n\n---\n\n## Visão geral\n\nMiniMax Code é o agente de programação da MiniMax; a versão de terminal `mcode` e o aplicativo desktop compartilham o diretório de dados `~\u002F.minimax`. CC Switch o gerencia em modo aditivo, como OpenCode, Hermes e Pi: cada provedor é uma entrada em `custom_provider` dentro de `~\u002F.minimax\u002Fconfig.yaml`, vários provedores coexistem, e as gravações preservam as demais configurações do MiniMax Code e respeitam o bloqueio do arquivo de configuração. MCP sincroniza nos dois sentidos com `~\u002F.minimax\u002Fmcp.json`, Skills são instalados em `~\u002F.minimax\u002Fskills\u002F`, e a biblioteca de prompts grava em `~\u002F.minimax\u002FAGENTS.md`; a navegação pelas sessões é somente leitura, e o uso é importado incrementalmente do próprio banco de dados do MiniMax Code. O escopo é intencionalmente limitado: o modelo padrão, o login, os recursos de nuvem e a exclusão de sessões ficam a cargo do MiniMax Code; a substituição pelo proxy local, o failover, a bandeja do sistema, o trecho de configuração comum e os Profiles também não o abrangem. ([#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383), [#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578))\n\nAs correções mais importantes dizem respeito ao uso do Codex pelo proxy local. A partir de 0.154, o Codex coloca ferramentas adicionais, como plugins e namespaces de execução, em um item de entrada `additional_tools`; o conversor o tratava como uma mensagem e gerava uma mensagem de sistema com `content: null`, fazendo gateways Chat estritos retornarem 400 e descartando também as ferramentas contidas nele ([#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454)). O Codex marca capturas de tela com `detail: \"original\"`, um valor válido somente na API Responses; copiado sem alterações para a solicitação Chat, fazia gateways como Ark\u002FDoubao, SenseNova, GLM e vLLM retornarem 400 para a solicitação inteira. Como o Codex reproduz o histórico completo a cada turno, uma única imagem fazia a sessão falhar em todos os turnos seguintes ([#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476)). Os outros dois problemas envolviam dados de conta: para provedores Codex com sua própria fonte de credenciais, a chave de API salva era substituída pela autenticação ativa vazia ao editar e salvar o provedor ou trocar para outro ([#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434)); e, após excluir uma conta ChatGPT no Auth Center e entrar novamente, cartões vinculados à conta antiga exibiam “account not found” a cada troca, substituição ou restauração na inicialização ([#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395)).\n\nAs solicitações convertidas do Claude Code também receberam várias correções: ferramentas sem descrição não são mais enviadas com `\"description\": null` ([#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319), [#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)); o classificador do modo automático com GitHub Copilot não retorna mais 400 por causa do parâmetro `stop` ([#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404)); e `\u002Feffort xhigh` não é mais descartado, modelos mapeados para Grok 4.6 voltam a transmitir o esforço de raciocínio, e `max` em GPT-5.6 e GPT-6 Astra não é mais rebaixado para `xhigh` ([#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318), [#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531)). As demais correções abrangem a instalação de Skills (um id do skills.sh diferente do nome do diretório e repositórios com mais de 10,000 arquivos, [#6381](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6381), [#7489](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7489)), a leitura de alterações externas nos prompts ([#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194)), a configuração unificada do OMO no WSL ([#7550](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7550)), a detecção de versão na página Sobre ([#7346](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7346), [#7348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7348)) e a barra de tarefas do Windows ([#6348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6348)). Entre os recursos, a configuração de terceiros do Claude Desktop agora oferece suporte a Linux ([#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331)), o log de solicitações mostra tokens de saída por segundo ([#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369)), e o formulário de provedores do OpenCode permite pesquisar e adicionar em lote os modelos obtidos ([#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515)).\n\nAs predefinições receberam uma rodada de manutenção: as predefinições Codex nacionais foram alinhadas à documentação Responses de cada fornecedor (Kimi For Coding passa a usar K2.8 Preview com janela de 1M, e DeepSeek usa `deepseek-flash` por padrão); o site chinês da MiniMax e BaiLing passam a usar seus domínios oficiais atuais; o endpoint da família Codex da AICodeWith foi corrigido para `\u002Fv1`; e algumas predefinições foram adicionadas. Em 2026-09-12, DeepSeek retirou o anúncio de que V4 Pro seria cobrado pelos preços de V4.1 Flash. Por isso, esta versão reverte a alteração de preço feita antecipadamente em v3.20.3 e restaura o nível máximo. Esta versão inclui uma migração do banco de dados: `SCHEMA_VERSION` 18 → 19, que adiciona colunas de ativação do MiniMax Code às tabelas MCP e Skills.\n\n**Data de lançamento**: 2026-09-22\n\n**Dimensão das alterações**: 46 commits | 156 arquivos alterados | +8,673 \u002F -684 linhas\n\n---\n\n## Adicionado\n\n### MiniMax Code se torna o décimo aplicativo gerenciado\n\n\nMiniMax Code (`app_type` é `mcode`) compartilha um diretório de dados entre as versões de terminal e desktop; por padrão, usa `~\u002F.minimax`, que pode ser movido para outro local com `MINIMAX_DATA_DIR` (ou a variável legada `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- **Provedores**: modo aditivo, como no OpenCode, Hermes e Pi. Cada provedor é uma entrada em `custom_provider` dentro de `~\u002F.minimax\u002Fconfig.yaml`, e o estado \"Adicionado\" de um cartão depende apenas de a chave estar presente no arquivo. O formulário reutiliza o editor estruturado no estilo do OpenCode, além de um editor JSON, e oferece suporte a três formatos de API: `anthropic-messages`, `openai-completions` e `openai-responses`; as predefinições são derivadas do catálogo de predefinições do Pi, 41 no lançamento. Provedores personalizados criados no MiniMax Code são importados ao carregar a lista, e as edições feitas lá também são sincronizadas de volta; provedores do tipo conta (aqueles cujo `kind` não é `custom`) não são importados nem sobrescritos. As gravações preservam todas as outras chaves em `config.yaml` e respeitam o bloqueio de diretório `config.yaml.lock` do MiniMax Code (um bloqueio com mais de 10 segundos é recuperado; caso contrário, o salvamento falha e solicita uma nova tentativa), e as alterações no banco de dados são revertidas se a gravação do arquivo nativo falhar. Depois que um provedor é excluído de `config.yaml`, seu cartão é atualizado imediatamente para o estado não adicionado e pode ser adicionado novamente ([#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578)).\n- **O modelo padrão pertence ao MiniMax Code**: o CC Switch nunca grava `defaultModel` \u002F `defaultLightModel`. Enquanto um provedor ou modelo for referenciado por qualquer um deles, o CC Switch se recusa a excluí-lo ou desativá-lo; primeiro, altere o modelo padrão no MiniMax Code.\n- **MCP**: sincroniza nos dois sentidos com `~\u002F.minimax\u002Fmcp.json`. As edições substituem apenas os campos de transporte (`command`, `args`, `env`, `url`, `headers`, `type`), preservando opções nativas como `timeout`; um servidor com o mesmo ID, mas transporte diferente, é ignorado com um aviso em vez de ser sobrescrito; uma ressincronização completa não remove entradas cuja alternância está desligada — somente uma desativação ou exclusão explícita as remove. O arquivo nativo é restaurado se o commit no banco de dados falhar.\n- **Skills e prompts**: Skills são implantadas em `~\u002F.minimax\u002Fskills\u002F` usando a mesma verificação de propriedade do Pi; portanto, uma Skill com o mesmo nome que não tenha sido implantada pelo CC Switch nunca é alterada. A biblioteca de prompts grava o prompt ativado em `~\u002F.minimax\u002FAGENTS.md`: antes de alternar, alterações externas no arquivo são gravadas primeiro no prompt atual; quando nenhum prompt do MiniMax Code tiver sido ativado, o conteúdo não correspondente no arquivo é salvo primeiro como prompt de backup. Desativar o último prompt limpa o arquivo; cada prompt pode ter no máximo 32 KiB (contados em bytes UTF-8).\n- **Links profundos**: o campo `apps` dos links profundos de MCP aceita `mcode`; links profundos de provedores para MiniMax Code são rejeitados.\n- **Não incluído nesta versão**: login nativo e recursos de nuvem do MiniMax Code, controle e failover do proxy local, entrada na bandeja do sistema, trecho de configuração comum, provedores universais, Profiles (a página do MiniMax Code oculta o seletor de Profile), teste de provedores por cartão, substituição de diretório nas configurações e instalação ou atualização por \"Configurações → Sobre\".\n\n### Sessões e uso do MiniMax Code no painel\n\nO navegador de sessões abre `~\u002F.minimax\u002Fv2\u002Fsqlite\u002Fruntime-state.sqlite` em modo somente leitura e lista conversas do MiniMax Code (sessões ocultas, arquivadas e filhas, além de sessões peek\u002Fchannel\u002Fcron, não são listadas); cada sessão oferece o comando de retomada `env MINIMAX_DATA_DIR=\u003Cdir> mcode --session \u003Cid>` (na sintaxe do PowerShell no Windows). As sessões estão vinculadas ao estado de execução do MiniMax Code, portanto não podem ser excluídas pela interface, e o backend também recusa a exclusão.\n\nO uso é importado incrementalmente da tabela `local_runtime_token_usage` no mesmo banco de dados, sob a origem \"MiniMax Code (Session)\", com seu próprio filtro de aplicativo no painel. Os tokens de raciocínio contam como saída; o ID do modelo é a parte após o primeiro `\u002F` (`custom_provider:router\u002Fvendor\u002Fmodel` é registrado como `vendor\u002Fmodel`). Quando `cost_usd` do próprio MiniMax Code é um número finito e não negativo, ele é usado diretamente; quando está ausente, é negativo ou não é finito, o custo é calculado pela tabela de preços do CC Switch. Linhas cujo custo nativo é exatamente $0 são armazenadas como $0, mas, como qualquer outra linha de $0 com tokens, são recalculadas pelo preenchimento retroativo de custos compartilhado assim que o modelo recebe um preço na tabela. Assim como no Pi, totais que incluem o MiniMax Code vêm acompanhados do aviso de que os dados de gravação em cache estão incompletos. ([#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383))\n\n### Configurações de terceiros do Claude Desktop têm suporte a Linux\n\nAnteriormente, gravar a configuração de terceiros do Claude Desktop no Linux falhava com um erro de plataforma não compatível. Agora, o Linux usa a mesma estrutura de arquivos do macOS e do Windows: a raiz da configuração é `$XDG_CONFIG_HOME` (que deve ser um caminho absoluto), ou `~\u002F.config` quando não estiver definida; o CC Switch mantém os arquivos de configuração nos diretórios `Claude\u002F` e `Claude-3p\u002F` dentro dela. Quando o CC Switch é executado como Flatpak (detectado por `\u002F.flatpak-info`), ele sempre grava em `~\u002F.config` do sistema host, nunca no `XDG_CONFIG_HOME` privado do sandbox; se o Claude Desktop usar um diretório XDG personalizado, use o pacote nativo. O manifesto Flatpak incluído já concede acesso ao diretório inicial. Os caminhos do macOS e do Windows não mudam; o manual do usuário (zh\u002Fen\u002Fja) adiciona os caminhos do Linux e a tabela de escopo de suporte. ([#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331), corrige [#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855))\n\n### O log de solicitações exibe tokens de saída por segundo\n\nA tabela de logs de solicitações mostra a taxa de geração ao lado dos tokens de saída (por exemplo, `1,234\u002F56 tps`), e o painel de detalhes da solicitação a mostra entre parênteses após os tokens de saída. Quando uma solicitação em streaming tem um tempo registrado até o primeiro token, taxa = tokens de saída ÷ (latência total − tempo até o primeiro token), contando apenas a geração após o primeiro token; solicitações sem streaming usam a latência completa, portanto a taxa inclui a espera pelo primeiro token. Taxas de 1 ou mais são arredondadas para números inteiros, e taxas abaixo de 1 mantêm uma casa decimal. Linhas sem tokens de saída ou sem uma janela de tempo válida não exibem nada, inclusive as importadas dos logs de sessão do Claude Code, Codex e Gemini, que não têm dados de latência. A taxa é calculada no momento da exibição a partir dos campos armazenados, sem alterações no esquema ou nos logs. ([#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369), corrige [#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936))\n\n### Formulário de provedor OpenCode: pesquisa e adição em lote de modelos\n\nApós clicar em \"Fetch Models\", uma lista de seleção múltipla pesquisável aparece acima do formulário: filtre por ID do modelo ou proprietário, marque os modelos desejados (suas seleções são mantidas ao alterar o termo de pesquisa) e clique em \"Add selected (N)\" para adicioná-los de uma só vez; o ID do modelo serve tanto como chave de configuração quanto como nome de exibição inicial. Modelos já configurados aparecem marcados, não podem ser selecionados e são identificados como \"Already added\"; os nomes, limites e opções das entradas existentes permanecem inalterados. Alterar a URL Base ou a chave de API limpa a lista de candidatos e descarta uma resposta tardia do endpoint anterior; pressionar Enter na caixa de pesquisa não envia o formulário. O seletor suspenso existente por linha continua disponível; o formulário do provedor MiniMax Code, que reutiliza os campos do OpenCode, tem o mesmo seletor. ([#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515), corrige [#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423))\n\n### Novas predefinições\n\nKimi Global e Kimi For Coding Global ([#7526](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7526)), FluxA Token Plan e Soshow se juntam a sete aplicativos — Claude Code, Claude Desktop, Codex, Hermes, OpenClaw, OpenCode e Pi; as duas predefinições Kimi Global são para o site internacional da Kimi (kimi.ai). O Codex também ganha predefinições nativas de Responses para StepFun API (nacional e internacional), Baidu Qianfan (pagamento conforme o uso) e iFlytek Astron Coding Plan. Os provedores existentes não são afetados.\n\n### Outras adições\n\n- **Preços para cinco modelos**: `grok-4.7`, `glm-5.3-flashx`, `hy4-preview` (Hunyuan Hy4 Preview), `qwen3.8-2.4t-a95b` e `qwen3.8-27b` não tinham linhas de preço, então todas as solicitações eram registradas como $0. Após a atualização, o preenchimento retroativo na inicialização calcula os custos das solicitações históricas de $0 para esses IDs. Grok 4.7 usa o preço do nível básico para prompts com menos de 200K tokens.\n- **Aviso para dar estrela no cartão Sobre**: o cartão \"Settings → About\" adiciona uma linha de convite para dar uma estrela no GitHub entre o título e os botões, que abre o repositório ao ser clicada; o botão do GitHub passa para o início da linha de botões.\n\n---\n\n## Alterado\n\n### Predefinições domésticas do Codex alinhadas à documentação de Responses de cada fornecedor\n\n- **Kimi For Coding**: `kimi-for-coding` agora é servido por K2.8 Preview; sua linha no catálogo passa a se chamar \"Kimi For Coding (K2.8 Preview)\", a janela de contexto aumenta de 262144 para 1048576, declara entrada de texto e imagem, e seus níveis de raciocínio passam de apenas `high` para `low` \u002F `high` \u002F `max` (padrão `high`). `kimi-for-coding-highspeed` permanece em 262144, apenas com `high`.\n- **DeepSeek**: a predefinição agora usa `deepseek-flash` por padrão (V4.1 Flash, texto e imagem) em vez do alias antigo `deepseek-v4-flash`; a linha `deepseek-v4-pro` é declarada somente como texto, e ambas as linhas correspondem ao catálogo oficial do DeepSeek incluído no pacote. Cartões que ainda usam `deepseek-v4-flash` continuam funcionando normalmente, pois o fornecedor direciona esse alias para `deepseek-flash`.\n- **Tencent Hunyuan**: adiciona `hy4-preview` (entrada de 960K, somente texto); o modelo padrão continua sendo `hy3`.\n- **plataforma Qwen AI e QwenCloud com pagamento conforme o uso**: adicionam os modelos de pesos abertos `qwen3.8-2.4t-a95b` (somente texto) e `qwen3.8-27b` (texto e imagem).\n- **Nenhuma predefinição troca de protocolo**: as quatro predefinições Tencent Token Plan Enterprise permanecem em Chat, pois a TokenHub informa que Kimi K2.7 Code não é compatível com Responses, e DeepSeek V4 e GLM-5.2 também são convertidos para Chat no servidor.\n\n### Site chinês da MiniMax e BaiLing migram para os domínios oficiais atuais\n\nAs predefinições chinesas da MiniMax migram de `api.minimaxi.com` para `api.minimax.cn` nos sete aplicativos (Claude Code e Claude Desktop usam `\u002Fanthropic`; Codex, Hermes, OpenClaw, OpenCode e Pi usam `\u002Fv1`), e os links do site e da chave de API passam para `platform.minimax.cn`. A detecção de uso do Coding Plan reconhece tanto o domínio novo quanto o antigo e agora compara os nomes de host rótulo por rótulo, evitando que hosts semelhantes, como `api.minimax.cn.example.com`, a acionem. No Codex, `minimax.cn` é tratado como Responses nativo e tem `web_search` desativado, assim como o domínio antigo.\n\nBaiLing migra de `api.tbox.cn` para `api.ant-ling.com` nos mesmos sete aplicativos. Os seis aplicativos que ainda usam `Ling-2.5-1T` (não mais listado na documentação do fornecedor) agora usam `Ling-2.6-1T` por padrão, em conformidade com o Codex; `Ling-2.6-1T` também é registrado como modelo somente de texto — consulte as Notas de atualização.\n\n### `web_search` do Codex desativado nos endpoints Responses de StepFun, Baidu Qianfan e iFlytek Astron\n\n\nO Codex envia a ferramenta hospedada `web_search` por padrão, mas a API Responses da StepFun aceita apenas ferramentas `function`, e a documentação de Responses do Qianfan com pagamento conforme o uso e do Astron também não lista ferramentas hospedadas. Cartões Responses nativos em `stepfun.com`, `stepfun.ai`, `qianfan.baidubce.com` e `xf-yun.com` agora gravam `web_search = \"disabled\"` em `~\u002F.codex\u002Fconfig.toml` (para Qianfan e Astron, isso é preventivo; a rejeição não foi confirmada). Esses domínios também hospedam produtos Chat (StepFun Step Plan, Qianfan Coding Plan \u002F Token Plan, Astron Chat); portanto, os domínios como um todo não são tratados como Responses nativo, e a configuração `web_search` dos cartões Chat não é afetada.\n\n### Outras manutenções de predefinições\n\n- As predefinições SudoCode.chat de Claude Code, Claude Desktop, Codex e Grok Build recebem o endpoint de backup `api.sudorelay.com`, que aparece no teste de velocidade dos endpoints; o endereço padrão permanece `api.sudocode.chat`.\n- O site, o link de cadastro e a URL Base da APIKEY.FUN mudam de `apikey.fun` para `apikey.fan` em nove aplicativos; Claude Code, Claude Desktop, Codex, Gemini e Grok Build mantêm o endereço antigo como endpoint de backup.\n\n---\n\n## Corrigido\n\n### Solicitações 0.154+ do Codex com `additional_tools` não recebem mais 400 dos gateways Chat\n\nA partir de 0.154, o Codex reúne as ferramentas adicionais de uma solicitação (os namespaces de execução `functions` \u002F `collaboration` e os plugins) em um único item de entrada `additional_tools`: `{\"type\":\"additional_tools\",\"role\":\"developer\",\"tools\":[…]}`, que tem `role`, mas não `content`. O conversor de Responses para Chat do Codex tratava todo item com `role` como uma mensagem e gerava `{\"role\":\"system\",\"content\":null}` em `messages[1]`; gateways Chat estritos retornavam `messages[1]: missing field \"content\"` e rejeitavam a solicitação inteira, e essas ferramentas também eram descartadas silenciosamente nos caminhos de conversão para Chat e Anthropic. Agora, a iteração pelas mensagens ignora esse contêiner; suas ferramentas são deduplicadas e combinadas com `tools` de nível superior (em caso de conflito de nomes, prevalece a declaração de nível superior), os namespaces são expandidos (`exec_command` em `functions` torna-se `functions__exec_command`) e, no caminho de resposta, os nomes são mapeados de volta para o formato reconhecido pelo Codex. Solicitações sem o contêiner são convertidas exatamente como antes, byte a byte. ([#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454), corrige [#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451), [#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158))\n\n### Uma única imagem `detail: \"original\"` não interrompe mais uma sessão do Codex permanentemente\n\nQuando a entrada do catálogo Codex de um modelo declara `supports_image_detail_original`, o Codex marca imagens retornadas por ferramentas (por exemplo, capturas de tela de `view_image`) com `detail: \"original\"`, um valor válido apenas na API Responses. Na conversão para um upstream Chat, ele era copiado sem alterações para `image_url.detail`, e gateways estritos compatíveis com OpenAI (Ark\u002FDoubao, SenseNova, GLM, vLLM e outros) retornavam 400 para a solicitação inteira. O Codex reproduz o histórico completo a cada turno; assim, uma única imagem fazia a sessão falhar em todos os turnos seguintes, inclusive nos que continham somente texto.\n\nA correção tem duas camadas: em imagens Chat, o proxy rebaixa `original` para `auto` (`auto`, `low` e `high` são mantidos sem alterações), de modo que sessões já interrompidas — e versões do Codex anteriores a 0.155.0, que não corrigem o próprio histórico — se recuperam assim que você atualiza; e os catálogos do Codex gerados para conversão Chat sempre gravam `supports_image_detail_original: false`, para que o Codex pare de enviar `original` desde a origem. Imagens coladas diretamente na conversa nunca foram afetadas. ([#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476), corrige [#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495), [#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458))\n\n### Editar ou trocar de provedor Codex não apaga mais a chave de API salva\n\nAlguns provedores Codex têm sua própria fonte de credenciais na tabela `[model_providers.*]` (`env_key`, uma tabela `auth` \u002F `aws` ou `Authorization` em `http_headers`). Esses provedores não injetam nenhum token em `config.toml`, e o modo padrão exclui o `~\u002F.codex\u002Fauth.json` compartilhado sempre que troca para um provedor de terceiros; por isso, a autenticação no instantâneo ativo está sempre vazia e `OPENAI_API_KEY` no banco de dados é a única cópia da chave. Dois fluxos tratavam essa autenticação vazia como autoritativa: a caixa de edição do provedor atual preenchia o formulário a partir do instantâneo ativo, e o preenchimento retroativo ao trocar de provedor gravava o instantâneo ativo de volta no banco de dados. Como resultado, abrir o editor e salvar sem alterações, ou simplesmente trocar de provedor, apagava a chave silenciosamente; a caixa de diálogo do script de uso então tratava o cartão sem chave como uma assinatura oficial e redefinia o script salvo.\n\nAgora, os dois pontos tratam \"autenticação ativa sem credenciais\" (`auth.json` ausente ou contendo apenas o marcador de sessão encerrada `auth_mode`) como um campo ausente: a autenticação armazenada é preservada, enquanto o `config.toml` ativo continua sendo capturado como de costume. Quando a autenticação ativa contém credenciais reais, ela continua prevalecendo; assim, editar manualmente `~\u002F.codex\u002Fauth.json` ainda funciona. ([#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434), corrige [#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433))\n\n### Após excluir uma conta ChatGPT, é possível reassociar os cartões Codex vinculados a ela ou trocá-los de provedor\n\nExcluir uma conta ChatGPT gerenciada no Auth Center e entrar novamente gera um novo ID de conta local, mesmo para o mesmo usuário e espaço de trabalho ChatGPT. Os cartões Codex ainda vinculados ao ID antigo passavam então a falhar com `账号不存在: \u003Cid>` (conta não encontrada) a cada troca de rota, alternância de transferência, restauração na inicialização e reassociação; assim, os usuários não conseguiam trocar de provedor nem escolher uma nova conta nesse cartão.\n\n\nAgora, ao alternar, distingue-se entre “conta excluída” e “conta ainda presente, mas sem token correspondente no ambiente ativo”: para uma conta excluída, apenas o marcador de propriedade do cc-switch é liberado, e `~\u002F.codex\u002Fauth.json` permanece intacto; assim, se o mesmo usuário entrar mais tarde pelo Codex CLI nativo, o login não será excluído como se fosse gerenciado pelo cc-switch. Uma conta só é considerada excluída depois que `codex_oauth_auth.json` persistido passa pela validação; se o arquivo não puder ser lido, estiver malformado ou a conta ainda estiver no disco, a troca é interrompida e os arquivos ativos permanecem inalterados, sem suposições. Se a vinculação do próprio cartão estiver quebrada, o erro sugere clicar em “Escolher conta” no cartão do provedor para vinculá-lo novamente. Não há nova vinculação automática. ([#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395), corrige [#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392))\n\n### Ferramentas sem descrição não são mais enviadas como `null`\n\nOs conversores Claude-to-OpenAI Chat e Claude-to-Responses copiavam o `description` de cada ferramenta diretamente na solicitação. Assim, uma ferramenta sem descrição virava `\"description\": null`, e upstreams compatíveis com OpenAI que aplicam validação estrita rejeitavam todo o turno com 400 `expected string, received null`. As ferramentas hospedadas da Anthropic (como `web_search`) não têm descrição por definição, e ferramentas personalizadas e ferramentas MCP sem descrição também causam o problema: o que falha é a solicitação inteira, não apenas aquela ferramenta. Descrições ausentes ou explicitamente definidas como `null` agora são omitidas, e todos os demais valores são mantidos sem alterações; os campos continuam sendo gravados na ordem `name` → `description` → `parameters`, e ferramentas com descrição são serializadas exatamente como antes, byte a byte, sem afetar o cache de prompts. O conversor Codex de Responses para Chat tinha o mesmo problema com ferramentas de função e também foi corrigido ([#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)). ([#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319), corrige [#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303))\n\n### O modo automático do Claude Code funciona com o GitHub Copilot\n\nO classificador do modo automático do Claude Code envia `stop_sequences` em toda verificação de segurança. Com o GitHub Copilot, a conversão de Anthropic para OpenAI Chat mapeava esse parâmetro para `stop`, e a rota Chat Completions que o Copilot oferece para modelos Claude retorna 400 para esse parâmetro. Por isso, o classificador falhava todas as vezes, embora as conversas comuns funcionassem normalmente. Agora, o `stop` convertido só é removido quando o provedor é o GitHub Copilot; outros upstreams compatíveis com OpenAI (como o OpenRouter) continuam mantendo-o, como antes. ([#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404), corrige [#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175))\n\n### Os níveis `\u002Feffort` chegam intactos aos upstreams OpenAI e Grok\n\nA conversão do esforço de raciocínio do Claude Code para o formato OpenAI (`reasoning_effort` no Chat e `reasoning.effort` no Responses) tinha três lacunas, todas agora corrigidas:\n\n- `\u002Feffort xhigh` envia `output_config.effort: \"xhigh\"`, um valor que o analisador não reconhecia; além disso, como `output_config.effort` explícito prevalece sobre o fallback `thinking`, nenhum nível era enviado. Agora, `xhigh` é mapeado diretamente.\n- A lista de modelos com capacidade de raciocínio incluía apenas a série `grok-4.5` e `grok-build-*`; assim, os modelos Claude mapeados para `grok-4.6` \u002F `grok-4.6-build` perdiam todos os níveis, inclusive `max`. A lista agora inclui `grok-4.6` e `grok-4.6-*`.\n- `max` explícito sempre era rebaixado para `xhigh`. Agora, `max` é enviado sem alterações para `gpt-5.6`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna` e `gpt-6-astra`, que aceitam um nível máximo separado; os demais modelos continuam usando `xhigh` como fallback.\n\nAs solicitações com `low`, `medium` e `high` não mudam. ([#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318), [#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531), corrige [#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### O preço do DeepSeek V4 Pro volta ao nível máximo\n\nCom base no anúncio da DeepSeek de que “V4 Pro será direcionado ao V4.1 Flash a partir de 2026-09-14”, v3.20.3 antecipou a mudança de `deepseek-v4-pro` para os preços do nível Flash ($0.30 \u002F $1.20 por milhão de tokens, $0.006 para leitura do cache). A DeepSeek retirou o anúncio em 2026-09-12, e o V4 Pro continuou sendo cobrado pelo preço original; por isso, as solicitações do V4 Pro foram registradas por um valor muito inferior ao custo real. Esta versão restaura os preços para $1.32 de entrada, $3.96 de saída e $0.044 para leitura do cache por milhão de tokens (o nível máximo, isto é, CNY 9 \u002F 27 \u002F 0.3). A correção só reescreve linhas cujas quatro colunas de preço ainda contenham os valores gravados por v3.20.3 (0.3 \u002F 1.2 \u002F 0.006 \u002F 0); linhas personalizadas permanecem intactas. IDs da família Flash, como `deepseek-v4-flash` e `deepseek-flash`, continuam com o preço do nível V4.1 Flash.\n\n### A lista de prompts volta a ler alterações externas nos arquivos ativos\n\nDepois que o arquivo global `CLAUDE.md`, `AGENTS.md` ou o arquivo de prompts ativo de outro aplicativo era editado fora do CC Switch, a lista de prompts continuava exibindo o conteúdo antigo do banco de dados até a reinicialização. Agora, ao carregar a lista, o conteúdo do arquivo ativo é lido novamente, e o prompt atualmente habilitado é atualizado se houver diferença; quando a janela volta a receber foco, um painel de prompts aberto também é atualizado (aguardando caso uma edição, confirmação ou gravação esteja em andamento). Apenas o prompt habilitado é atualizado; os outros modelos permanecem intactos. Se o arquivo estiver ausente, ilegível, vazio ou contiver apenas espaços em branco, o conteúdo armazenado é mantido; a atualização também é ignorada durante uma sincronização ou restauração. O Pi continua usando seu próprio mecanismo de ativação baseado em `AGENTS.md` e não está incluído. ([#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194))\n\n### Instalação de skills: IDs diferentes dos nomes de diretório e repositórios com arquivos demais\n\n\n- O skills.sh usa o `skillId` de uma skill como nome do diretório, mas o ID nem sempre corresponde ao nome do diretório no repositório. Por exemplo, `tencent\u002FWeChatReading` publica `name: weread-skills` em `skills\u002FSKILL.md`, então a instalação falhava; e, mesmo depois de instalada, a verificação de atualizações só comparava pelo nome do diretório e não a encontrava. A busca agora tenta primeiro o caminho explícito e um diretório com o mesmo nome; depois, aceita um `SKILL.md` cujo metadado `name` seja igual ao ID (ele precisa ser único; se vários diretórios declararem o mesmo nome, a instalação é recusada em vez de escolher um arbitrariamente). A verificação de atualizações dá preferência ao caminho de origem salvo, para que a skill continue recebendo atualizações mesmo depois de ser movida ou renomeada dentro do repositório. ([#6381](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6381), corrige [#6365](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6365))\n- A instalação de uma skill baixa um arquivo compactado de todo o repositório GitHub, e um repositório como `hugohe3\u002Fppt-master`, com 13,248 entradas, excedia o limite de 10,000 entradas e falhava com `ARCHIVE_TOO_MANY_ENTRIES`. O limite de entradas para arquivos remotos, instalações locais de ZIP e restaurações via WebDAV foi aumentado para 30,000; o limite efetivo continua sendo o orçamento de descompactação de 512 MiB. ([#7489](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7489), corrige [#7475](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7475))\n\n### Diretórios do OpenCode no WSL também encontram a configuração unificada do OMO\n\nQuando o diretório de configuração do OpenCode aponta para o WSL (`\\\\wsl.localhost\\\u003Cdistro>\\home\\\u003Cuser>\\.config\\opencode` ou `\\\\wsl$\\…`), o OMO 4.19.3 e versões posteriores mantêm a configuração unificada no diretório pessoal do lado do WSL (`~\u002F.omo\u002Fomo.jsonc` ou `omo.json`). O CC Switch só procurava no diretório pessoal do Windows e, quando não encontrava nada, usava silenciosamente o arquivo antigo de plugin que o OMO já não lê (`oh-my-opencode.jsonc`). A troca parecia ter funcionado, mas não surtia efeito. Agora, o diretório pessoal do WSL é determinado a partir do caminho WSL do diretório do OpenCode, e as operações de leitura, gravação e exclusão verificam esse local primeiro; se não houver configuração unificada em nenhum dos lados, o sistema continua recorrendo ao arquivo antigo. ([#7550](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7550), corrige [#7363](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7363))\n\n### A janela principal do Windows mantém o botão na barra de tarefas quando aberta por outros meios\n\nApós uma inicialização silenciosa ou ao fechar para a bandeja, a janela principal do Windows é ocultada com `skip_taskbar(true)`, e somente a opção “Abrir janela principal” da bandeja redefine essa flag antes de `show()`. Quando a janela era reaberta por qualquer outro meio, não tinha botão na barra de tarefas; bastava minimizá-la uma vez para ficar impossível encontrá-la. Agora, todos estes meios chamam primeiro `set_skip_taskbar(false)`: iniciar novamente por um atalho ou pelo menu Iniciar enquanto o aplicativo já está em execução, links profundos `ccswitch:\u002F\u002F` que trazem a janela principal para o primeiro plano, eventos de abertura de URL e a tela de recuperação do banco de dados exibida quando há incompatibilidade de versão. ([#6348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6348))\n\n### “Ocultar atribuição à IA” também oculta os links de sessão do Claude Code\n\nOs commits e PRs que o Claude Code cria para sessões Web e Remote Control incluem um link de sessão claude.ai, controlado por um `attribution.sessionUrl` separado; limpar apenas `commit` e `pr` já não basta para ocultar toda a atribuição. Agora, a opção “Ocultar atribuição à IA” do editor Claude grava `attribution: {commit: \"\", pr: \"\", sessionUrl: false}` e aparece marcada somente quando os três requisitos são atendidos. Ao desmarcá-la, o objeto `attribution` inteiro continua sendo excluído. ([#7053](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7053))\n\n### Detecção de versão na página Sobre: sem baixar todos os metadados do npm nem confundir versões do Ubuntu com versões das ferramentas\n\n- Para verificar a versão mais recente de ferramentas distribuídas pelo npm, era baixado o packument completo do npm (14–25 MB após descompactação para pacotes com lançamentos frequentes, como Codex, OpenCode e OpenClaw) apenas para ler `dist-tags`. Além disso, essa era a única verificação sem o tempo limite de 15 segundos, recorrendo aos 600 segundos do cliente compartilhado. Em redes lentas, o cartão podia permanecer em “Carregando...” por vários minutos. Agora, é usado o endpoint dedicado `\u002F-\u002Fpackage\u002F{package}\u002Fdist-tags` (respostas de apenas algumas dezenas de bytes a poucos KB), com tempo limite de 15 segundos; tempos esgotados, erros de rede e 404s exibem “Desconhecido”. ([#7346](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7346), corrige [#7339](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7339))\n- No Windows, a verificação de ferramentas dentro do WSL executa `\u003Ctool> --version` em um shell de login interativo e usa o primeiro `x.y.z` da saída padrão. O Ubuntu exibe a mensagem do dia (MOTD) no primeiro login de cada dia (“Bem-vindo ao Ubuntu 24.04.4 LTS …”), então o cartão do Claude Code mostrava `24.04.4`. Agora, uma string sentinela é exibida antes de executar a ferramenta, e somente a saída após a última sentinela é analisada. ([#7348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7348), corrige [#7347](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7347))\n\n### O endpoint Responses da Zhipu pode buscar a lista de modelos\n\nO endpoint OpenAI Responses da Zhipu (`https:\u002F\u002Fopen.bigmodel.cn\u002Fapi\u002Fv1`, a URL base da predefinição Zhipu GLM Codex) retorna `\u002Fmodels` no formato de catálogo remoto do Codex (`models[].slug`), em vez de `data[].id` da OpenAI \u002F Anthropic; por isso, a busca de modelos no formato de provedor Codex sempre retornava uma lista vazia. Agora, quando o campo `data` não existe, o sistema recorre à leitura de `models[].slug`; o comportamento permanece inalterado quando `data` está presente. ([#7330](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7330))\n\n### O endpoint da família Codex da AICodeWith mudou para `\u002Fv1`\n\nO endpoint Responses da AICodeWith é `https:\u002F\u002Fapi.aicodewith.ai\u002Fv1`; `\u002Fchatgpt\u002Fv1` no blog do fornecedor é um erro de documentação (confirmado com o fornecedor). A predefinição Codex e as predefinições Hermes, OpenClaw e Pi que reutilizam o mesmo endpoint agora usam `\u002Fv1`. Os cartões existentes precisam ser editados manualmente — consulte as Notas de atualização.\n\n### O Claude Desktop oferece contexto de 1M nas rotas DeepSeek V4\n\nA família DeepSeek V4 tem um contexto de 1M, mas as predefinições do Claude Desktop fixadas nesses modelos não habilitavam `supports1m`, então a lista de modelos do Claude Desktop nunca oferecia uma opção de 1M. As predefinições DeepSeek (`deepseek-v4-pro` para Sonnet \u002F Opus, `deepseek-v4-flash` para Haiku), OpenCode Go (`deepseek-v4-flash`) e Baidu Qianfan Token Plan (`deepseek-v4-pro`) agora declaram todas 1M. O sufixo `[1m]` só tem efeito local no Claude Desktop; o que é enviado ao provedor permanece inalterado.\n\n### A lista de provedores volta ao topo ao alternar entre apps\n\nA visualização de provedores reutilizava seu contêiner de rolagem ao alternar entre apps e apenas substituía a lista animada dentro dele, fazendo com que a posição de rolagem do app anterior fosse mantida: depois de sair de uma lista longa rolada até o fim, o próximo app podia parecer uma página em branco. Agora, ao alternar entre apps, tanto o contêiner principal da página quanto o contêiner da lista de provedores voltam ao canto superior esquerdo antes da renderização. ([#5211](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5211))\n\n### Detalhes da interface\n\n- **Fim das categorias de uso desatualizadas**: depois de desativar o script de uso ou mudar para o modelo oficial de assinatura, o cartão do provedor deixa de mostrar o botão de expansão de várias categorias do resultado do script antigo; o mesmo vale para os cartões de provedores oficiais.\n- **Ícones monocromáticos nas predefinições**: os ícones monocromáticos no seletor de predefinições agora usam a cor de primeiro plano, combinando com a prévia do formulário e os cartões de provedores (ícones como 9527CODE pareciam acinzentados).\n- **Ícones de provedores Pi**: provedores Pi sem ícone não são mais salvos com o logotipo do app Pi; o cartão mostra a inicial do nome, como nos provedores personalizados de outros apps. ([#6826](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6826))\n- **Texto em chinês tradicional**: a dica de chave duplicada no formulário Pi agora usa 「供應商識別碼」, de acordo com o rótulo do campo. ([#7187](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7187))\n\n---\n\n## Observações sobre a atualização\n\n### Esta versão inclui uma migração do banco de dados\n\n`SCHEMA_VERSION` 18 → 19: as tabelas `mcp_servers` e `skills` recebem, cada uma, uma coluna `enabled_mcode`, desativada por padrão. A migração é executada automaticamente na primeira inicialização. O CC Switch tenta primeiro fazer uma cópia de segurança do banco de dados, colocando-a em `~\u002F.cc-switch\u002Fbackups\u002F` (os nomes dos arquivos começam com `db_backup_`); porém, uma falha no backup é apenas registrada e não interrompe a atualização. Depois de executar esta versão, v3.20.3 e anteriores se recusam a abrir o banco de dados com a mensagem \"Database version is too new\", e só é possível reverter restaurando o backup anterior à atualização. Para garantir a segurança, feche o CC Switch antes de atualizar e faça uma cópia manual:\n\n```bash\ncp ~\u002F.cc-switch\u002Fcc-switch.db ~\u002Fcc-switch-before-v3.20.4.db\n```\n\nNo Windows, o local padrão é `%USERPROFILE%\\.cc-switch\\cc-switch.db`. Se você alterou o diretório de configuração em Settings, tanto o banco de dados quanto `backups\u002F` ficam nesse diretório.\n\n### MiniMax Code aparece por padrão no seletor de apps\n\nIsso também se aplica a instalações cujas configurações são anteriores a esta versão. Se não precisar dele, desative-o em \"Settings → Homepage Display\".\n\n### Os dados existentes do MiniMax Code são importados automaticamente\n\n- Os provedores personalizados que já estão em `~\u002F.minimax\u002Fconfig.yaml` são importados na primeira vez que você abre a página do MiniMax Code.\n- `~\u002F.minimax\u002FAGENTS.md` é importado na inicialização apenas se as bibliotecas de prompts de todos os apps ainda estiverem vazias (na prática, uma instalação nova) e se o arquivo não tiver mais de 32 KiB. Quem está atualizando e já tem prompts do Claude, Codex ou de outros apps não recebe uma importação automática; na primeira vez que um prompt do MiniMax Code é ativado, o conteúdo do arquivo é salvo primeiro como prompt de backup, para que nada seja perdido.\n- A primeira sincronização de uso importa todo o histórico de `local_runtime_token_usage`, para que os totais do MiniMax Code no painel incluam imediatamente o uso anterior.\n- Os servidores MCP e Skills existentes ficam desativados por padrão no MiniMax Code; até que você os ative manualmente, o CC Switch não grava nada em `~\u002F.minimax`.\n\n### O diretório de dados do MiniMax Code vem somente das variáveis de ambiente\n\nO CC Switch lê `MINIMAX_DATA_DIR` e, em seguida, `MAVIS_DATA_DIR`, do próprio ambiente, e usa `~\u002F.minimax` se nenhuma estiver definida. Não há opção para substituir o diretório em Settings; se o MiniMax Code usar um diretório personalizado, o CC Switch precisa ser iniciado com a mesma variável de ambiente.\n\n### Altere o modelo padrão no MiniMax Code\n\nPara excluir ou desativar um provedor ou modelo referenciado por `defaultModel` \u002F `defaultLightModel`, primeiro escolha outro modelo padrão no MiniMax Code. Enquanto o MiniMax Code mantiver o bloqueio da configuração, o salvamento falhará com uma solicitação para tentar novamente, em vez de aguardar indefinidamente.\n\n### Cartões Codex vinculados a uma conta ChatGPT excluída precisam ser vinculados novamente uma vez, manualmente\n\nNão há nova vinculação automática: clique em \"Choose account\" no cartão e escolha o novo login. Até o cartão ser vinculado novamente, não é possível ativar a tomada de controle do Codex para ele; se ela estava ativa quando você fechou o app pela última vez, a restauração na inicialização desativa a tomada de controle do Codex porque a verificação da vinculação falha, deixando `~\u002F.codex\u002Fauth.json` intacto. Ative novamente a tomada de controle após vincular o cartão. ([#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395))\n\n### Chaves de API do Codex já apagadas não são restauradas automaticamente\n\nA correção apenas evita apagamentos futuros. Se a chave de um provedor Codex já foi perdida em uma edição ou alternância anterior, insira-a novamente; se o script de uso também foi redefinido como consequência, ele precisará ser configurado novamente. ([#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434))\n\n### É preciso verificar novamente \"Hide AI Attribution\"\n\nAgora, para que a opção seja considerada ativada, `attribution.sessionUrl` também precisa estar `false`, então uma configuração salva no formato antigo `{commit: \"\", pr: \"\"}` aparece desmarcada após a atualização. Marque-a novamente para adicionar `sessionUrl: false`; as configurações existentes não são regravadas automaticamente. ([#7053](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7053))\n\n### Abrir a lista de prompts incorpora edições externas nos arquivos ativos\n\n\nSe o arquivo de prompt ativo de um app (`CLAUDE.md`, `AGENTS.md` etc.) for diferente do prompt ativado e não estiver vazio, abrir a lista de prompts substitui no banco de dados o conteúdo armazenado pelo conteúdo do arquivo. Modelos inativos não são afetados, e Pi não está incluído. ([#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194))\n\n### O esforço de raciocínio enviado corresponde ao nível escolhido\n\n`\u002Feffort max` em `gpt-5.6`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna` e `gpt-6-astra` agora solicita de fato o nível `max` ([#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531)); `\u002Feffort xhigh` e qualquer nível em modelos mapeados para `grok-4.6` \u002F `grok-4.6-*` agora enviam um esforço de raciocínio, enquanto antes nada era enviado ([#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318)). O uso de tokens de raciocínio e a latência podem aumentar de acordo.\n\n### Algumas solicitações convertidas têm uma falha de cache de prefixo após a atualização\n\nDois tipos de solicitações mudam no nível de bytes uma vez após a atualização e permanecem estáveis depois disso: primeiro, solicitações Codex que incluem o transporte `additional_tools` em upstreams Chat ou Anthropic permissivos ([#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454)), nas quais a mensagem de sistema `content: null` desaparece e as ferramentas do transporte são mescladas em `tools`; segundo, solicitações que contêm ferramentas sem descrição em upstreams permissivos que antes aceitavam `\"description\": null` ([#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319), [#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)). Ferramentas com descrição são serializadas sem alterações.\n\n### `Ling-2.6-1T` agora é tratado como um modelo somente de texto\n\nIsso se aplica a todos os provedores que usam esse ID, não apenas às predefinições: com a alternativa de mídia do proxy ativada, as imagens enviadas a ele são substituídas pelo marcador `[Unsupported Image]` antes de a solicitação ser enviada ao upstream.\n\n### O Claude Desktop no Linux não requer migração\n\nMude para um provedor Claude Desktop e reinicie o Claude Desktop, como em outras plataformas. Se a sua própria compilação Flatpak tiver permissões mais restritas que o manifesto incluído, conceda acesso de leitura e gravação a `xdg-config\u002FClaude` e `xdg-config\u002FClaude-3p`, por exemplo (substitua o ID do app no final pelo da sua compilação):\n\n```bash\nflatpak override --user --filesystem=xdg-config\u002FClaude --filesystem=xdg-config\u002FClaude-3p com.ccswitch.desktop\n```\n\n### Provedores Pi antigos sem ícone ainda mostram o ícone Pi\n\nSomente os provedores salvos daqui em diante passarão a mostrar a inicial do nome. Para atualizar um cartão antigo, basta alterar o ícone no formulário. ([#6826](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6826))\n\n### Alterações nas predefinições afetam somente provedores criados depois\n\nOs cartões existentes mantêm a configuração registrada quando foram criados. Alterações desta versão:\n\n- **Site da MiniMax na China**: os cartões existentes continuam usando `api.minimaxi.com`; a detecção de uso, o catálogo Responses nativo do Codex e a opção `web_search` continuam reconhecendo esse domínio, portanto continuam funcionando.\n- **BaiLing**: os cartões existentes mantêm `api.tbox.cn`, e os apps diferentes do Codex continuam usando `Ling-2.5-1T`. Edite a Base URL e o modelo, ou adicione novamente a predefinição.\n- **AICodeWith**: altere manualmente os cartões Codex, Hermes, OpenClaw e Pi existentes para `https:\u002F\u002Fapi.aicodewith.ai\u002Fv1`.\n- **APIKEY.FUN**: os cartões existentes mantêm `api.apikey.fun`.\n- **Endpoint alternativo `api.sudorelay.com` do SudoCode.chat**: é incluído somente nos cartões Claude Code, Claude Desktop, Codex e Grok Build recém-criados; os cartões existentes podem adicioná-lo como endpoint personalizado no teste de velocidade de endpoints.\n- **Catálogos de modelos Codex**: a linha K2.8 Preview da Kimi For Coding (janela de 1M, `low` \u002F `high` \u002F `max`), o padrão `deepseek-flash` e a linha somente de texto `deepseek-v4-pro` da DeepSeek, o `hy4-preview` da Hunyuan e as linhas de modelos open-weight do Qwen. Adicione-os manualmente ao catálogo de modelos do cartão ou adicione novamente a predefinição.\n- **Opção de 1M do Claude Desktop** (predefinições DeepSeek, OpenCode Go e Baidu Qianfan Token Plan): marque \"Declare 1M\" para a rota correspondente no editor do provedor ou adicione novamente a predefinição.\n- **Site internacional da Kimi**: os cartões Kimi existentes ainda usam os domínios da China (`api.moonshot.cn` \u002F `api.kimi.com`); para chaves do site internacional kimi.ai, use as novas predefinições Kimi Global \u002F Kimi For Coding Global.\n\n### Correções do catálogo Codex entram em vigor na próxima troca de provedor\n\n`config.toml` e os arquivos do catálogo são regenerados ao trocar de provedor. Alterações desta versão: cartões com upstream Chat deixam de declarar `supports_image_detail_original` ([#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476)); cartões Responses nativos em `stepfun.com`, `stepfun.ai`, `qianfan.baidubce.com`, `xf-yun.com` e `minimax.cn` gravam `web_search = \"disabled\"`; cartões em `minimax.cn` usam o catálogo Responses nativo; e `Ling-2.6-1T` é declarado como somente texto. Alterne para outro provedor e volte uma vez nos cartões afetados. A conversão no proxy de `original` para `auto` entra em vigor imediatamente, e sessões já interrompidas por uma captura de tela também não exigem edição manual do histórico.\n\n### Preços\n\n- As cinco novas linhas de preços são gravadas com `INSERT OR IGNORE` (linhas com o mesmo nome que você já adicionou são mantidas), e o preenchimento retroativo na inicialização completa os custos de solicitações históricas com esses IDs que haviam sido registradas por US$0; linhas que já têm custo diferente de zero não são alteradas.\n- A correção de `deepseek-v4-pro` altera a linha de volta para 1.32 \u002F 3.96 \u002F 0.044 somente se ela ainda contiver exatamente os valores 0.3 \u002F 1.2 \u002F 0.006 \u002F 0 gravados por v3.20.3; linhas personalizadas são mantidas, mas não é possível distinguir uma linha definida manualmente com exatamente esses valores, que também será redefinida. Os custos de V4 Pro registrados durante v3.20.3 _não_ são recalculados, pois o preenchimento retroativo processa somente linhas com custo de US$0 ou menos e com uso de tokens; portanto, apenas as solicitações posteriores à atualização são cobradas pelo preço restaurado.\n- 4.7 do Grok tem o preço do nível básico para prompts com menos de 200K tokens; a xAI cobra o dobro (US$4 \u002F US$12) para prompts com 200K tokens ou mais, um nível que a tabela de preços não diferencia.\n\n---\n\n## Aviso de risco\n\n### Avisos mantidos de versões anteriores\n\n**Login OAuth do xAI Grok**: reutiliza a identidade de cliente OAuth pública da CLI oficial do Grok; seu uso pode levar à restrição ou suspensão da conta — consulte as [notas da versão v3.18.0](v3.18.0-en.md#risk-notice) para obter detalhes.\n\n**Proxy reverso OAuth do Codex**: usar o OAuth do Codex de uma assinatura do ChatGPT por meio de um proxy reverso pode violar os termos de serviço da OpenAI. Consulte as [notas da versão v3.13.0](v3.13.0-en.md#️-risk-notice) para obter detalhes.\n\n**Consultas de cota do SuperGrok**: a exibição da cota nos cartões de provedores depende de um endpoint de cobrança não público em grok.com e pode parar de funcionar quando a xAI alterar a interface — consulte as [notas da versão v3.19.0](v3.19.0-en.md#risk-notice) para obter detalhes.\n\n**Roteamento para provedores terceirizados**: quando o proxy local do CC Switch converte e encaminha solicitações do Codex, Claude Desktop ou Grok Build para um provedor terceirizado, cada provedor tem restrições diferentes quanto a cobrança, conformidade e retenção de dados. Leia os termos de serviço do provedor de destino antes de usar.\n\nAo ativar esses recursos, os usuários aceitam os riscos associados. O CC Switch não se responsabiliza por restrições ou avisos à conta, nem pela suspensão do serviço decorrentes do uso desses recursos.\n\n---\n\n## Agradecimentos\n\n28 dos 46 commits desta versão vieram de 22 colaboradores externos, 11 deles contribuindo pela primeira vez.\n\n### Contribuições de código\n\n- Agradecemos a @SaladDay pela integração do MiniMax Code ([#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383)) e pela recuperação de cartões do Codex vinculados a uma conta do ChatGPT excluída ([#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395), corrige [#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392)).\n- Agradecemos a @thisTom pela atualização do cartão após a exclusão de um provedor MiniMax Code ([#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578)).\n- Agradecemos a @Railgun-wiki pelo suporte a Linux à configuração de terceiros do Claude Desktop ([#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331), corrige [#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855)), sua primeira contribuição; @vianrina enviou o mesmo recurso em [#7389](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7389), e duas melhorias dele — a condição de execução dos testes e a tabela de escopo de suporte do manual — estão incluídas nesta versão.\n- Agradecemos a @SailingLoong pelo tratamento de `additional_tools` ([#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454), corrige [#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451), [#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158)), por não enviar mais `null` para ferramentas sem descrição ([#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319), corrige [#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303); a correção equivalente no fluxo do Codex está em [#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)), e pelo esforço de raciocínio 4.6 do Grok e encaminhamento de `xhigh` ([#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318), corrige [#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 relatou [#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158) e já havia enviado uma correção em [#6159](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6159).\n- Agradecemos a @nameserendipity pela correção em duas camadas para imagens do Codex `detail: \"original\"` ([#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476), corrige [#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495), [#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458)), sua primeira contribuição; @szupzj18 já havia proposto uma correção direcionada ao Ark em [#6515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6515), e @somnifex também havia proposto outra correção em [#7104](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7104).\n- Agradecemos a @YUZHEthefool pela correção que impedia que a chave de API salva do Codex fosse apagada ([#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434), corrige [#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433)); @SailingLoong havia enviado a mesma correção em [#7492](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7492).\n- Agradecemos a @liuziyuan pela correção do classificador do modo automático no GitHub Copilot ([#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404), corrige [#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175)), sua primeira contribuição.\n- Agradecemos a @2doright por manter o nível `max` para GPT-5.6 e GPT-6 Astra ([#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531), corrige [#5367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5367)), sua primeira contribuição.\n- Agradecemos a @juexe pelos tokens de saída por segundo no registro de solicitações ([#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369), corrige [#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936)), sua primeira contribuição.\n- Agradecemos a @funkpopo pela busca de modelos e adição em lote no formulário do OpenCode ([#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515), corrige [#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423)), sua primeira contribuição.\n- Agradecemos a @allenxu09 pelos avisos ao reler arquivos ativos após edições externas ([#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194)).\n- Agradecemos a @xwil1 pela instalação e atualização de skills do skills.sh cujo ID difere do nome do diretório ([#6381](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6381), corrige [#6365](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6365)).\n- Agradecemos a @yovinchen pela instalação de repositórios grandes de skills ([#7489](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7489), corrige [#7475](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7475)).\n- Agradecemos a @fszcd pela detecção da configuração unificada do OMO no WSL ([#7550](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7550), corrige [#7363](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7363)), dando continuidade à sua contribuição anterior em [#7367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7367).\n- Agradecemos a @misaka-myu pelo botão da barra de tarefas da janela principal do Windows ([#6348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6348)).\n\n- Agradecemos a @sj817 por \"Hide AI Attribution\", que cobre links de sessão ([#7053](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7053)), sua primeira contribuição.\n- Agradecemos a @lyfuci pela verificação dos dist-tags do npm ([#7346](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7346), corrige [#7339](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7339)) e pela interferência do MOTD na detecção da versão do WSL ([#7348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7348), corrigindo [#7347](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7347), que a própria pessoa relatou), sua primeira contribuição; @NineSu havia adicionado um timeout à mesma verificação anteriormente em [#7307](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7307).\n- Agradecemos a @xwwwb pela lista de modelos para o endpoint Responses da Zhipu ([#7330](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7330)), sua primeira contribuição.\n- Agradecemos a @Muleizhang por redefinir a posição de rolagem ao alternar aplicativos ([#5211](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5211)), dando continuidade ao seu próprio trabalho anterior em [#4397](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F4397).\n- Agradecemos a @JackieJK pelos ícones de provedor do Pi usarem a inicial do nome como alternativa ([#6826](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6826)), sua primeira contribuição.\n- Agradecemos a @ntdatt812 pela consistência da redação no formulário do Pi em chinês tradicional ([#7187](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7187)).\n- Agradecemos a @ysntony pelas predefinições do site internacional do Kimi ([#7526](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7526)) e pelos ajustes nos links do Kimi no README ([#7522](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7522)), sua primeira contribuição.\n\n### Relatos de problemas\n\n- Agradecemos a @zhanghuihubei e @BigStrongSun por relatarem que o `additional_tools` do Codex 0.154 se transformava em uma mensagem de sistema vazia na conversão de Chat ([#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451), [#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158)).\n- Agradecemos a @ywy0 e @BAOfanTing por relatarem que capturas de tela do Codex retornavam 400 por meio de Ark\u002FDoubao e SenseNova ([#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495), [#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458)).\n- Agradecemos a @paiguFK por relatar que a chave de API era apagada após a edição de um provedor do Codex ([#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433)).\n- Agradecemos a @phjzs por relatar a vinculação órfã após excluir uma conta do ChatGPT e entrar novamente ([#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392)).\n- Agradecemos a @Syuryuuki por relatar que ferramentas sem descrição produziam `null` e causavam 400 ([#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303)).\n- Agradecemos a @JoaquinHJ por relatar que o classificador do modo automático não podia ser usado com o GitHub Copilot ([#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175)).\n- Agradecemos a @NorthDream-Y e @xiaodream551-a11y por relatarem que o esforço de raciocínio do Grok 4.6 era perdido e que o `max` do GPT-5.6 era rebaixado ([#7314](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7314), [#5367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5367)); e a @bowendeng286-cmd e @icannotwait por relatarem que `xhigh` e outros níveis de esforço de raciocínio não surtiam efeito ao serem encaminhados pelo protocolo OpenAI ([#6197](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6197), [#3389](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F3389)).\n- Agradecemos a @xngch por solicitar suporte a Linux para o Claude Desktop ([#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855)).\n- Agradecemos a @Morganwan90 e @CrazyFigure por relatarem falhas na instalação de 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)); e a @jambo200 por solicitar um limite maior de entradas ZIP ([#7513](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7513)).\n- Agradecemos a @liushilongpku por relatar que a configuração unificada do OMO não era detectada no WSL ([#7363](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7363)).\n- Agradecemos a @netszzy por relatar que a detecção de versão baixava todos os metadados do npm sem timeout ([#7339](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7339)).\n- Agradecemos a @sberry007 por sugerir que o log de solicitações exibisse a taxa de saída ([#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936)).\n- Agradecemos a @Zingsun por solicitar uma forma de adicionar diretamente os modelos encontrados à configuração do OpenCode ([#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423)).\n\n---\n\n## Baixar e instalar\n\nAcesse [Releases](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Flatest) e baixe a versão para seu sistema, ou obtenha-a no site oficial [ccswitch.io](https:\u002F\u002Fccswitch.io) (os downloads são distribuídos por nós de borda da Cloudflare e não dependem da disponibilidade do GitHub).\n\n### Requisitos do sistema\n\n| Sistema | Versão mínima | Arquitetura |\n| ------- | ------------- | ----------- |\n| Windows | Windows 10 ou posterior | x64 \u002F ARM64 |\n| macOS | macOS 12 (Monterey)+ | Intel (x64) \u002F Apple Silicon (arm64) |\n| Linux | Consulte a tabela abaixo | x64 \u002F ARM64 |\n\n### Windows\n\n| Arquivo | Descrição |\n| ------- | --------- |\n| `CC-Switch-v3.20.4-Windows.msi` | **Recomendado** - instalador MSI com atualização automática |\n| `CC-Switch-v3.20.4-Windows-Portable.zip` | Versão portátil: descompacte e execute |\n\nEm dispositivos Windows ARM64, escolha o artefato cujo nome de arquivo contém a etiqueta `arm64`.\n\n### macOS\n\n| Arquivo | Descrição |\n| ------- | --------- |\n| `CC-Switch-v3.20.4-macOS.dmg` | **Recomendado** - instalador DMG; arraste para Aplicativos |\n\n| `CC-Switch-v3.20.4-macOS.zip` | Descompacte e arraste para Aplicativos; binário universal |\n| `CC-Switch-v3.20.4-macOS.tar.gz` | Para instalação e atualização automática pelo Homebrew |\n\nInstalação pelo Homebrew:\n\n```bash\nbrew install --cask cc-switch\n```\n\nAtualização:\n\n```bash\nbrew upgrade --cask cc-switch\n```\n\n### Linux\n\nHá arquivos Linux disponíveis para **x86_64** e **ARM64** (`aarch64`). Escolha o arquivo cuja etiqueta de arquitetura corresponda à saída de `uname -m` em sua máquina:\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| Distribuição | Formato recomendado | Comando de instalação |\n| ------------ | ------------------- | -------------------- |\n| Ubuntu \u002F Debian \u002F Linux Mint \u002F Pop!\\_OS | `.deb` | `sudo dpkg -i CC-Switch-*.deb` ou `sudo apt install .\u002FCC-Switch-*.deb` |\n| Fedora \u002F RHEL \u002F CentOS \u002F Rocky Linux | `.rpm` | `sudo rpm -i CC-Switch-*.rpm` ou `sudo dnf install .\u002FCC-Switch-*.rpm` |\n| openSUSE | `.rpm` | `sudo zypper install .\u002FCC-Switch-*.rpm` |\n| Arch Linux \u002F Manjaro | `.AppImage` | Torne executável e execute diretamente, ou use o AUR |\n| Outras distribuições \u002F não sabe | `.AppImage` | `chmod +x CC-Switch-*.AppImage && .\u002FCC-Switch-*.AppImage` |\n\n\n[Versão oficial](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Ftag\u002Fv3.20.4).","2026-09-22T15:45:41Z",626,"2026-10-07T09:38:27.243348Z",[471],{"area":454,"items":472},[473,474,475,476,477],"Gerencie sessões, provedores e uso do MiniMax Code.","Exiba tokens\u002Fs; pesquise e adicione modelos do OpenCode em lote.","Corrige additional_tools do Codex e imagens originais em detail.","Preserva chaves de API salvas e restaura ações de vinculação.","Inclui migração do banco e alertas explícitos de atualização.","Adiciona gerenciamento do MiniMax Code, aprimora predefinições de provedores e exibição de uso, e corrige problemas de roteamento, credenciais e skills.","CC Switch 3.20.4",{"locale":431,"machineTranslated":36,"sourceLocale":423,"status":432},"3.20.4",{"bodyMarkdown":483,"brewCommittedAt":484,"hasNotes":32,"id":485,"isLatest":36,"isPrerelease":36,"machineTranslated":36,"publishedAt":486,"sections":487,"source":461,"sourceLocale":423,"summary":495,"title":496,"translation":497,"version":498},"# CC Switch v3.20.3\n\n> As APIs oficiais dos principais modelos de código aberto da atualidade já oferecem suporte nativo ao formato OpenAI Responses. Esta versão migra as duas predefinições Codex do Kimi da conversão Chat Completions para **conexão direta nativa com Responses**. Assim, as predefinições Codex oficiais de DeepSeek, Zhipu GLM, Qwen, MiniMax, Xiaomi MiMo, LongCat e Kimi conectam-se diretamente ao endpoint do fornecedor; junto com Volcengine Doubao e Tencent Hunyuan, não precisam mais de roteamento local para converter formatos. Se o seu cartão Codex ainda usa o formato Chat com que foi adicionado, adicione a predefinição novamente ou defina \"Formato upstream\" como Responses na página de edição para conectar diretamente. O restante é uma rodada de correções de precisão lideradas pela comunidade: placeholders `reasoning_content` vazios deixam de inundar o Claude Code com blocos Thought vazios; tarefas de agente Codex deixam de parar após uma única atualização de progresso; a verificação de modelos do Claude Desktop deixa de informar incorretamente \"indisponível\" em upstreams Responses; ao encerrar, as configurações de novas tentativas e tempo limite do proxy Claude deixam de ser copiadas para Codex\u002FGemini\u002FGrok Build; e a sincronização de provedores universais deixa de apagar configurações dos cartões filhos. No Codex, foram adicionados o roteamento de proxy quando `model_provider` é omitido, o acompanhamento do uso crescente da sessão no Windows e a cota da conta gerenciada na bandeja. As predefinições e os preços também recebem manutenção: os catálogos agregadores são atualizados, plataforma Qwen AI é renomeada e passa para Qwen 3.8, MiniMax usa M3 por padrão e a família DeepSeek V4 passa a ter o preço do nível V4.1 Flash. **Esta versão não inclui migração de banco de dados.**\n\n**[Versão chinesa →](v3.20.3-zh.md) | [Versão japonesa →](v3.20.3-ja.md)**\n\n---\n\n## Destaques: o que você pode fazer agora\n\n- **Conecte-se diretamente ao Kimi no Codex usando Responses nativo**: as predefinições Kimi open platform e Kimi For Coding migram de `openai_chat` para `openai_responses`, permitindo que o Codex se conecte diretamente ao `\u002Fv1\u002Fresponses` do fornecedor, sem roteamento local para converter Responses em Chat. Assim, as predefinições Codex oficiais de DeepSeek, Zhipu GLM, Qwen, MiniMax, Xiaomi MiMo, LongCat e Kimi conectam-se diretamente. Endpoints que ainda oferecem apenas Chat Completions (Baidu Qianfan, Tencent Token Plan, QwenCloud For Coding, StepFun, BaiLing, ModelScope e plataformas agregadoras) continuam convertendo por roteamento local. Se seu cartão existente ainda usa o formato Chat original (Kimi e DeepSeek, GLM e outros migrados em versões anteriores), adicione a predefinição novamente ou defina \"Formato upstream\" como Responses na página de edição para conectar diretamente; consulte as Notas de atualização.\n- **O Claude Code não é mais inundado com blocos Thought vazios** ([#7227](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7227), correções [#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028), [#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404)): upstreams como GLM, Qwen e DeepSeek, que mantêm um placeholder `reasoning_content` vazio em cada trecho, deixam de transformar cada token em uma linha própria seguida de um bloco de pensamento vazio.\n- **Tarefas de agente Codex não param mais após uma única atualização de progresso** ([#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280), correções [#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529)): em um upstream Chat, o comentário e a chamada de ferramenta que vem logo depois são mesclados na mesma mensagem do assistente, evitando que o upstream execute `stop` prematuramente.\n- **Claude Desktop não informa mais \"modelo indisponível\" em upstreams Responses** ([#7287](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7287), correções [#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103)): o `max_tokens=1` da verificação é limitado durante a conversão a 16, o mínimo permitido pela API Responses.\n- **As configurações de novas tentativas e tempo limite do proxy de Codex, Gemini e Grok Build não são mais sobrescritas pelas do Claude ao sair** ([#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210), correções [#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204)).\n- **Sincronizar um provedor universal não apaga mais o script de uso, a opção de não usar configuração comum nem a ordenação dos cartões filhos** ([#7212](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7212), correções [#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134)).\n- **Um cartão Codex sem `model_provider` também passa pelo proxy local durante a interceptação** ([#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263), correções [#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256)), em vez de se conectar silenciosamente a `api.openai.com`.\n- **O aumento do uso da sessão Codex no Windows não passa mais despercebido** ([#7219](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7219), correções [#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060)): o tamanho do arquivo também é considerado quando o mtime não muda.\n- **Veja na bandeja a cota da conta ChatGPT vinculada a um cartão Codex gerenciado** (correções [#7267](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7267)): vincular várias contas não deixa mais apenas o nome visível.\n- **Veja o limite semanal do Claude Fable**: o cartão do provedor e a bandeja analisam o novo array `limits[]` da API de uso.\n- **Desative a ferramenta Artifact do Claude Code com um clique**: gateways que validam rigorosamente os esquemas de ferramentas, incluindo o DeepSeek, deixam de retornar 400 em todas as solicitações.\n- **A predefinição Codex oficial do DeepSeek pode ler imagens** ([#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286), correções [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283)); `deepseek-flash` e a família V4 têm o preço do nível V4.1 Flash, em vez de $0 ou do preço máximo anterior.\n- **Adicione o Token Plan de plataforma Qwen AI com um clique** ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)); plataforma Qwen AI passa para Qwen 3.8, MiniMax usa M3 por padrão ([#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255)) e os catálogos Codex agregadores são atualizados.\n\n---\n\n## Guias de uso\n\n\n- **[Adição de provedores](..\u002Fuser-manual\u002Fen\u002F2-providers\u002F2.1-add.md)**: diferenças entre a conexão direta Responses nativa do Codex e a conversão via roteamento Chat, tabela de alternância rápida do Claude (incluindo \"Desativar ferramenta Artifact\") e o significado de \"alterações nas predefinições só afetam novos provedores\".\n- **[Roteamento de solicitações](..\u002Fuser-manual\u002Fen\u002F4-proxy\u002F4.2-routing.md)**: reescrita e restauração de configuração durante a interceptação — a correção de roteamento desta versão para cartões Codex sem `model_provider` está neste fluxo.\n- **[Estatísticas de uso](..\u002Fuser-manual\u002Fen\u002F4-proxy\u002F4.4-usage.md)**: análise de sessões Codex e configuração de preços, além das regras desta versão para cursor de bytes e preenchimento retroativo de preços.\n\n---\n\n> [!WARNING]\n>\n> ## Somente canais oficiais (leia)\n>\n> CC Switch é um aplicativo para desktop **totalmente gratuito e de código aberto**, e **não cobramos nenhuma taxa dos usuários**. Obtenha o software somente pelos canais oficiais abaixo:\n>\n> | Canal              | Somente oficial                                                               |\n> | ------------------ | ------------------------------------------------------------------------------ |\n> | Site               | **[ccswitch.io](https:\u002F\u002Fccswitch.io)**                                         |\n> | Código-fonte       | **[github.com\u002Ffarion1231\u002Fcc-switch](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch)** |\n> | Downloads          | **[GitHub Releases](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases)**        |\n> | Autor              | **[@farion1231](https:\u002F\u002Fgithub.com\u002Ffarion1231)**                               |\n> | Denunciar impostor | **[GitHub Issues](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues)**            |\n>\n> **Qualquer site ou cliente \"CC Switch\" que solicite pagamento, recarga ou credenciais de acesso é falso.** Se você foi induzido a pagar, interrompa a transação imediatamente e envie uma denúncia pelo GitHub Issues.\n\n---\n\n## Visão geral\n\nAs APIs oficiais dos principais modelos de código aberto agora oferecem, em sua maioria, um endpoint OpenAI Responses nativo, e Responses há muito é o único protocolo nativo do Codex. Até agora, as predefinições Codex do CC Switch para esses modelos existiam de duas formas: conexão direta quando o endpoint do fornecedor oferece suporte nativo a Responses; e, quando só há Chat Completions, um proxy local que converte a solicitação Responses do Codex em Chat e converte de volta a resposta transmitida em fluxo. A conversão funciona, mas cada camada adicional de tradução é mais um ponto sujeito a falhas — [#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280), corrigido nesta versão, é exatamente esse tipo de defeito de conversão. Os endpoints Kimi open platform e Kimi For Coding agora oferecem `\u002Fv1\u002Fresponses` nativamente, e os guias oficiais de integração do Codex exigem `wire_api = \"responses\"`; por isso, as duas predefinições passam a usar conexão direta Responses nativa. Assim, as predefinições Codex oficiais desses principais modelos de código aberto — DeepSeek, Zhipu GLM, Qwen (plataforma Qwen AI \u002F QwenCloud), MiniMax, Xiaomi MiMo, LongCat e Kimi — conectam-se diretamente ao endpoint do fornecedor, assim como Volcengine Doubao e Tencent Hunyuan. Endpoints que ainda oferecem apenas Chat Completions (Baidu Qianfan, Tencent Token Plan, QwenCloud For Coding, StepFun, BaiLing, ModelScope e plataformas agregadoras) continuam convertendo por roteamento local, e os exemplos \"somente Chat\" do manual do usuário agora citam esses provedores.\n\nO restante é uma onda de correções de precisão lideradas pela comunidade, encerrando vários problemas abertos há meses. No proxy: upstreams compatíveis com OpenAI que mantêm um placeholder `reasoning_content` vazio em cada trecho deixam de inundar o Claude Code com blocos Thought vazios e uma quebra de linha por token; o conversor Codex de Responses para Chat deixa de separar em duas mensagens do assistente um comentário e as chamadas de ferramenta que vêm logo depois — o que encerrava tarefas longas logo após uma única atualização de progresso; o teste de modelo de um token do Claude Desktop é limitado ao mínimo da API Responses, evitando que modelos mapeados sejam informados como \"indisponíveis\"; e a geração de imagens do Codex via roteamento recebe três correções, para endpoints completos colados, sufixos com maiúsculas e minúsculas misturadas e uso transmitido em fluxo. Dois problemas de integridade de dados foram resolvidos: toda saída normal copiava as configurações de novas tentativas e tempo limite do Claude para as linhas de proxy Codex, Gemini e Grok Build; e a sincronização de um provedor universal apagava o script de uso, a opção de não usar configuração comum e a seleção automática de endpoint dos cartões filhos, além de movê-los para o fim da lista. No Codex: a interceptação agora respeita o endereço do proxy quando um cartão omite `model_provider`; a importação de uso reconhece arquivos em crescimento no Windows NTFS por meio de um cursor de bytes persistente; a bandeja mostra a cota da conta ChatGPT vinculada a cartões Codex gerenciados; e o limite semanal do Claude Fable aparece no cartão do provedor e na bandeja. O editor do provedor Claude ganha a opção rápida \"Desativar ferramenta Artifact\", para gateways que rejeitam o esquema da ferramenta Artifact do Claude Code.\n\nNas predefinições: as predefinições Codex agregadoras são atualizadas para os catálogos atuais; DashScope\u002FBailian é renomeada plataforma Qwen AI e passa para Qwen 3.8 ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)); MiniMax usa M3 por padrão ([#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255)); o catálogo Codex DeepSeek incluído acompanha o `deepseek-flash` com suporte a visão ([#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286)); e a família DeepSeek V4 passa a ter o preço do nível V4.1 Flash. Esta versão não altera o esquema do banco de dados.\n\n**Data de lançamento**: 2026-09-11\n\n**Tamanho das alterações**: 22 commits | 62 arquivos alterados | +3,458 \u002F -802 linhas\n\n---\n\n## Adicionado\n\n### Opção rápida \"Desativar ferramenta Artifact\" no editor do provedor Claude\n\nAlguns gateways de terceiros compatíveis com Anthropic (entre eles, DeepSeek) validam esquemas JSON de ferramentas com um verificador de expressões regulares estrito e rejeitam os escapes de propriedade Unicode (`\\p{Cc}`, `\\p{Cf}`, …) que a ferramenta Artifact do Claude Code emite quando o recurso de banco de dados `str_replace` é disponibilizado — todas as solicitações falham então com 400 `Invalid schema for function 'Artifact'`, independentemente do modelo selecionado. Uma sexta caixa de seleção, ao lado dos controles rápidos existentes do Claude, define `env.CLAUDE_CODE_DISABLE_ARTIFACT=\"1\"` no provedor, o que mantém a ferramenta Artifact totalmente fora do array de ferramentas; desmarcá-la remove a chave, como ocorre com os outros controles. Os rótulos nos quatro idiomas e a tabela de controles do manual do usuário (zh\u002Fen\u002Fja) foram atualizados.\n\n### O limite semanal do Claude Fable aparece no cartão do provedor e na bandeja\n\nA API de uso do OAuth do Claude agora informa limites semanais por modelo em um array de nível superior `limits[]` (`kind: \"weekly_scoped\"`, com `scope.model.display_name` e `percent`), em vez de janelas dedicadas de nível superior; o analisador lia apenas as janelas antigas, por isso o limite do Fable não aparecia. `limits[]` agora é analisado em `seven_day_fable`, `seven_day_opus` e `seven_day_sonnet` — linhas com escopo substituem a janela antiga de mesmo nome, duplicatas e linhas malformadas são ignoradas, e as janelas antigas, o uso adicional e as janelas desconhecidas são preservados. A bandeja dá ao Fable seu próprio grupo de rótulos, para que não seja mesclado ao valor máximo semanal, e o rótulo «Fable» foi adicionado nos quatro idiomas.\n\n### Novo predefinido de provedor\n\nO plano Token da plataforma Qwen AI ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)) entra na biblioteca de predefinições em sete aplicativos — Claude Code, Claude Desktop, Codex, Hermes, OpenClaw, OpenCode e Pi — no mesmo lote da mudança de marca descrita abaixo. Os provedores existentes não são afetados.\n\n### Linhas de preços para `deepseek-flash` e `deepseek-v4-flash-vision-exp`\n\n`deepseek-flash` é o único ID atualmente recomendado pela DeepSeek, e `deepseek-v4-flash-vision-exp` é o nome antigo para visão que o script oficial de instalação gravava por meio de 1.2.0; ambos são atendidos pelo V4.1 Flash e cobrados a $0.30\u002F$1.20 por milhão, com leitura de cache a $0.006. Nenhum dos dois tinha uma linha antes, e a alternativa de prefixo `LIKE '{id}-%'` só corresponde a IDs mais longos, então as solicitações com qualquer um desses IDs eram todas cobradas a $0.\n\n---\n\n## Alterado\n\n### As predefinições do Codex para Kimi passam a usar conexão direta nativa com Responses\n\nTanto a plataforma aberta Kimi (`api.moonshot.cn\u002Fv1`) quanto o Kimi For Coding (`api.kimi.com\u002Fcoding\u002Fv1`) agora oferecem `\u002Fv1\u002Fresponses` nativamente, e os guias oficiais de integração com Codex exigem `wire_api = \"responses\"`; por isso, as duas predefinições passam de `openai_chat` (conversão local de Responses para Chat por proxy, que exige assumir o roteamento) para `openai_responses` (o Codex se conecta diretamente). Os dois endpoints foram verificados com chaves reais usando o formato exato de solicitação 0.153.4 do Codex (`reasoning.encrypted_content`, `reasoning.summary`, web_search hospedado e itens de raciocínio reproduzidos), além de ciclos completos de ferramentas com `codex exec`. `kimi-k3` passa a ser o modelo padrão da plataforma aberta e a primeira linha do catálogo, enquanto `kimi-k2.7-code` fica na segunda linha; `codexChatReasoning`, relevante apenas para a conversão de Chat, é removido das duas predefinições, e `promptCacheRouting` é removido do Kimi For Coding — no caminho nativo, o próprio Codex envia `prompt_cache_key`; todas as linhas Kimi declaram `supportsParallelToolCalls`, conforme `models.json` oficial do Kimi Code; e nenhum padrão de raciocínio é declarado, pois `model_reasoning_effort` de `config.toml` prevalece sobre o padrão do catálogo, que apenas seleciona a opção `\u002Fmodel`. O manual do usuário (zh\u002Fen\u002Fja) agora cita os provedores que ainda usam roteamento Chat nos exemplos «somente Chat», e a nota desatualizada de que o Kimi Code rejeita o agente de usuário `codex-cli` foi corrigida. Nenhuma alteração no backend.\n\n### Predefinições de Codex dos agregadores atualizadas para os catálogos atuais\n\nO SiliconFlow (.cn) agora usa `deepseek-ai\u002FDeepSeek-V4-Flash` por padrão (janela de 1M, esforço alto\u002Fmáximo, com contrato explícito `enable_thinking`\u002F`reasoning_effort`), agora que o MiniMax M2.5 foi descontinuado no site doméstico; Atlas Cloud passa para `zai-org\u002Fglm-5.2`, a versão mais recente do GLM incluída no Coding Plan (janela de 1M); Novita passa para `zai-org\u002Fglm-5.3` (1M, somente texto); NVIDIA NIM passa para `moonshotai\u002Fkimi-k3` (1M, texto e imagem; NIM aceita `reasoning_effort` baixo\u002Falto\u002Fmáximo e usa máximo como padrão quando o campo é omitido, então a predefinição fixa alto explicitamente para corresponder a `config.toml`); e as entradas GLM\u002FKimi do OpenCode Go são atualizadas — `glm-5.3` (o novo padrão), `glm-5.3-flash` e `kimi-k3` substituem `glm-5.2`, `glm-5.1` e `kimi-k2.7-code`, com janelas, modalidades e níveis de esforço espelhados de models.dev, enquanto as linhas DeepSeek V4 Pro\u002FFlash e MiMo V2.5 Pro permanecem. Quando uma plataforma não documentou um contrato de pensamento\u002Fesforço para o novo modelo (Atlas Cloud, Novita), a predefinição inclui uma substituição explícita sem efeito, para que o backend não injete mais campos de pensamento nativos do fornecedor com base no nome do modelo.\n\n### Predefinições DashScope\u002FBailian renomeadas como plataforma Qwen AI com Qwen 3.8 ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183))\n\n\nAs predefinições domésticas do Bailian são renomeadas como plataforma Qwen AI e recebem um ícone exclusivo, e os links do console e das chaves de API passam para `platform.qianwenai.com`; a família Qwen é atualizada para a geração 3.8 em Claude Code, Claude Desktop, Codex, Hermes, OpenClaw, OpenCode e Pi — `qwen3.8-max` \u002F `qwen3.7-plus` \u002F `qwen3.8-flash` para as funções Opus\u002FSonnet\u002FHaiku, com a janela oficial de 983 tokens,616 aplicada de forma consistente; as predefinições domésticas `Bailian For Coding` (Claude Code, Claude Desktop, Hermes) passam a `千问AI平台 Coding Plan` no endpoint existente; e os metadados de modelo do OpenClaw\u002FOpenCode\u002FPi são alinhados à documentação oficial dos clientes. As predefinições internacionais QwenCloud mantêm seus nomes e recebem ícones próprios; as predefinições de pagamento por uso passam para Qwen 3.8, e as predefinições do plano Token são alinhadas a elas (Codex e Hermes já tinham as linhas 3.8), enquanto QwenCloud For Coding mantém `qwen3.7-plus`, `qwen3-coder-plus` e seu endpoint `coding-intl`. Os endpoints têm uma exceção: o plano Token QwenCloud do Pi muda de `\u002Fapps\u002Fanthropic` (Anthropic Messages) para `\u002Fcompatible-mode\u002Fv1` (OpenAI Chat Completions), enquanto as predefinições do plano Token Hermes e OpenClaw permanecem nos endereços Anthropic.\n\n### Predefinições MiniMax passam a usar M3 por padrão e removem ofertas expiradas ([#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255), corrige [#7254](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7254))\n\nAs predefinições oficiais MiniMax e MiniMax (en) nos sete arquivos de predefinições agora usam `MiniMax-M3` por padrão — Claude Code declara o contexto de 1M (`MiniMax-M3[1M]` com o oficial `CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000`), Claude Desktop habilita suporte a 1M, e os metadados do OpenClaw\u002FOpenCode\u002FPi incluem o contexto de 1,000,000 tokens, 131,072 tokens de saída, entrada de imagem e suporte a raciocínio. As promoções expiradas do Coding Plan são removidas de todas as predefinições e dos quatro idiomas. As configurações existentes e os padrões de terceiros não são alterados.\n\n### Predefinição DouBaoSeed renomeada como Volcengine Doubao\n\nO nome de exibição é localizado nos sete arquivos de predefinições dos aplicativos: «火山 豆包AI» em zh\u002Fzh-TW e «Volcengine Doubao» em en\u002Fja, seguindo a convenção Qiniu\u002FCompshare — o nome de nível superior mantém a alternativa em caracteres latinos, para que a predefinição continue pesquisável em chinês e inglês. `settingsConfig.name`, gravado pelo OpenCode e Pi nos arquivos de configuração do cliente, também é renomeado, mas mantém sua forma ASCII (`Volcengine Doubao`). Os identificadores nas configurações ativas permanecem intencionalmente inalterados: o nome do provedor no TOML do Codex, a chave de nó Hermes `doubao_seed`, a chave de provedor do Pi, o prefixo de referência de modelo do OpenClaw, a chave de promoção e o ícone.\n\n### Família DeepSeek V4 reprecificada para a categoria V4.1 Flash\n\nA DeepSeek descontinuou o V4 Flash e anunciou que, a partir de 2026-09-14 12:00 (Pequim), as solicitações V4 Pro serão encaminhadas para V4.1 Flash e cobradas pelo preço do Flash; esta versão executa essa mudança antecipadamente. `deepseek-v4-flash`, `deepseek-v4-flash-0731` e `deepseek-v4-pro` passam a custar $0.30\u002F$1.20, com leitura de cache a $0.006; as entradas de correção ajustam somente as linhas que ainda estavam na categoria de pico anterior, e são encadeadas após as linhas de pico\u002Ffora de pico de 2026-08-16, de modo que bancos de dados mais antigos passam gradualmente pelos preços intermediários. `deepseek-chat` e `deepseek-reasoner` permanecem inalterados por falta de uma fonte oficial. `deepseek-v4-pro` também deixa a tabela confirmada de somente texto — agora é encaminhado para um modelo com capacidade de visão, então o sanitizador de imagens falha em modo aberto para ele.\n\n### «Aplicar a todas as funções» do Claude segue a ordem do formulário\n\nO botão de um clique que copia o nome de um único modelo para todas as funções do mapeamento de modelos Claude antes priorizava `ANTHROPIC_MODEL`; agora lê o painel de cima para baixo (Sonnet, Opus, Fable, Haiku, subagente) e usa o modelo padrão apenas como último recurso.\n\n### Atlas Cloud deixa de ser patrocinador\n\nA identidade do patrocinador é removida das tabelas de patrocinadores do README em todos os quatro idiomas, do banner, das flags `isPartner`\u002F`partnerPromotionKey` e das mensagens de promoção; as predefinições dos sete aplicativos permanecem, passando do grupo de patrocinadores para o grupo sem patrocínio, com endpoints, modelos e ícone inalterados.\n\n---\n\n## Corrigido\n\n### Espaços reservados `reasoning_content` vazios deixam de inundar o Claude Code com blocos de pensamento vazios\n\nAlguns upstreams compatíveis com OpenAI (GLM, Qwen, DeepSeek-V4-Pro via ModelScope\u002FDashScope, Bailian, JD Cloud, …) mantêm um espaço reservado `reasoning_content: \"\"` em cada trecho de conteúdo, em vez de omitir o campo. O ramo de raciocínio do conversor SSE de OpenAI Chat para Anthropic verificava apenas se o campo estava presente, e compartilhava o estado de bloco aberto com o ramo de conteúdo; assim, cada trecho de conteúdo primeiro fechava o bloco de texto aberto, abria um bloco de pensamento vazio e então reabria um bloco de texto — N trechos de conteúdo viravam 2N blocos de conteúdo, metade deles blocos de pensamento vazios, que o Claude Code mostrava como uma linha por token, além de dezenas de blocos de pensamento vazios, aumentando também o JSONL da sessão. Agora, o raciocínio vazio é filtrado antes de entrar no ramo, como já ocorria com a proteção do ramo de conteúdo e do conversor sem streaming; dois testes de regressão fixam o índice, o tipo e a ordem dos blocos tanto para o formato do espaço reservado quanto para o raciocínio real. ([#7227](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7227), corrige [#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028), [#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404); substitui [#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### Tarefas do agente Codex deixam de parar após uma atualização de progresso em upstreams Chat\n\n\nO conversor Codex de Responses para Chat Completions emitia duas mensagens consecutivas do assistente quando um turno do modelo continha uma mensagem de comentário seguida diretamente por itens `function_call`; upstreams de Chat tratam a mensagem apenas de texto como um turno completo e retornam `finish_reason=stop` antes da chamada de ferramenta esperada. Agora, as chamadas de ferramenta pendentes são mescladas à mensagem adjacente do assistente quando ela ainda não contém `tool_calls`, o raciocínio pendente é anexado por segmento para que chamadas paralelas não o dupliquem, e todas as demais formas de limite (limites de usuário\u002Fferramenta, lotes de chamadas de ferramentas anteriores, liberações de mídia) continuam usando o caminho de nova mensagem; o preenchimento do marcador de raciocínio ainda se aplica às chamadas coalescidas sem raciocínio. ([#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280), corrige [#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529); substitui [#6530](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6530), [#5895](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5895); também relatado como [#5860](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5860))\n\n### Sondas de modelo do Claude Desktop deixam de falhar em upstreams de Responses\n\nA API Responses rejeita `max_output_tokens` abaixo de 16, mas clientes Anthropic enviam legitimamente orçamentos de sondagem minúsculos — a sonda de disponibilidade de modelo do Claude Desktop usa `max_tokens=1` — e a conversão de Anthropic para Responses copiava o valor sem alterações, fazendo com que upstreams estritos retornassem 400 e o Claude Desktop informasse que o modelo mapeado estava indisponível no roteamento local. Valores de 1 a 15 agora são elevados para 16 durante a conversão; valores 16 ou superiores, 0 e valores não inteiros mantêm a semântica de passagem direta, solicitações normais de sessão são convertidas byte a byte como antes, e o caminho OAuth do Codex ainda remove `max_output_tokens` depois. ([#7287](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7287), corrige [#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103))\n\n### Geração de imagens do Codex com roteamento: endpoints completos colados, sufixos com maiúsculas e minúsculas variadas e uso em fluxo\n\nA rota `\u002Fimages\u002Fedits` e a tabela de sufixos compartilhada por Images\u002FResponses\u002FCompact\u002FChat já foram lançadas em v3.20.2; esta rodada corrige três lacunas relacionadas. Quando a URL base era colada como um endpoint `\u002Fchat\u002Fcompletions` ou `\u002Fresponses` completo e a opção \"URL completa\" estava desativada, os endpoints irmãos de Images e Alpha Search agora são derivados da mesma forma que o caminho Chat já aceitava, em vez de enviar solicitações independentes para `…\u002Fchat\u002Fcompletions\u002Fimages\u002Fgenerations`. A detecção de sufixos e a reescrita de endpoints irmãos não diferenciam maiúsculas de minúsculas (`\u002Fv1\u002FImages\u002FEdits\u002F`, `\u002Fv1\u002FResponses\u002FCompact\u002F`), preservando o prefixo original da URL, a codificação percentual e a consulta. Além disso, o uso de Images em streaming é analisado a partir de `usage` no nível superior do evento `image_generation.completed` (ignorando eventos `partial_image` que não contêm esse campo) antes de recorrer ao analisador de fluxo de Chat Completions, para que gerações em streaming não registrem mais zero tokens. ([#7177](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7177), complemento de [#7036](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7036))\n\n### O desligamento e a alocação de portas deixam de sobrescrever as configurações de proxy por aplicativo\n\nNa saída normal, o caminho de restauração do proxy chamava o gravador legado de configuração global do proxy para limpar a antiga flag `live_takeover_active`; esse gravador lê a linha do Claude e executa um UPDATE sem cláusula WHERE, então, a cada desligamento, copiava `max_retries` e os três campos de timeout do Claude para as linhas do Codex, Gemini e Grok Build — e, como o UPDATE nem sequer incluía a flag, essa etapa não tinha efeito além de sobrescrever os valores. O caminho de porta de escuta efêmera fazia o mesmo a cada inicialização do proxy. A gravação de retorno obsoleta foi removida (a restauração da configuração ativa, a limpeza do backup e a redefinição da integridade permanecem inalteradas), e a porta efêmera resolvida é persistida pela interface de configuração global, que altera apenas as colunas compartilhadas de escuta\u002Flog; dois testes de regressão definem configurações distintas para os quatro aplicativos e verificam que elas sobrevivem a ambos os caminhos. ([#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210), corrige [#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204))\n\n### A sincronização do provedor universal preserva as configurações e a posição dos provedores filhos\n\nA sincronização de um provedor universal regenera seus provedores filhos Claude\u002FCodex\u002FGemini. O `settings_config` do filho era mesclado com a linha existente, mas `meta`, `created_at` e `sort_index` vinham do objeto gerado, que o provedor universal nunca inclui quando vem da interface — assim, o UPDATE apagava o script de uso, a opção de não usar a configuração comum, a seleção automática de endpoint e outras configurações por aplicativo do filho, substituindo-as por `{}` e redefinindo o índice de ordenação para NULL. Isso empurrava o cartão para o fim da lista, como se tivesse sido excluído e recriado. Os filhos existentes agora mantêm esses três campos; nome, URL base, chave, modelos, site e observações continuam sendo determinados pelo provedor universal, e a criação inicial ainda herda os metadados do pai. ([#7212](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7212), corrige [#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134))\n\n### Cartões do Codex sem `model_provider` respeitam o endereço do proxy ao assumir o controle\n\nQuando o TOML de um cartão Codex não contém `model_provider`, o Codex recorre ao provedor `openai` integrado, mas a assunção de controle gravava o endereço do proxy como `base_url` de nível superior, que o Codex não lê. Assim, as solicitações ignoravam o proxy local e iam diretamente para `api.openai.com`. Agora, a ausência do seletor é interpretada como o provedor integrado `openai` e o endereço do proxy é gravado em `openai_base_url`; a migração existente de redirecionamento legado então o converte em uma tabela de provedor personalizado `cc-switch` que contém o bearer `PROXY_MANAGED` — o mesmo formato usado em todas as outras assunções de controle de terceiros. Seleções explícitas de provedor não são alteradas. ([#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263), corrige [#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256), refs. [#7217](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7217))\n\n### A importação de uso do Codex detecta rollouts em crescimento no Windows\n\n\nO Codex mantém aberto o identificador de anexação do rollout durante toda a sessão; por isso, no Windows NTFS, o mtime do arquivo não avança enquanto ele cresce, e a verificação baseada apenas no mtime ignorava rollouts em crescimento para sempre. O tamanho observado em bytes agora é armazenado na coluna existente `session_log_sync.last_byte_offset` para as linhas do Codex, e um arquivo só é ignorado quando tanto o mtime quanto o tamanho permanecem inalterados; o analisador divide os registros manualmente nas quebras de linha, para que um registro final incompleto seja tentado novamente na próxima passagem sem avançar o cursor de linha. Um complemento também passa a contar como observado o tamanho em bytes de uma cauda incompleta: antes, apenas registros totalmente consumidos contavam para o comprimento persistido; assim, um rollout encerrado no meio de um registro ou em espaços em branco (uma sessão encerrada inesperadamente e nunca retomada) sempre parecia menor que o arquivo e era analisado novamente por inteiro em cada sincronização — o cursor de linha continua parando antes do registro incompleto, que é tentado novamente assim que o arquivo cresce, enquanto um arquivo inalterado é ignorado pela verificação combinada de mtime e tamanho. ([#7219](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7219), corrige [#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060); além de um commit complementar)\n\n### A bandeja mostra a cota da conta ChatGPT vinculada para cartões Codex gerenciados\n\nDesde [#6537](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6537), a bandeja deixou deliberadamente de exibir o sufixo de uso nos cartões oficiais do Codex vinculados a uma conta ChatGPT gerenciada, pois só dispunha de um cache de assinatura para todo o aplicativo, alimentado pelo login que a CLI do Codex estivesse usando no momento (primeiro, Chaveiro do macOS; depois, `auth.json`). Esse cache não representa com segurança cotas vinculadas a contas quando várias contas estão associadas; o cartão do provedor consultava a conta vinculada, mas o resultado nunca chegava à bandeja, e usuários com vários logins do ChatGPT viam `Codex · \u003Cname>` sem nenhuma cota. O cache de uso agora inclui um mapa de instantâneos OAuth do Codex indexado por conta, ao qual a consulta de cota grava os resultados — erros de transporte preservam o último instantâneo válido, enquanto falhas de autenticação\u002FHTTP o substituem para que a bandeja oculte uma cota inválida em vez de mostrar uma desatualizada — e cada gravação agenda uma atualização da bandeja. Uma única decisão `TrayUsageSource` é compartilhada pelos caminhos de atualização e exibição: cartões Codex gerenciados consultam apenas o instantâneo da conta vinculada (sem recorrer a um instantâneo do provedor ou da CLI), ativam a exibição por padrão quando nenhuma opção de uso foi salva (como no cartão do provedor), e o cartão oficial fixo também usa o caminho gerenciado quando tem uma conta vinculada. A vinculação a outra conta muda imediatamente para o instantâneo dessa conta, e uma resposta atrasada da conta anterior não pode sobrescrever o rótulo. (corrige [#7267](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7267))\n\n### O catálogo DeepSeek do Codex reflete o `deepseek-flash` compatível com visão\n\nO catálogo oficial DeepSeek do Codex incluído no pacote foi atualizado para corresponder ao `models.json` atual do fornecedor (slug `deepseek-flash`, modalidade de entrada de imagem, `supports_image_detail_original`), e `deepseek-v4-flash` deixa de constar da tabela confirmadamente apenas textual: DeepSeek ainda aceita o ID legado e o encaminha para o V4.1 Flash compatível com visão. Assim, o sanitizador de mídia do proxy e o catálogo Codex gerado agora permitem seu uso, em vez de substituir imagens por `[Unsupported Image]` ou ocultar do Codex a entrada de imagem. ([#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286), corrige [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283))\n\n### Linhas DeepSeek V4 de planos de terceiros com token são declaradas apenas textuais\n\nComo o endpoint oficial encaminha `deepseek-v4-flash` para um modelo de visão, o ID permite esse uso em todos os lugares; porém, Baidu Qianfan e Tencent Token Plan ainda hospedam implantações V4 apenas textuais — a documentação do Coding Plan do Qianfan afirma que a entrada de imagem retorna 400, e as listas de modelos do plano Tencent 2026-09-10 listam somente V4. As linhas predefinidas do Codex para esses provedores (famílias flash e pro, incluindo `-0731`\u002F`-0813`\u002F`-202605`\u002F`-202606`) agora declaram explicitamente `inputModalities: [\"text\"]`, em vez de depender do registro, e um teste de predefinição também garante que a predefinição oficial DeepSeek permaneça sem declaração (permitindo o uso). (complemento de [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283))\n\n---\n\n## Notas de atualização\n\n### Esta versão não contém migração de banco de dados\n\nA versão do esquema permanece em 18. O cursor de bytes do Codex reutiliza a coluna existente `session_log_sync.last_byte_offset`.\n\n### Os rollouts do Codex são analisados novamente uma vez após a atualização\n\nAs linhas do Codex ainda não têm um comprimento em bytes armazenado; por isso, a primeira passagem de sincronização relê todos os rollouts em todas as plataformas (somente CPU; eventos já importados são ignorados pelo deslocamento de linha, portanto, nada é contado duas vezes). As passagens seguintes ignoram arquivos inalterados.\n\n### Configurações de proxy por aplicativo já sobrescritas não são restauradas\n\n[#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210) interrompe a sobrescrita, mas não recupera os valores de tentativas\u002Ftimeout que desligamentos anteriores copiaram do Claude para Codex, Gemini e Grok Build. Confira-os uma vez nas configurações do proxy e redefina os que diferirem do que você configurou.\n\n### A sincronização universal preservará as configurações dos filhos daqui em diante\n\nAs configurações que uma sincronização anterior já apagou (script de uso, opção de não usar a configuração comum, seleção automática de endpoint e posição de ordenação) precisam ser informadas novamente uma vez.\n\n### Cartões Codex sem `model_provider` agora passam pelo proxy local durante a assunção de controle\n\nApós [#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263), esses cartões deixam de se conectar silenciosamente diretamente a `api.openai.com`, como ocorre com todas as demais assunções de controle de terceiros.\n\n### Alterações nas predefinições afetam apenas provedores criados a partir de agora\n\n\nOs cards existentes mantêm o instantâneo feito quando foram criados. Afetados nesta versão: as duas predefinições Codex de Kimi — um card Kimi existente ainda é `openai_chat` e continua funcionando por roteamento; para conectar diretamente, defina o formato upstream do card como Responses ou importe novamente a predefinição (observe que as chaves Tier 0 da plataforma aberta Kimi são limitadas a 3 solicitações por minuto, o que não basta para um ciclo de ferramentas com várias solicitações); os catálogos Codex do agregador; a reformulação da marca Qwen AI platform e Qwen 3.8 (incluindo a mudança de protocolo do QwenCloud Token Plan de Pi); os padrões do MiniMax M3; o nome de exibição do Volcengine Doubao; e as declarações somente de texto nas linhas DeepSeek do Token Plan de Qianfan\u002FTencent (um card existente com essas predefinições ainda depende da remoção reativa e nova tentativa para imagens, ou importe novamente a predefinição).\n\n### Correções do catálogo Codex entram em vigor na próxima troca de provedor\n\nOs arquivos de catálogo são regenerados no momento da troca: a entrada desta versão é a linha de visão `deepseek-flash` no catálogo oficial do DeepSeek ([#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286)). Troque de provedor e volte uma vez no card DeepSeek.\n\n### Preços\n\n`deepseek-flash` e `deepseek-v4-flash-vision-exp` são novas linhas iniciais; portanto, o preenchimento retroativo na inicialização precifica em $0 as solicitações históricas registradas com esses IDs. O reparo de `deepseek-v4-flash` \u002F `-0731` \u002F `-pro` corrige apenas linhas ainda nos valores semeados do nível de pico (0.44\u002F1.32\u002F0.014 e 1.32\u002F3.96\u002F0.044); linhas personalizadas permanecem intactas e os custos históricos _não_ são recalculados. A alteração do V4 Pro ocorre antes da mudança do DeepSeek em 2026-09-14; assim, solicitações do V4 Pro feitas antes disso são cobradas pelo preço do Flash. `deepseek-chat` e `deepseek-reasoner` mantêm seus valores anteriores.\n\n### Clientes Anthropic que sondam um upstream Responses com `max_tokens` 1–15 agora enviam 16\n\nNada a configurar.\n\n### Cards Codex com upstream Chat têm uma falha de cache de prefixo após a atualização\n\nA mensagem de comentário mais chamada de ferramenta combinada por [#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280) altera os bytes da solicitação uma vez; depois, o formato permanece estável a cada turno.\n\n### Cards Codex gerenciados mostram a cota na bandeja por padrão\n\nA cota é exibida quando nenhuma opção de uso foi salva, como no card do provedor; desative a opção de uso do card para ocultá-la.\n\n---\n\n## Aviso de risco\n\n### Avisos mantidos de versões anteriores\n\n**Login OAuth do xAI Grok**: reutiliza a identidade pública do cliente OAuth da CLI oficial do Grok; seu uso pode levar à restrição ou suspensão da conta — consulte as [notas da versão v3.18.0](v3.18.0-en.md#risk-notice) para obter detalhes.\n\n**Proxy reverso OAuth do Codex**: usar o OAuth do Codex de uma assinatura ChatGPT por meio de um proxy reverso pode violar os termos de serviço da OpenAI. Consulte as [notas da versão v3.13.0](v3.13.0-en.md#️-risk-notice) para obter detalhes.\n\n**Consultas de cota do SuperGrok**: a exibição da cota nos cards do provedor depende de um endpoint de cobrança não público em grok.com e pode parar de funcionar quando a xAI alterar a interface — consulte as [notas da versão v3.19.0](v3.19.0-en.md#risk-notice) para obter detalhes.\n\n**Roteamento por provedores de terceiros**: quando o proxy local do CC Switch converte e encaminha solicitações do Codex, Claude Desktop ou Grok Build para um provedor de terceiros, cada provedor tem restrições diferentes de cobrança, conformidade e retenção de dados. Leia os termos de serviço do provedor de destino antes de usar.\n\nAo ativar esses recursos, os usuários aceitam os riscos associados. O CC Switch não se responsabiliza por restrições de conta, avisos ou suspensão do serviço decorrentes do uso deles.\n\n---\n\n## Agradecimentos\n\n11 dos 22 commits desta versão vieram de 8 colaboradores externos.\n\n### Contribuições de código\n\n- Agradecemos a @gongzhenhu: filtragem de espaços reservados `reasoning_content` vazios ([#7227](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7227), corrige [#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028), [#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404)), sua primeira contribuição; @AdJIa ([#4869](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F4869)), @U1traTC ([#6421](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6421)) e @Hypocrite000 ([#6576](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6576)) também propuseram antes uma correção para o mesmo problema.\n- Agradecemos a @fszcd: combinação dos comentários do Codex com suas chamadas de ferramenta ([#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280), corrige [#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529)), sua primeira contribuição; @BigStrongSun relatou o problema e enviou uma correção em [#6530](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6530), e @xu-xiang também tentou corrigi-lo em [#5895](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5895).\n- Agradecemos a @SailingLoong: limitação de `max_tokens` da sonda do Claude Desktop a 16 ([#7287](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7287), corrige [#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103)) e espelho do catálogo de visão do DeepSeek ([#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286), corrige [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283)); @John1Tang já havia proposto uma correção para o limite da sonda em [#7126](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7126).\n- Agradecemos a @Komikawayi: três correções — configurações de proxy por aplicativo sobrescritas ao encerrar ([#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210), corrige [#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204)), sincronização universal de provedores preservando metadados de subitens ([#7212](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7212), corrige [#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134)) e Codex respeitando o endereço do proxy quando `model_provider` está ausente ([#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263), corrige [#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256)).\n\n- Agradecemos a @woniuxiaoshu: cursor de bytes persistido para o uso do Codex ([#7219](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7219), corrige [#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060)), sua primeira contribuição; @LimiChan-2026 ([#6080](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6080), também relatou #6060), @woshimaxfive ([#6027](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6027), que também relatou o mesmo sintoma no Windows em [#6023](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6023)) e @puppnn ([#6246](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6246)) também propuseram antes uma correção para o mesmo problema.\n- Agradecemos a @thisTom: os três acompanhamentos da geração de imagens do Codex ([#7177](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7177)), dando continuidade ao próprio [#7036](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7036).\n- Agradecemos a @shigzz: reformulação da marca Qwen AI platform e atualização do Qwen 3.8 ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)), sua primeira contribuição.\n- Agradecemos a @jellyjelly814: padrões do MiniMax M3 e limpeza de ofertas expiradas ([#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255)), relatado e corrigido pela própria pessoa em [#7254](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7254), sua primeira contribuição; @octo-patch já havia proposto a atualização do padrão M3 em [#3567](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3567), com preços e modalidades M3 em [#6396](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6396).\n\n### Relatos de problemas\n\n- Agradecemos a @Sunshine-SACA e @snowing0427 por relatarem a enxurrada de blocos de pensamento vazios e a fragmentação de blocos de conteúdo ([#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028), [#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404)), e a @csj-ccc por adicionar uma reprodução com ModelScope Qwen3-Coder em v3.20.0 no #4404.\n- Agradecemos a @BigStrongSun e @aducker2016 por relatarem que a conversão de Responses para Chat dividia um turno do assistente ([#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529), [#5860](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5860)) — a segunda pessoa identificou a mesma causa raiz para a repetição interminável do DeepSeek.\n- Agradecemos a @haoyubai212 por relatar 400 da sonda do Claude Desktop em upstreams Responses ([#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103)).\n- Agradecemos a @HEYUESAMA por relatar que imagens do DeepSeek eram substituídas por `[Unsupported Image]` e que o catálogo as declarava como somente texto ([#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283)).\n- Agradecemos a @Jason-purse por relatar que, após uma reinicialização, as configurações de failover do Codex eram sobrescritas pelas do Claude ([#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204)).\n- Agradecemos a @auqhjjqdo por relatar que a sincronização universal de provedores quebrava configurações como consultas de uso ([#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134)).\n- Agradecemos a @pemagic por relatar que o Codex conectava diretamente a `api.openai.com`, ignorando o roteamento local ([#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256)), e a @Tiacoo por documentar como o mesmo sintoma aparece no Codex 0.153.x em [#7217](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7217).\n- Agradecemos a @LimiChan-2026 e @MoEternal por relatarem que o uso do Codex não era detectado no Windows ([#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060), [#7264](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7264)).\n- Agradecemos a @ringzxw por relatar que a bandeja não mostrava a cota quando várias contas ChatGPT estavam vinculadas ([#7267](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7267)).\n\n---\n\n## Baixar e instalar\n\nAcesse [Releases](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Flatest) e baixe a versão para seu sistema ou obtenha-a no site oficial [ccswitch.io](https:\u002F\u002Fccswitch.io) (os downloads são distribuídos por nós de borda Cloudflare e não dependem da disponibilidade do GitHub).\n\n### Requisitos do sistema\n\n| Sistema | Versão mínima | Arquitetura |\n| ------- | ------------- | ----------- |\n| Windows | Windows 10 ou posterior | x64 \u002F ARM64 |\n| macOS | macOS 12 (Monterey)+ | Intel (x64) \u002F Apple Silicon (arm64) |\n| Linux | Veja a tabela abaixo | x64 \u002F ARM64 |\n\n### Windows\n\n| Arquivo | Descrição |\n| ------- | --------- |\n| `CC-Switch-v3.20.3-Windows.msi` | **Recomendado** - instalador MSI com atualização automática |\n| `CC-Switch-v3.20.3-Windows-Portable.zip` | Versão portátil; extraia e execute |\n\nDispositivos Windows ARM64 devem escolher o artefato cujo nome de arquivo contém a tag `arm64`.\n\n### macOS\n\n| Arquivo | Descrição |\n| ------- | --------- |\n| `CC-Switch-v3.20.3-macOS.dmg` | **Recomendado** - instalador DMG; arraste para Aplicativos |\n| `CC-Switch-v3.20.3-macOS.zip` | Extraia e arraste para Aplicativos; binário universal |\n| `CC-Switch-v3.20.3-macOS.tar.gz` | Para instalação e atualização automática com Homebrew |\n\nInstalação via Homebrew:\n\n```bash\nbrew install --cask cc-switch\n```\n\nAtualização:\n\n```bash\nbrew upgrade --cask cc-switch\n```\n\n### Linux\n\nHá arquivos Linux para **x86_64** e **ARM64** (`aarch64`). Escolha o arquivo cuja tag de arquitetura corresponda à saída de `uname -m` da sua máquina:\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| Distribuição | Formato recomendado | Comando de instalação |\n| --------------------------------------- | ------------------ | ---------------------------------------------------------------------- |\n\n| Ubuntu \u002F Debian \u002F Linux Mint \u002F Pop!\\_OS | `.deb` | `sudo dpkg -i CC-Switch-*.deb` ou `sudo apt install .\u002FCC-Switch-*.deb` |\n| Fedora \u002F RHEL \u002F CentOS \u002F Rocky Linux | `.rpm` | `sudo rpm -i CC-Switch-*.rpm` ou `sudo dnf install .\u002FCC-Switch-*.rpm` |\n| openSUSE | `.rpm` | `sudo zypper install .\u002FCC-Switch-*.rpm` |\n| Arch Linux \u002F Manjaro | `.AppImage` | Torne executável e execute diretamente, ou use AUR |\n| Outras distribuições \u002F não sabe | `.AppImage` | `chmod +x CC-Switch-*.AppImage && .\u002FCC-Switch-*.AppImage` |\n\n\n[Versão oficial](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Ftag\u002Fv3.20.3).","2026-09-11T18:46:03Z",627,"0001-01-01T00:00:00Z",[488],{"area":454,"items":489},[490,491,492,493,494],"Adiciona opção Artifact Tool e exibição de cota Claude Fable.","Atualiza predefinições e preços de Kimi, MiniMax, Qwen e DeepSeek.","Filtra raciocínio vazio; mantém chamadas de ferramenta Codex com progresso.","Preserva proxies por aplicativo e metadados de provedores universais.","Corrige sondas Responses, uso de imagens e importações no Windows.","Atualiza predefinições e preços, corrige conversões e preserva configurações de roteamento.","CC Switch 3.20.3",{"locale":431,"machineTranslated":36,"sourceLocale":423,"status":432},"3.20.3",{"brewCommittedAt":500,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":501,"source":73,"translation":502,"version":503},"2026-09-07T15:38:06Z",[],{"status":75},"3.20.2",{"brewCommittedAt":505,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":506,"source":73,"translation":507,"version":508},"2026-08-28T03:39:58Z",[],{"status":75},"3.20.1",{"brewCommittedAt":510,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":511,"source":73,"translation":512,"version":513},"2026-08-18T09:50:07Z",[],{"status":75},"3.20.0",{"brewCommittedAt":515,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":516,"source":73,"translation":517,"version":518},"2026-08-06T10:25:19Z",[],{"status":75},"3.19.2",{"brewCommittedAt":520,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":521,"source":73,"translation":522,"version":523},"2026-07-31T16:17:10Z",[],{"status":75},"3.19.1",{"brewCommittedAt":525,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":526,"source":73,"translation":527,"version":528},"2026-07-30T07:25:49Z",[],{"status":75},"3.19.0",{"brewCommittedAt":530,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":531,"source":73,"translation":532,"version":533},"2026-07-21T16:14:25Z",[],{"status":75},"3.18.0",{"brewCommittedAt":535,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":536,"source":73,"translation":537,"version":538},"2026-07-14T01:02:08Z",[],{"status":75},"3.17.0",{"brewCommittedAt":540,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":541,"source":73,"translation":542,"version":543},"2026-07-02T01:30:59Z",[],{"status":75},"3.16.5",{"brewCommittedAt":545,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":546,"source":73,"translation":547,"version":548},"2026-06-27T07:37:52Z",[],{"status":75},"3.16.4",{"brewCommittedAt":550,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":551,"source":73,"translation":552,"version":553},"2026-06-15T01:42:07Z",[],{"status":75},"3.16.3",{"brewCommittedAt":555,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":556,"source":73,"translation":557,"version":558},"2026-06-08T16:53:24Z",[],{"status":75},"3.16.2",{"brewCommittedAt":560,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":561,"source":73,"translation":562,"version":563},"2026-06-01T14:40:22Z",[],{"status":75},"3.16.1",{"brewCommittedAt":565,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":566,"source":73,"translation":567,"version":568},"2026-05-29T16:49:31Z",[],{"status":75},"3.16.0",{"brewCommittedAt":570,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":571,"source":73,"translation":572,"version":573},"2026-05-16T07:18:21Z",[],{"status":75},"3.15.0",{"brewCommittedAt":575,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":576,"source":73,"translation":577,"version":578},"2026-04-23T16:17:53Z",[],{"status":75},"3.14.1",20,{"brewLag":581,"cadence":418,"count30d":415},{"compared":415,"earlierCount":416,"medianMinutes":417},{"current":443,"records":583,"size":443,"stats":587,"total":412},[584],{"brewCommittedAt":71,"hasNotes":36,"isLatest":32,"isPrerelease":36,"sections":585,"source":73,"translation":586,"version":76},[],{"status":75},{"brewLag":588,"cadence":418,"count30d":415},{"compared":415,"earlierCount":416,"medianMinutes":417}]