Appearance
功能规格说明:更新命令
创建日期:2026-03-31
用户场景与测试 (必填)
用户故事:检查更新(优先级:P1)
作为用户,我希望能够检查 WAVE Code 是否有新版本可用,以便我可以保持最新的功能和错误修复。
为什么是这个优先级:这是功能的核心。它允许用户知道何时可用更新。
独立测试:可以通过运行 wave update 并验证它正确识别当前版本和 npm 注册表上的最新版本来测试。
验收场景:
- 假设当前版本是
0.11.6,npm 上的最新版本是0.11.6,当用户运行wave update时,则系统通知用户 WAVE Code 已是最新。 - 假设当前版本是
0.11.5,npm 上的最新版本是0.11.6,当用户运行wave update时,则系统通知用户有新版本可用。
用户故事:执行更新(优先级:P1)
作为用户,我希望工具使用适当的包管理器自动更新到最新版本,这样我就不必手动运行安装命令。
为什么是这个优先级:这为用户提供无缝的更新体验。
独立测试:可以在有更新可用时运行 wave update 并验证它执行正确的更新命令(如 npm install -g wave-code@latest)来测试。
验收场景:
- 假设有新版本可用且工具通过
npm安装,当用户运行wave update时,则系统执行npm install -g wave-code@latest。 - 假设有新版本可用且工具通过
pnpm安装,当用户运行wave update时,则系统执行pnpm add -g wave-code@latest。
用户故事:Windows 后台执行更新(优先级:P1)
作为 Windows 用户,我希望 wave update 不会因为当前进程占用全局 bin 文件而失败,以便更新可以顺利完成。
为什么是这个优先级:Windows 上 cmd.exe 执行 wave.cmd 时会保持文件句柄(不允许 rename/delete),若正在运行的 wave 进程直接同步执行 npm install -g,npm 覆盖 bin 文件(如 %APPDATA%\npm\wave.cmd)时会报 EPERM/EBUSY,导致更新失败。
独立测试:在 Windows 上从运行中的 wave 进程发起有更新的 wave update,验证当前进程先退出,随后独立的分离进程完成安装,bin 文件被成功覆盖。
验收场景:
- 假设用户在 Windows 上运行
wave update且有新版本可用,当命令执行更新时,则系统提示更新将在后台完成,立即退出当前进程,并由一个分离(detached)子进程在短暂延迟后执行安装命令。 - 假设更新正在后台执行,当用户看到提示后重新打开 wave 时,则新版本已生效。
边界情况
- 网络不可用怎么办? 系统应该优雅地处理错误并通知用户无法检查更新。
- 更新命令失败(如权限问题)怎么办? 系统应该通知用户失败原因并提供手动运行的命令(可能需要
sudo,Windows 上可能需要先关闭 wave 再运行)。 - 工具未全局安装怎么办? 系统仍应尝试检测包管理器并执行更新,或在无法做到时提供说明。