摘要
Battle Notes 是本项目给玩家实时看战斗信息的桌面程序,通过一个叫 My Game Launcher 的启动器安装和启动。用户点了“安装/更新”,看到的却是旧版 2026.10.10-5 且显示“最新发布”,而新试用包 2026.10.13-1 早已做好。原因是启动器只发现和安装“正式发布(published)”的包,而新包是如实标注的本地预览版。本次让启动器也接受明确标注的本地预览,不伪造正式发布门槛。
要回答的问题
为什么“安装/更新”一直选旧版?怎样在不冒充正式发布的前提下,让用户手动装上已检查过的预览版?
方法
- 先排除快捷方式问题:桌面快捷方式确实指向当前仓库里的启动脚本。
- 新规则:除已有的正式发布包外,同时声明“渠道 = 本地预览”且“状态 = 本地预览、范围检查已通过”的包也可发现和安装。旧的候选版本和只有一项标记的包仍不可安装。
- 预览版在界面和确认框里明确写“最新本地预览”,说明不是完整发布验收。
- 原有保护保留:程序运行中拒绝安装;版本链接切换失败时恢复原链接;旧包、笔记、截图、录像都保留。
- 只给已有的 10.13-1 包增加“本地预览渠道”字段,不写“已发布”。
设置
只改 Windows 启动器的两个文件和相关测试,不跑对战、不涉及胜负评估。安装测试在隔离临时目录里用模拟进程完成,没有启动界面或服务,也没有操作用户窗口。
结果
| 检查 | 结果 |
|---|---|
| 启动器测试 | 31 项通过;契约测试 2 项通过,共 33 个不同测试 |
| 新增 6 项 | 覆盖预览发现/安装、缺标记或检查未通过时拒绝、运行中拒绝、显示文字与确认框 |
| Ruff | 3 个文件与改动前诊断完全相同(12 条既有提示),无新增 |
| 实际发现 | 由“已安装/最新都是 10.10-5”变为“已安装 10.10-5 · 最新本地预览 10.13-1 · 有新版本” |
失败与负结果
第一轮测试 1 通过、30 个准备阶段错误,原因是 pytest 临时目录的父目录还没创建,尚未进入产品测试;创建后在新目录重跑,原失败保留。
局限
- 用户需要正常关掉再打开启动器才能加载新代码;若 Battle Notes 还在运行,必须等本局结束正常退出,启动器会继续拒绝切换。
- 本任务没有替用户安装或点击,真实用户点击安装和可见窗口交互未验证。后来一次只读观察发现,当前版本已指向 10.13-1(在说明使用步骤之后由外部完成),但没有核对运行中程序的代码版本。
- 不表示实时识别准确率得到验证。
结论与下一步
“安装/更新总装旧版”的入口问题已修复。用户操作顺序:重开启动器 → 安装/更新 → 确认 10.13-1 → 启动。GPT 审阅支持该限定收尾,没有提出阻断问题。
Comments