Repository navigation
YouYu 1.6.10
YouYu 1.6.10 迭代说明
YouYu 1.6.10 是针对 1.6.9 Windows 更新回归的修复版本。它修复系统代理读取、管理员提升与完整修复恢复链路,并确保仍停留在 1.6.8 的客户端可以直接更新到本版。
启动失败根因
ProxyServer和ProxyOverride是允许不存在的可选注册表值。1.6.9 改为依赖reg.exe的英文或完整中文错误文本判断“值不存在”,但中文 Windows 使用本地 OEM 码页,Node 默认按 UTF-8 解码后会得到乱码,因此正常缺失被误判为致命错误。- YouYu 会先启动 Mihomo,再启用系统代理。代理读取失败后,生命周期按设计回滚并停止 Mihomo,所以日志中的
ready后SIGTERM是下游清理,不是 Mihomo 自行崩溃。 - 修复现在会在单值查询失败后读取完整注册表项,并根据值名与
REG_*结构判断该值是否存在,不再匹配任何本地化错误文案。完整项不可读或目标值实际存在时仍传播原错误,不会把权限问题误当成“值不存在”。 - 正常停止和失败回滚产生的预期退出不再写成 “mihomo exited after ready”,避免将主动清理显示成内核崩溃。
管理员提升与完整修复
- 1.6.9 的提升安全绑定把裸
powershell.exe用当前工作目录解析成了YouYu\powershell.exe。目标文件不存在时,提升助手会在命名管道连接前退出,又被统一误报为“需要管理员权限”,所以即使以管理员方式启动应用也无法解决。 - 本版只允许将受支持的裸 PowerShell 命令解析为
System32\WindowsPowerShell\v1.0\powershell.exe的绝对路径;其他提升目标必须从调用方提供绝对路径,避免工作目录劫持。 - 提升助手在安全连接前退出时会报告实际退出码或信号,不再把所有失败归结为权限不足。
- 完整修复分为关键阶段和附加阶段。禁用当前用户代理并停止 Mihomo 属于关键阶段,失败时仍严格中止;WinHTTP、DNS、商店回环与缓存清理属于后续阶段。关键阶段已经安全完成时,后续单项失败会记录警告,但仍按未被取消的运行意图重新启动并恢复后台工作。
- 如果重新启动也失败,错误会聚合保留附加修复、缓存清理和运行时恢复的全部原因,避免最后一个错误覆盖真正根因。
小白模式与诊断界面
- 小白模式的错误卡与更新卡统一进入右下角通知栈;容器本身不截获鼠标,卡片操作仍可点击。左下角 52×52 的七击入口与通知区域不再相交。
- 错误通知使用原子化
alert语义,更新通知使用礼貌播报的原子化status语义。完全透明的隐藏入口移出 Tab 顺序,键盘隐藏快捷方式继续保留。 - 专业模式可见诊断会将原始
reg.exe命令和无法解码的 Windows 输出转换为“系统代理设置读取失败”等清晰摘要。底层日志与诊断导出仍保留完整的脱敏技术信息,便于进一步定位。
从 1.6.8 直接更新
- 1.6.8 尚不会生成 1.6.9 引入的认证安装交接,而故障版本不能作为可靠中转。因此 1.6.10 将一次性兼容桥的唯一目标版本从 1.6.9 迁移到 1.6.10。
- 该桥只允许版本不高于 1.6.8、产品名和发布者完全匹配、精确安装路径已经停止的 YouYu,通过 electron-updater 的
--updated静默更新进入。 - 1.6.9 及以后版本、普通静默新装、运行中目标、部分交接和任何无效交接都不能使用旧桥,必须继续通过绑定随机 nonce、Windows 用户 SID、会话、目标进程和有效期的认证路径。
验证
- 自动化覆盖中文乱码缺失值、真实访问拒绝、PowerShell 绝对路径、安全连接前退出、关键与附加修复边界、恢复失败聚合、预期 Mihomo 停止、1.6.8 直升桥和 1.6.9 拒绝降级。
- 渲染器覆盖错误与更新提示同时出现时的 DOM 归属、ARIA 语义、隐藏入口焦点边界和七次点击切换。
- 在
900×600与1280×800真实 Chromium 中确认两张通知卡与左下热点无交集,热点中心的最上层元素仍是入口,七次真实点击可以进入专业模式,且页面无横向或纵向溢出。 - Windows 打包在复用 Electron 缓存前再次校验固定 ZIP 的字节数和 SHA256,并直接将该 ZIP 交给 electron-builder;缓存命中不再依赖在线下载校验清单,同时精确移除官方 ZIP 的默认入口残留,Actions 缓存键也覆盖校验模块与固定分发清单。
- 发布仍需通过仓库卫生、Mihomo 固定分发、桌面端与 Worker 测试、类型检查、ESLint、Prettier、生产构建、Windows 本地三包、公开三通道 11 资产、摘要清单、GitHub Actions 和远端
latest*.yml的完整门禁。