# v6.3.0 客户端热更新

## 已实现

1. 服务端“系统设置”新增客户端 ZIP 更新包上传与发布。
2. 服务端自动读取 ZIP 内 `VERSION.txt`，保存 SHA-256、文件大小、更新说明与是否强制更新。
3. 更新清单继续使用现有 Ed25519 私钥签名；客户端只接受内置公钥验证通过的更新信息。
4. 客户端启动时先检查更新，再进行最低版本卡密校验。
5. 客户点击确认后下载 ZIP，并校验文件大小与 SHA-256。
6. ZIP 安全解压到 Windows 临时目录，拒绝路径穿越条目。
7. 独立 PowerShell 更新器等待当前 EXE 退出后，用 `robocopy` 覆盖客户端目录并自动重启。
8. 覆盖式更新不会删除客户现有 `data`、`library`、`backups`、`.env` 等文件。
9. 支持普通更新和强制更新。

## 以后发布新版

1. 修改客户端代码。
2. 修改 `VERSION.txt`，例如 `v6.3.1`。
3. 执行 `BUILD_EXE.bat`。
4. 执行 `07_PACKAGE_UPDATE.bat`，生成更新 ZIP。
5. 登录服务端 -> 系统设置 -> 客户端热更新发布。
6. 上传 ZIP、填写更新说明，按需勾选强制更新。
7. 已具备热更新能力的客户端下次启动会自动检测。

## 重要限制

已经发出去的 v6.2.3 客户端本身没有 updater 代码，因此无法凭空获得热更新能力。
必须至少人工升级一次到这个 v6.3.0 基线；从 v6.3.0 往后的版本才可以完全通过服务端 Web 发布。
