自动升级
Mogick CLI 支持启动检查和手动升级。升级包来自发布服务,下载后会校验 SHA-256;配置、认证和会话数据存放在数据目录中,不会因为替换二进制而被删除。
触发方式
| 方式 | 命令/场景 | 行为 |
|---|---|---|
run 启动检查 | mogick run ... | 启动时检查新版本;发现新版本后在后台下载并安排替换,当前命令继续执行 |
| 非交互 root 检查 | mogick --non-interactive 或 stdout/stdin 非 TTY | 行为同启动检查 |
| TUI 升级提示 | 交互式 mogick | 启动前检查新版本;若有更新,在 TUI 中显示提示,由用户选择 |
| 手动升级 | mogick upgrade | 前台检查、下载并安装 |
| 只检查 | mogick upgrade --dry | 只显示当前版本、最新版本和将下载的包,不安装 |
| 跳过自动检查 | --no-auto-upgrade | 跳过对应命令的启动检查和 TUI 升级提示 |
自动检查网络失败时会静默跳过,不影响当前任务。手动 mogick upgrade 会把网络、manifest 或校验错误显示给用户。
TUI 升级提示
交互式 mogick 检测到新版本时,会在 TUI 内显示升级提示。可选操作包括:
| 选项 | 行为 |
|---|---|
| 立即升级 | 记录选择并退出 TUI,随后执行前台升级流程 |
| 跳过本次 | 关闭提示,本次继续使用当前版本 |
| 跳过此版本 | 记录跳过的版本;直到出现更高版本前不再提示 |
| 查看更新说明 | 展开 release notes,再返回选择界面 |
选择立即升级后,当前 TUI 会话会结束;升级完成后重新启动 mogick 即可使用新版本。
手动升级
bash
mogick upgrade --dry
mogick upgrademogick upgrade 会同步执行完整升级流程。Linux 上,升级成功后会替换当前二进制并重新执行新版本;Windows 上会启动独立的 mogick-updater.exe,等待当前进程退出后替换被系统锁定的 mogick.exe。
Windows 文件替换
Windows 会锁定正在运行的 mogick.exe,因此不能由当前进程直接覆盖自身。Mogick 会下载新版二进制和 updater,启动 updater 后由它等待当前进程退出并完成替换。若替换失败,先退出所有正在运行的 Mogick 进程,再重新运行 mogick upgrade。
常用命令
bash
# 禁止本次启动检查
mogick --no-auto-upgrade
mogick run --no-auto-upgrade "run tests"
# 使用自定义升级源
MOGICK_UPGRADE_URL=https://example.com/mogick mogick upgrade --dry