You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
i tested also when you switch then soon as possible fastly go ot settings and model settings and just three to four times refresh the model settings option here so with this new switched account working
Activity
muhammadbabartemp-lab commentedon Sep 5, 2026
i tested also when you switch then soon as possible fastly go ot settings and model settings and just three to four times refresh the model settings option here so with this new switched account working
pjpv commentedon Sep 5, 2026
v1.5.4 修复了更换/重装 zcode 后路径识别失效导致的此类问题(你从 scoop 升级→卸载→官网重装正属此列)。
请升级到 v1.5.4,到设置里把 zcode 路径清空保存(会自动探测),再试一次切换。若仍复现,请附上设置页显示的路径。
yangtao109 commentedon Sep 7, 2026
我也遇到这个问题了,我让ai自己解决了,不知道原因是否和他的一样。
我是因为自己在zcode的设置中修改了数据存放目录,zcode的逻辑是改了这个后它的读、存账号登录态文件也同步修改到新设置的目录了,所以switch切账号改它的默认目录就没用了。
因为修改数据目录后zcode只是部分配置文件的读、存同步改到新目录中,它的设置文件配置还是在默认目录,同时设置文件中有新目录的路径,所以ai给我修改的是改账号文件的目录不在用写死的那种了,改为去读设置文件里的信息来获取需要的路径了。。
自己重编译挺麻烦,还是希望作者核实下在新版本中修复这个问题吧
codeyy2023 commentedon Sep 24, 2026
补充排查:这条 issue 里其实混着两个不同的根因(附实测证据)
在自己的机器上完整复现并定位了「切换成功但 ZCode 仍是旧账号」。结论:楼主的成因和 3 楼 @yangtao109 的成因不是同一个,而 3 楼描述的那条在 v1.6.0(当前最新)里依然存在。
@yangtao109 的判断完全正确 —— 下面是代码级证据和最小修复方案。
一、结论
ZCode 的数据根由
~/.zcode/v2/setting.json里的dataBaseDir决定。在 ZCode 里改过「数据目录」之后,账号登录态文件本身也跟着搬到了新目录,而 zcode-switch v1.6.0 仍然只会读写~/.zcode/v2/—— 它改的是一份 ZCode 根本不读的僵尸副本。二、ZCode 侧的路径规则(从
app.asar提取,非猜测)其中
setting.json自身是 bootstrap 文件,永远留在~/.zcode/v2/(它要存放dataBaseDir本身);而credentials.json、telemetry-state.json、coding-plan-cache.json、provider_config.json、logs/全部在<dataBaseDir>/.zcode/v2/下。三、zcode-switch 侧(v1.6.0
store.rs:66-70)全部硬编码在
home下,仓库里没有任何地方读取dataBaseDir。四、实测数据
(用户名已打码;
<user>= Windows 用户名。设置:ZCode 的「数据目录」改成了F:\zcode。)C:\Users\<user>\.zcode\v2\(home 根)F:\zcode\.zcode\v2\(dataBaseDir 根)logs/*.log用 zcode-switch 自己的
zcrypto算法把两边的oauth:bigmodel:user_info解开:F:\zcode\.zcode\v2\credentials.json→{"username":"账号B", ...}C:\Users\<user>\.zcode\v2\credentials.json→{"username":"账号A", ...}ZCode 界面上显示的是账号B,Z·SWITCH 界面「使用中」标记的是账号A —— 两边各说各话,与楼主的截图完全一致。
时间线也吻合:
01:06:29switch 把账号A 写进 home 根(同时杀掉 ZCode,因zcode_path失效没有自动拉起)→01:08:43用户手动启动 ZCode → ZCode 读 dataBaseDir 根,显示账号B。五、顺带提醒:不要用
ZCODE_SWITCH_HOME绕过ZCODE_SWITCH_HOME看起来可以直接指到 dataBaseDir 目录绕过,但实测会坏掉:它改的是home,而home同时是enc:v1的解密密钥基准(zcrypto::default_secret)。改完之后所有密文字段都解不开(account_identity、find_same_login、already_active)判定全部失效,还可能重新触发 v1.5.0 修过的「Auto xx 重复账号」。这个问题只能改代码。六、已验证的修复
Paths增加data_root,优先级与 ZCode 完全同序:setting.json.dataBaseDir>env.ZCODE_DATA_BASE_DIR>home;live_file/live_config/live_telemetry/live_plan_cache改走data_root;home保持不变(密钥基准 +.zcode-switch账号库位置);live_setting()保持 home 根(bootstrap 文件);quota.rs的device_mid()读的telemetry-state.json一并改走数据根(原先读的也是僵尸副本);atomic_write()补上父目录create_dir_all。编译后实测:
--cli state的live_identity与 ZCode 界面一致;往返切换(账号B ↔ 账号A)后解密F:\...\credentials.json内容随之变化,而C:\...\credentials.json的 SHA256 完全没变(补丁后不再碰它)。若维护者认可,我可以直接提交 PR。
七、另外两个小问题(附带反馈)
client_path_candidates("windows")只有C:\Program Files\ZCode\ZCode.exe和%LOCALAPPDATA%\Programs\ZCode\ZCode.exe。ZCode 装在D:\Zcode这类目录时,"清空路径让它自动探测"不会生效,只能手动选文件;此时zcode_path_ok=false,「启动 ZCode」按钮被禁用、切换后不会自动重启(用户容易误以为"切换失败")。cargo build --release必须带--features tauri/custom-protocol。tauri/build.rs里是let dev = !custom_protocol;,漏掉它即使是 release 构建也会被当成 dev 模式,窗口去连http://127.0.0.1:5173并显示ERR_CONNECTION_REFUSED。(官方 release 走tauri-action,CLI 会自动带上这个 feature,所以只在手工编译时踩得到。)fix(paths): live 路径跟随 ZCode 的 dataBaseDir,修复改过数据目录后切换不生效
pjpv commentedon Sep 25, 2026
这个 issue 里混着的两个成因都已处理:楼主这类(重装/更换 ZCode 后路径识别失效)v1.5.4 已修复;3 楼 @yangtao109 这类(自定义过 ZCode「数据目录」)已在 v1.7.0-beta.1 修复(感谢 @codeyy2023 的定位与 #18)。请升级验证,有问题可重开。