起因:同步 gmweb 时看到 18112 被占,先判断成「启动器在跑」、又改口成「残留 pythonw serve.py」,两次都错 —— 实际是多调用模式下的 gmweb 子进程,进程名就叫 DNF90启动器.exe。 - 排查文档新增小节「18112 上跑的可能是启动器本身」:给出命令行三态判别表 (带 serve.py 参数 = gmweb 服务 / 只有 exe 路径且占 19527 = 主进程 / 父 pid 不存在 = 遗留服务),并附 Get-CimInstance 取证命令 - 明确推论:该进程跑的是启动那一刻的 serve.py;静态文件读盘即生效, 但路由不会,症状是「页面新版、接口旧版,按钮点了没反应」 - AGENTS.md 8.3 同步补上「改 serve.py 后必须让 18112 进程重启」的部署动作
开发文档索引
本目录汇总各子项目的开发文档。
| 文档 | 内容 |
|---|---|
| ../AGENTS.md | 入口文件:给 AI / 新人的一页纸——硬规则、构建命令、验证方法、代码地图、发版清单(开工前先读这份) |
| 开发文档.md | GM 启动器 / 整合工具 完整开发文档(环境搭建、架构、API 契约、打包部署、常见问题) |
| 服务端开发文档.md | 服务端(Go) 架构、GM 接口契约、拍卖行/背包改动、编译部署 |
| PVF解析开发文档.md | PVF 解析 套件(pvfine)、pvfexport 工具、离线名称显示集成 |
| 客户端补丁与CRC校验.md | 客户端补丁(90CN.dll) 自校验机制、patch_dll_crc.py 用法、与「服务端 DLL 指纹」的区别、排查手册 |
| 启动器窗口风暴排查.md | 启动器重复开窗口 / 页面空白 的根因(打包后 sys.executable 指向自身)、复现手法、修复点与日志判读 |
| 踩坑记录.md | 踩坑合集(13 条):每条只写现象 / 成因 / 为什么没早发现 / 教训,开头是一句话教训总表,结尾是发版检查清单 |
| launcher-README.md | 整合启动器 + GM 工具的原始 README |
其余子项目的 README 分散在各自目录:
server/README.md— 服务端源码说明pvf/README.md— pvfine 项目说明gmtool/README.md— GM 工具旧版说明
快速上手路径
- 任何人(含 AI)接手:先读 ../AGENTS.md,再回来按场景选文档。
- 只想跑起来:看根目录 README 的「快速开始」。
- 改 GM 工具(启动器):看 开发文档.md。
- 改服务端 GM 接口:看 服务端开发文档.md 的「GM 接口契约」。
- 改 PVF 解析 / 物品名:看 PVF解析开发文档.md。
- 改客户端补丁 / 重编 DLL:看 客户端补丁与CRC校验.md——改完 DLL 要补 CRC,并且要重编服务端。
- 遇到怪问题先翻 踩坑记录.md:13 条坑的一句话教训和判断规则,可能已经记过了。