配置界面闪烁 - cc-switch
Quick fix
升级 cc-switch 修复表单异步加载导致的闪烁,并通过读取 SQLite 数据库解决 env 变量不随供应商更新的问题。
Symptom
Section titled “Symptom”配置界面闪烁在 cc-switch 中编辑当前生效的供应商时,表单会先使用数据库配置挂载,随后异步读取实时的 ~/.claude/settings.json 并进行替换。这种延迟替换会触发 form.reset,导致首屏绘制后 API Key 等字段重新初始化,从而产生界面闪烁。此外,由于通用配置功能的调整,为每个供应商单独配置的自定义环境变量(如 env.CC_SWITCH_RELAY_NAME)在切换供应商时不再自动更新。
升级 cc-switch 至包含 PR #4277 的版本。该更新使表单在实时配置就绪后仅挂载一次(加载期间显示 spinner),消除了异步替换带来的界面闪烁。
若需获取当前中转站名称等自定义环境变量,请放弃通过 settings.json 读取,改为编写 Bash 包装器脚本直接查询 cc-switch 的本地 SQLite 数据库。
$HOME/.cc-switch/cc-switch.db #!/usr/bin/env bashset -euo pipefailpayload="$(cat)"DB="$HOME/.cc-switch/cc-switch.db"label=""if [[ -f "$DB" ]]; thenlabel="$(sqlite3 \-cmd ".timeout 200" \-noheader -batch "$DB" \"SELECT nameFROM providersWHERE app_type='claude' AND is_current=1LIMIT 1;" 2>/dev/null)" || label=""fi[[ -z "$label" ]] && label="Unknown"ccline_out="$(printf '%s' "$payload" | ccline 2>/dev/null | head -n1)"printf '⚡%s | %s\n' "$label" "$ccline_out"
Affected Versions
Section titled “Affected Versions”ToolClaude Code
Version3.16.2 - 3.16.3
PlatformsmacOS
Source Issues
Section titled “Source Issues”本页汇总自 2 个真实 issue
- 为什么新版本找不到“编辑通用配置”的入口了?
- 作者对通用配置功能进行了回退。目前的逻辑是先手动编辑 Claude 的 settings.json 添加通用配置,切换供应商时不会覆盖这些非白名单字段。
- 界面闪烁会一直无限循环吗?
- 不会。这只是打开编辑对话框时的一次有界重新初始化,在手动修改过 settings.json 导致实时数据与数据库不一致时最为明显。
Codex Desktop UI 的项目列表完全为空 - Codex升级 CC Switch 后 model_provider 键名变更,统一改回 custom 或升到修复版本;官方登录态丢失、推理档位变少等情形仍未解决。Claude Official 检查出错: 提取 base_url 失败 - CodexCC Switch 代理与负载均衡不支持 Claude 官方订阅,请改用第三方 API Key。强行代理会因缺少 base_url 报错并导致封号。用cc-switch切换, 发现无效 - CodexCodex 不支持热切换,必须在 cc-switch 切换中转站后彻底重启 Codex 应用,会话丢失可通过迁移工具恢复。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。