Windows 首版支持 Windows 10/11 x64,安装后连接已有夭夭服务器。聊天、团队、文件库和服务器上的电脑环境沿用服务器功能;当前 Windows 客户端不托管本机 Web、Hermes、Runner 或虚拟机。用户无需安装 Node、Python 或开发工具。
Yaoyao-<版本>-win-x64-setup.exe,填写服务器地址并登录。测试包未签名,Windows 可能显示未知发布者。安装在当前用户目录,不申请管理员权限。配置与设备令牌位于 %USERPROFILE%\.yaoyao(可由既有数据目录环境变量指定),Chromium 会话、浏览器和设备授权位于 Electron userData。令牌由当前 Windows 账号的 DPAPI 加密,密码不落盘。复制 Mac 加密文件不能迁移登录,应在 Windows 重新登录授权。
v0.4.74 发布页提供未签名测试 EXE 与独立的测试更新元数据压缩包。元数据包包含 latest.yml、blockmap、构建身份与校验值,解压后与 EXE 放在同一目录使用;GitHub Release 根目录不提供 Windows latest.yml,测试包不进入正式自动更新源。
日常可以在 Mac 修改共享代码;原生助手和 EXE 安装包在 Windows x64 上构建。需要 Node 24、CMake、Visual Studio 2022 C++ 工具链和 Windows SDK;GitHub Actions windows-2022 提供该构建环境。
npm ci
npm run desktop:pack:win
npm run desktop:test:win
GitHub Actions 工作流 Windows client 支持手动触发、相关 PR 和 codex/windows-client* 分支。CI 只上传 artifacts,不发布正式 Release。下载 yaoyao-windows-x64-unsigned,其中包含 EXE、blockmap、latest.yml、SHA256SUMS-win-x64.txt 和构建身份。生成目录为 desktop-release/windows-x64。
安装前在下载目录用 PowerShell 核对校验值,EXE 的 SHA-256 应与清单中同名文件一致:
Get-ChildItem *.exe | Get-FileHash -Algorithm SHA256
Get-Content .\SHA256SUMS-win-x64.txt
默认构建为未签名测试包。正式签名构建设置 YAOYAO_WINDOWS_SIGNED=1、CSC_LINK、适用的 CSC_KEY_PASSWORD 和证书对应的 YAOYAO_WINDOWS_PUBLISHER;凭据仅通过 CI secret 或本机环境注入。正式构建强制签名和更新签名校验。
Windows 更新使用 NSIS,只有用户点击“重启更新”才安装,先清理设备连接和自有操作。Windows 使用 latest.yml,Mac 继续使用 latest-mac.yml。更新附件必须来自同一次构建,并在清单引用的安装包和差分文件齐备后发布;测试包不写入正式更新源。
自动测试覆盖平台模式、路径边界、凭据提供器、更新状态、设备权限与来源路由。Windows CI 另外编译并自检原生助手,测试真实 PowerShell 及子进程清理,以及打包应用的登录、DPAPI 配置保存、会话恢复、菜单与托盘行为。交互会话可用时,测试原生截图、点击、中文/emoji 输入、组合键、显示变化、授权撤销及独立浏览器。升级测试临时构建下一个版本,实际安装、拒绝损坏包、下载、重启替换,再检查设置、Cookie、DPAPI 数据保留与卸载。临时升级版本不会上传或发布。测试证据位于 test-results/windows-client,实际运行结果见 验证记录。
以下项目需要真实 Windows 10 和 Windows 11 交互环境,不以 CI 编译或模拟响应代替:
| 项目 | 验收方法 |
|---|---|
| 安装与卸载 | 干净用户、中文用户名、无开发运行时;核对快捷方式、单实例、数据保留 |
| 登录与网络 | 管理员及普通账号、会话过期、更换服务器、断网恢复、旧服务器升级提示 |
| 主屏控制 | 100%、150%、200% 缩放;单击、双击、拖拽、滚动、Ctrl/Alt/Win 组合键及中文/emoji;切主屏后旧截图被拒绝 |
| 授权与会话 | 分别拒绝/授予两档权限、撤销在途操作、人工接管、锁屏、RDP 断开、UAC 和管理员窗口 |
| 浏览器与文件 | 独立浏览器与文件双向传输,中文路径、跨盘越界、junction 逃逸、空文件、覆盖保护、校验失败 |
| 生命周期 | 关闭驻留、退出清理、登录启动、仅托盘启动;不启动本机服务 |
| 实际升级 | 隔离更新源提供两个递增版本;已安装旧版下载并重启替换新版;版本、设置、登录和设备身份保留;断网、损坏包和安装失败可恢复 |
首版的真实桌面控制与两个已安装版本之间的升级,必须在记录 Windows 版本、构建提交及测试结果后才可标记通过。未执行的项目标记为“未验证”。