Skip to content

feat(delivery): complete Windows publisher trust and manager self-update UX #171

Description

@Wangnov

背景

将 Manager 安全送到用户手中是一条完整链路,当前还有两个相邻缺口,可作为一个 delivery 实施包推进:

  1. Windows Authenticode 路径已经准备好,但仍是 optional,且只签最终 NSIS 外层安装器;主程序与 uninstaller 仍未纳入完整发布者信任链。
  2. Manager 自更新只能由用户进入“关于”页手动检查;下载/安装回调不显示进度,也没有主界面提醒、延后或失败恢复。

当前证据

  • docs/windows-signing.md:112-124,170-187:明确披露当前未签名,CI 仍为 optional,完整 main/uninstaller/installer signing 是后续目标。
  • .github/workflows/release.yml:174-201:Authenticode 只对 *-setup.exe 执行,是否阻断由可选变量控制。
  • src/app/views/About.tsx:28-66,106-114:更新检查与安装仅存在于 About 手动入口。
  • src-tauri/src/commands.rs:191-239download_and_install 的下载与安装回调为空。

验收标准

  • 使用安全托管的 Windows 代码签名证书,对主程序、uninstaller 与 installer 做 Authenticode + RFC3161 时间戳。
  • release 对最终发布工件执行 Get-AuthenticodeSignature == Valid 的强制门禁;Tauri updater signature 继续独立保留。
  • Manager 启动或合理周期内静默检查自身更新,但绝不未经用户确认自动安装或重启。
  • 主界面显示可理解的更新入口,支持查看版本/说明、稍后提醒,并与 About 状态保持一致。
  • 下载与安装阶段显示真实进度、失败原因和重试;离线、代理、镜像回退与 relaunch 失败都有恢复路径。
  • 自更新前复核无不可中断 Codex 操作;重启后显示一次明确的升级完成状态。
  • 文档继续清晰区分 Authenticode、Tauri updater signature 与 SmartScreen reputation。

占位说明

对应 Draft PR 只保留实施入口,不配置证书、不改变更新行为,不应合并。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority: P2Important product completeness or reliability follow-up

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions