收尾(迭代 41 测试债批): 待办条目「迭代 41 测试债修复」完成整条删除+收尾实现报告落 reports/(登记范围完成度+实测扩出的四处迭代 41 特许合回遗留产品回归:数字色牌守卫/open_victory opts 改型/站桩补间目标/调参模拟运行态收尾,含 golden 2.74%→0.00% 与墨族自适应读数证据+闸回执读数+实机目检三项);新立条目「闸基线 02/09 两键换代」承接已归绿存量红指纹的重生成(代码面,随下一代码批落)

This commit is contained in:
DKChan committed 2026-10-29 23:07:39 +08:00
1 parent 43906cdd8c
commit d9e5c019fd
2 files changed
+38 -2

No files matched your search

@@ -0,0 +1,36 @@
# 迭代 41 测试债批——实现报告(2026-10-29)
**接收方**:待办清单原「迭代 41 测试债修复——9 个套件失败与静态扫描三项红」条目(随本批完成整条删除,本报告为收尾凭据)。
**改动面**:游戏代码(worktree 批)。
**执行**:worktree `g-plan2-testdebt-20261029`(分支 `testdebt-20261029`,自 master cf0e40cc 分出,批内 `git merge master` 到 39c1fc69 后跑闸),提交 215da315/413124b0/afd1a41f,合并提交 43906cdd;工作区与分支已删除。
## 一、登记范围完成度
| 登记项 | 结果 |
|---|---|
| 02 九套件失败 | 全部归绿(65 套件全跑,`[run_all] 0 个套件失败`) |
| S9 类型闸 24 处 | 归零——`node_map_generator` 三处给真类型(`Array[int]` 贯通 `_vo_flow_facts`→`_build_trunk`),其余 21 处为动态边界(Variant 出值/鸭子型注入/异构 Callable 束),按 V7 白名单逐处补 `# type-hint: ignore` 并写明理由 |
| S10 文件头 4 处 | 归零——`config_db` 与三张域容器头注去日期 |
| S11 注释禁用词 1 处 | 归零——`adventure_table.gd:55` 档位退役词「罕见」改现行「稀有」 |
| 死常量 `SCHEMA_VERSION` | 已删(全仓零引用;文档侧「表结构版本」冲突面已由文档批清偿) |
## 二、实测扩出的范围(登记条目未预见,全部由代码域闸实跑暴露)
登记时 03/04/05 三闸在能力审计上电批被记为 SKIP(测量面批口径),其红项从未被实测过,故条目只记了 02 与 09。本批按代码域实跑,三闸皆红,逐条追因如下——**四处是迭代 41 特许直接合回留在产品码里的运行期断链,不是测试债**:
1. **数字色牌守卫丢失**(`game/presentation/views/board_cell_unit.gd` `_draw_glyph_layer`):迭代 41 卡②绘制分层时把 `if plate:` 判据丢掉,变成「凡有字形即垫牌」。后果=dungeon 关数字(本应亮墨直画在棕底)一律落到奶油色牌上。判据=棋盘 golden 逐像素:L1_dungeon changed=2.74% 超容差、L2/L3 与菜单 0.00%;恢复守卫后 L1 回 0.00%(与迭代 37 换代基线逐像素一致)。墨族自适应实测读数同时佐证现行口径:dungeon `plate=false`(亮族对比度 4.79/5.80 过门槛)、underdark `plate=true`(深族均值 2.41 不过门槛)。
2. **`open_victory` 第 4 参未随 opts 改型**(`game/presentation/curio_interact_controller.gd:79`):迭代 41 卡②把该函数的四散参数收拢为 `opts := {}`,其余调用方(`main.gd`/`main_adventure_flow.gd`)已改,此处仍传字符串 → 运行期 `Cannot convert argument 4 from String to Dictionary`,关卡完成三选一停点与续玩恢复路径的胜利总结面开不起来(探针报「三选一停点分支中断」)。改型为 `{"gp_summary": …}`,串内容与改前逐字同。
3. **站桩补间目标写错**(`game/presentation/views/standee_body.gd`):状态收进内部件 `st` 后,9 条 `tween_property(self, "st.xxx", …)` 的属性路径不成立(引擎报 `The tweened property ... does not exist`,并连带 `set_trans` 落在 null 上)→ 血量条与三档意图动效全静。改为直接补间子对象 `tween_property(st, "xxx", …)`。
4. **调参批量模拟运行态收尾位置**(`game/presentation/tune_sim_controller.gd`):循环体提函数时把 `set_sim_running(false)`/`_running = false` 搬进了单局函数,等于每局结束就宣布模拟结束——面板置灰与组合根互查守卫在剩余局数内失效。归还到 `run()` 末尾。
另有探针面随拆件改址(断言零删减、零放宽):`ui_input_probe` 格面成员入 `st` 六处、`ui_struct_probe` 的 `level_screen._runner` → `._map._runner`;测试面改址九处(`slots`/`meta_state`/`crossrun`/`_forge`/`_side`/`_meta_rows`→表成员直读/`_shop_rows`→表成员直读)。
## 三、闸与回执
`tools/run_all_gates.sh --code`(域=code、scope=full、dirty_game=false):00 冒烟/01 系统测试/02 单元与集成/03 探针 --click/04 探针 --full/05 渲染闸/09 静态扫描/10 熵增闸全部退出 0;11 回放确定性对拍按触面判定 SKIP(本批未触数值·存档·RNG·结算)。与基线比对=**零新增红**,且 02、09 两闸「基线红 → 现绿(改善)」,`all_green=true`。合回后主区两件秒级事已过:`--editor --quit` 重刷类名缓存、冒烟 15 项 0 失败。
## 四、遗留与待裁
1. **闸基线 02/09 两键待换代**:两键仍记本批已消除的存量红指纹,未来若回归到同一红项会被判「存量红·零新增」而静默放行。换代须改 `game/tests/.gates/baseline.json`(代码面)→ 已另立待办条目,随下一个代码批一并落。
2. **architecture.md 残留常量名**:`design/engineering/architecture/architecture.md:88` 的 ConfigDB 行仍把 `SCHEMA_VERSION` 列为该类职责,常量已删,该句失真——属文档面反哺点,待文档批按「删该词或改现役 `SAVE_FORMAT_VERSION`」落文(本批为实现批,禁写 `design/`)。
3. **实机目检**(归用户,不阻塞):dungeon 关胜利后数字回到棕底直画(无奶油牌);关卡完成三选一停点的胜利总结面能正常开出并可继续;调参面板批量模拟期间浮窗置灰、结束后解除。