Repository navigation
v1.2.5
修复内容(第二轮代码复查)
🆕 新增修复(N1–N9)
- 关窗未恢复代理(N1):导入成功后系统代理处于关闭态,若直接关窗会被永久遗留。
现在关闭时若代理仍待恢复,会弹窗询问一次——可选「恢复后退出」或「保持关闭直接退出」
(后者适用于你还要先在 Clash 里点「更新」拉节点的场景)。 - 一条脏数据让整个客户端订阅全空(N2,实测复现):
profiles.yaml里若某条
name写成数字(如name: 12345),解析会抛异常,导致该客户端所有条目全部丢失
(连后面正常的配置也一起消失)。已加类型防护,脏数据不再影响其余条目。 - 导入中扫描按钮被竞态重新点亮(N5):导入进行中禁用扫描按钮。
- 导入后刷新列表被静默跳过(N6):扫描正忙时标记补扫,结束后自动补跑一次。
- 关代理失败残留旧状态(N3):清空状态,避免之后用旧状态去「恢复」。
- 收尾
after未包 try(N4):关窗时不再抛未处理异常。 - 同秒两次导入备份名碰撞(N7):备份名改为可读时间戳 + uuid 后缀。
- 空数据目录误命中 CWD 文件(N8):无数据目录时跳过裸文件名查找。
- 等待进程退出全量枚举开销大(N9):新增
clashctl.close_and_wait,
只对被 kill 的 pid 做探测。
上一版(v1.2.4)已修
运行时密钥永不生效、导入时界面冻结、写失败代理遗留关闭、
ProxyEnable 字符串型兼容、HTTP 大响应 O(n^2) 等。
验证
- 全模块
py_compile通过 - 冒烟测试全绿:
_short_name脏数据、备份名防碰撞、空目录跳过、close_and_wait就位 - exe 启动存活测试通过
⚠️ 黑闪(v1.2.3 的 DWM 层修复)属纯视觉效果,需你在真实屏幕确认。