Commit Graph
3 Commits
Author SHA1 Message Date
joywayerandClaude Opus 4.7 0cdd709e66 中优 3 项收尾:Plan §6.4 里程碑 + Design §20.1 拆分 + Contract §10 验收清单
补完本轮 audit 与 Design 大改后的文档边界,避免后续 Phase 实施者
按陈旧描述走弯路。

1. Plan §6.4 文档同步段新增「Design 接口骨架覆盖里程碑」表:
   - 4 行时间线记录 Phase 1 闭环 / Design 全 51 项接口骨架 / Contract §4.2
     按 daoqi 原项目修订 / CLAUDE.md 加典型案例的 commit hash
   - 末尾澄清「§3.4.1 撤销说明」与 §7.5 主路径关系,避免新人疑惑

2. Design §20.1 LobbyHandlers 加架构说明段:
   - 明示实际拆为 AudioHandlers / DeviceHandlers / LocationHandlers /
     ShakeHandlers / OpenurlTitleDataHandler 5 个 sub-struct(§8.1.1 /
     §8.4.1 / §8.6 / §8.7 / §3.4.2 各自归属)
   - LobbyHandlers 成为聚合点,依次调子 .register()
   - 保留 monolithic register 速查表作为与 Contract §3.1 编号对账用
   - 每行注释 §3.1 [N] 编号便于追溯

3. Contract §10 验收清单加 5 项硬约束:
   §A 启动新增:
     - app_*.js 4 个文件存在
     - 15 个 app_* 全局变量命名 100% 正确(大小写硬约束)
     - 大厅 vs 子游戏 app_Launchtype = "0"/"1" 字面差异
     - app_gameid / app_compareCode 必须 undefined(早期 Contract 误列)
   §B 桥接新增:
     - H5 alert(msg) → UIAlertController 单按钮
     - H5 confirm(msg) → 取消/确定 双按钮 + 正确返回 bool

至此 Plan / Design / Contract 三文档完全对齐 51 项接口(含 §7.5 app_*.js
15 个、§3.7 WKUIDelegate 2 个)。Phase 2 实施可直接对照 Contract §10
验收清单做契约测试。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-22 08:02:24 +08:00
joywayerandClaude Opus 4.7 47a89aa49c Contract §4.2:按原项目代码全面修订 app_*.js JS 注入清单
Phase 1.17 联调准备时回归原项目(CLAUDE.md「先看原项目」规则),
grep daoqi/msext 全部 "var app_" 字面字符串,对照本文档 §4.2 早期记录
发现 4 类硬错误:

1. 多列了不存在的变量 — 原项目代码字面字符串里**根本不写**:
   - app_gameid    grep 0 命中  → 删除
   - app_compareCode grep 0 命中 → 删除

2. 文件名与变量名混淆 — msext 文件名不带 get、变量名带 get:
   - 文件 app_battery.js → 内容 "var app_getbattery=%lf;"  (gameController.m:1191 / NewRootVC.m:1706)
   - 文件 app_network.js → 内容 "var app_getnetwork=%d;"   (gameController.m:1198 / NewRootVC.m:1714)
   早期文档统一写成 app_battery / app_network 容易让实施者把变量名也
   去掉 get,导致 H5 业务读到 undefined → 修正

3. 漏列 6 项真实存在的变量(gameController.m:2160 / NewRootVC.m:1204
   / AppDelegate.m:259 字面字符串里都有):
   - app_version           硬编码 "1"
   - app_Launchtype        大厅 0 / 子游戏 1(⚠️ L 大写)
   - app_getwifisignalLevel 硬编码 1(⚠️ wifi 小写、signal/Level 大小写区分)
   - app_gamename          大厅 = gameStart / 子游戏 = game_name
   - app_invitationcode    tuiguang_id 推广码 / 邀请码
   - app_gamesname         独立 app_gamesname.js 文件 (var<两空格>new Array)

4. 大厅 vs 子游戏字面差异之前未注明:
   - app_Launchtype = 0/1
   - app_gamedir:gamedir vs gamefilepath
   - app_gamestart + app_gamename:gamestart vs game_name

新增"修订记录"小节明示三处修订的代码依据行号,方便未来回溯。

至此 Contract §4.2 与 Design §7.5 完全对齐(15 项变量,全部对应到
daoqi 原项目真实代码行)。Phase 2 实施 AppDataWriter 时按 Contract §4.2
为准,H5 端验收按 Contract 不会再有差异。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-22 07:58:02 +08:00
joywayer beb05ab451 添加文档和CLAUDE.md 2026-06-21 19:39:22 +08:00