Skip to content

v0.4.0 切换一致性彻底重做

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Jul 06:13

串站/配置被覆盖的根因修复

cc-switch 的「当前站」权威指针存在 ~/.cc-switch/settings.json(currentProviderClaude/Codex),数据库 is_current 只是新设备兜底(读 v3.17.0 源码实锤)。外部切换工具若不同步这个指针,用户在 cc-switch 里点「启用」时,它会把 live 配置无条件回填进旧指针指向的行——站点配置被别站内容覆盖("切了名字、换了肚子")。

v0.4.0 起,AICheck 切换/校准时同步写该指针,此串站机制被彻底堵死。

切换全链路一致性

  • 检测→切换按 providers 行 id 锚定:同名重复、检测后改名/重排均不再错位
  • 写入前正向身份核对:目标配置地址必须 = 实测通过的地址,对不上拒绝切换
  • 借另一侧端点测通的站,切换时按实测身份原地重建本侧配置,绝不上岗未验证的配置
  • live 快照回滚:写 live 或落库任一步失败,恢复原样,不留"live 已换、挂牌没换"的半截状态
  • 切换后读回 live + 数据库核实,toast 播报的站名/地址是读回的事实而非切换意图

三方对账与一键校准

  • live 实际生效 / DB 挂牌 / cc-switch 指针,三方对账,任何一方漂移亮橙色警告横幅
  • 一键校准:把挂牌与指针对齐到 live(牌子服从事实,绝不写 live)
  • 窗口聚焦自动对账;站点区常驻「⟳ 重启cc-switch」按钮;同名重复站 ⚠重名 提示

界面

  • 「可用」列表重构:claude / codex 分区(区头显示各自当前站),每站合并为一行按延迟排序;接口收成行内可点 chip(可强制指定 wire_api);「切到这里」默认非仅流式优先、再比延迟