CSSwitch v0.2.0 — 一键幂等化
CSSwitch v0.2.0 — 一键幂等化
主题:让「一键开始」变得幂等,修 #3(运行中再点的分派)与 #6 的「复发」部分(更新后对话「不见」),并随三轮外部复审全面加固代理与进程路径。
修复
- #3 一键幂等分派 + 对话不再被孤儿化(阻止 #6 复发):虚拟登录从「每次重铸」改为幂等。沙箱已在跑时只重新打开,绝不重铸、连登录文件都不读;没起才走完整流程(完整可用则原样复用,部分损坏则修复但保住组织,真首次才新建)。核心不变式:组织 id 只在真正首次生成一次、此后复用与修复都粘住它,根治「每点一次一键就换新组织、把旧对话留在旧目录里界面看不到」。发现多个历史组织却无法确定活动者时报恢复提示,绝不静默新建。注:本版只「阻止复发」,已产生的孤儿历史对话恢复留待后续(#6b)。
- 提示据实:一键结果分「已在运行,已重新打开 / 已用新配置重启代理,Science 沿用不变 / 沿用原有对话 / 已启动」四态;浏览器打开失败改提示手动打开,不再谎报。
- 停止 / 切换官方模式不再虚报成功:定位不到停止脚本时如实报错;切「官方 Claude」改为先拆第三方链路成功、再落盘,杜绝状态分裂。
- 代理健壮性:畸形请求体规范回 400;上游 401/403/429 原样透传(DeepSeek 透传与 Qwen 翻译两条路径都修)。
安全 / 健壮性(三轮外部复审加固)
- OAuth 复用从严校验(合法 UUID + provider + 非空 token + 未过期 + 读路径非符号链接),否则降级修复;加密密钥非法时自愈重造。
- 孤儿代理清理收紧到本安装的绝对脚本路径 + 端口,不误杀其它 checkout / 手启进程。
- 沙箱身份改用按 data-dir 的强身份确认,替代裸端口探活,防端口被冒名占用误判。
变更
- 全仓 Rust 统一格式(
cargo fmt --check通过)。
下载:附件 CSSwitch_0.2.0_aarch64.dmg(Apple Silicon)。完整变更见 CHANGELOG.md。