Skip to content

YouYu 1.7.0

Choose a tag to compare

@fishknowsss fishknowsss released this 01 Aug 20:02
· 75 commits to main since this release

YouYu 1.7.0 迭代说明

YouYu 1.7.0 重点处理“已下载更新在应用重启前又被新版本取代”的更新时序,并补齐后台用户名纠正与逐用户通知能力。本版同时收敛更新重试、开机自启兼容和诊断噪声,调整更新组件与运行状态的视觉反馈。公开更新包、Team Build 私有交付和生产 Worker 仍遵守各自独立的安全边界。

已下载更新保持可刷新

  • “已下载”不再是更新协调器的终止状态。应用保留当前可安装包的同时继续执行周期检查;如果远端仍是同版或更旧版本,原下载保持可安装,如果发现更新版本,则切换到新版本的下载流程。
  • 点击“安装”后,主进程会先完成一次新鲜度检查。远端版本与已下载版本一致时才进入静默安装交接;如果已经发布更高版本,则阻止旧包安装并下载新版本;如果检查失败,则保留原下载供稍后重试,但不会在无法确认最新版本时直接安装。
  • 更新元数据检查和安装包下载继续共用单飞与代际保护:并发检查复用同一任务,过期事件不能覆盖较新的下载、安装或失败恢复状态。

网络重试与诊断降噪

  • 更新检查不再只使用启动早期捕获的一次性代理地址。Mihomo 已运行时优先使用当前本地代理,代理传输失败后回退直连;启动阶段先直连失败时会重新读取运行时代理,使刚就绪的 Mihomo 可以立即承接重试。
  • 自动检查的中间重试不再逐次写入用户诊断;最终失败由后台检查静默保留原状态,用户主动检查失败时只记录一次明确结果。证书与 TLS 安全错误仍保持不可自动降级的严格边界。
  • Mihomo 的 PowerShell CLIXML 声明行不再进入诊断列表;连接警告优先解析日志中 --> 后的实际目标,不再把 RuleSet/China 等规则集标签误当成失败站点。
  • Windows 计划任务写入被当前权限拒绝时,自动同步会沿用已受管的兼容开机项,不再每次启动重复报告失败;用户主动启用时可回退到当前用户的登录启动项。兼容路径不放宽可执行文件、隐藏参数、用户主体或高权限任务的所有权校验。

更新与运行状态界面

  • 小白模式右下角和专业模式设置页的更新旋转指示移到整个更新组件左侧,不再塞进操作按钮;检查、下载和安装沿用同一位置,并继续尊重系统“减少动态效果”偏好。
  • 设置页“检查”使用与上方“保存”相同的主按钮样式,操作层级与页面其他主要动作保持一致。
  • 专业模式首页右上角运行状态补充语义边框:运行中使用成功色,失败使用危险色,停止状态保持中性边界。

后台用户名纠正与客户端同步

  • 流量后台可以直接编辑用户显示名。服务端以稳定的用户 ID 为主体保存修改,使用 requestId 保证重复提交幂等,并记录修改前后名称供审计。
  • 旧名称与新名称都会保留为同一用户的别名,旧客户端继续使用原名称登记时不会重新创建重复账户;已经属于另一个用户的名称会被拒绝。
  • 签名远程配置会返回当前权威用户名。客户端只在返回的用户 ID 与本地已验证身份一致时原子更新本地显示名,不改变设备 ID、流量归属、订阅或 Mihomo 运行状态。
  • 用户合并会一并迁移名称别名,并在同一事务中处理配置、设备、流量和通知,避免合并期间的并发管理操作覆盖新状态。

逐用户纯文本通知

  • 后台可为选定用户保存一条通知,支持“提示”与“警告”、启停和到期时间。消息最长 500 个字符,只按纯文本处理;HTML 标签会原样显示,且不支持链接字段、命令或富内容,因此不能借此远程执行客户端操作。
  • 有效通知只会出现在目标用户的已登记设备上。通知内容实际变化时推进修订号,相同内容的网络重试保持幂等;设备确认当前修订后不再重复显示,后续新修订仍可再次送达,后台清除则停止继续下发。
  • 通知确认使用设备现有的签名身份;服务端在写入确认记录前验证设备 HMAC,客户端不会采纳其他用户或失效身份的通知。

Team Build 与公开更新边界

  • npm run dist:win:local 生成的私有 -in、-no Team Build 仍只进入本机 team-builds/,其中的内置订阅用于首次建立本地设置;该目录不能提交、上传或作为公开更新源。
  • 已登记并保存到本地设置的内部订阅会在 -in 通道自动更新后继续保留。公开 latest-in.yml 对应安装包按设计不含私有订阅,也不会在覆盖更新时清空现有用户设置;如果主动删除或重置应用数据,公开更新包不会重新提供私有默认订阅。
  • 标准、内部和无桌宠三个公开通道继续使用各自的 latest*.yml,三种公开安装包都必须通过空内置订阅校验。

旧版本一次性更新桥

  • 仍停留在 1.6.8 及更早版本的客户端缺少后续版本采用的认证安装交接。本版把严格受限的一次性兼容桥唯一目标迁移到 1.7.0,使这些旧客户端可以直接越过中间版本。
  • 兼容桥的源版本上限仍是 1.6.8,且继续要求 --updated 静默更新、完整缺失的交接环境、已停止的目标进程,以及匹配的产品身份、发布者和安装路径。1.6.9 及以后版本、普通新装、运行中目标、部分交接和无效交接不能使用旧桥。

Worker 迁移与发布门禁

  • 用户别名、资料审计、定向通知和设备确认依赖新增 D1 表。生产启用前必须先使用仓库迁移工具依次执行远端 check、dry-run、显式 apply 和再次 check,不能把 wrangler d1 migrations list 当作该自定义迁移链的权威状态。
  • 数据库检查通过后才能部署 Worker;部署后还须验证管理端改名、旧名称别名复用、目标用户通知、设备确认、修订重发、过期和清除边界。完成这些步骤前,不应把新后台能力描述为已在生产环境可用。
  • 桌面端交付仍须通过仓库卫生、Mihomo 固定分发、桌面端与 Worker 测试及类型检查、lint、格式检查、生产构建、Windows 私有三包与公开三通道构建、反向订阅校验、安装器冒烟、11 项公开资产、GitHub Actions 和远端 latest*.yml 哈希复核。