登记(工程批): 闸机提速与防作废批——02分片并行+代码域起手自检+worktree素材同步(来源=迭代42合回六轮重跑复盘会话; C批探针渲染并行缓做不立项)

This commit is contained in:
DKChan committed 2026-10-30 02:11:47 +08:00
1 parent 65dff22fcf
commit 31c801cd5a
1 file changed
+8
+8
View File
@@ -2,6 +2,14 @@
本清单是流水线的唯一登记处:要做的事先在此登记一条,随流水线段推进改状态,做完整条删除;各系统文档的「待办」节只留一行指路存根,不再自建条目。条目格式(标题=登记元数据含可选优先级,正文=实况/缺口/改动面/状态四属性)与状态机以 [doc-conventions §12.1](design/engineering/doc-conventions.md) 为权威。
#### 闸机提速与防作废批——02 分片并行+代码域起手自检+worktree 素材同步(2026-10-30 登记,来源=会话提及)
**实况**:迭代 42 合回六轮被拦复盘:单轮代码域闸约 24 分钟(02 串行 66 套件约 5.5 分钟+探针渲染约 3.5 分钟+对拍实跑约 14 分钟),六轮累计约 2 小时;被拦主因=master 中途被另一会话推进(回执作废整轮重跑)、worktree 缺 gitignore 素材(迭代 43 新套件断言的 PNG 不入 git)、闸进程被会话取消连带杀掉、操作失误产杂散目录到批末熵增闸才红。证据=`tools/run_all_gates.sh:325`(gate_unit 单 Godot 进程串行编排)、`game/tests/run_all.gd:206`(逐套件独立子进程实跑、编排层串行为唯一瓶颈)、`tools/run_all_gates.sh:470`(回执指纹绿闸记 green、红闸取 FAIL 行排序集合——输出顺序不影响指纹,并行化免记账换代)、`game/core/rng_service.gd:134`(事件日志按种子命名同文件追加——开日志会话的套件跨分片并行互踩,须钉同一分片串行)。本批内容:B=`run_all_gates.sh` code 域起手自检(熵增预检红灯即止、master 推进黄牌、worktree 素材自动同步 `tools/sync_worktree_assets.sh`)+iter 技能合回段补「并 master → 自检 → 出闸 → 立即合并」次序;A=`run_all.gd` 加 `--shard/--shard-count` 分片(串行道套件钉第 1 片)+`gate_unit` 多进程并行(`GATE_SHARDS` 可调,=1 回落单进程原路径)。C 批(探针/渲染三段并行)本轮缓做不立项。
**改动面**:工具代码
**状态**:待执行
#### 架构审查优化讨论——全库架构审计读数的逐条裁决与整改分批(2026-10-29 登记,来源=审计发现)
**实况**:2026-10-29 全库架构静态审计完成,读数见 reports/审计-全库架构审查-2026-10-29.md(七节:总评/健康面/P0/P1/P2/待裁点/取证口径;零测试执行零引擎运行,全部结论带 文件:行号)。健康面已逐条核干净:Core 零 UI 八项判据全零命中、core 内 RNG 单点 100% 成立、字符串式信号连接全库 0 处、core 层零超长函数、19 表 ↔ 19 schema 一一对应、无循环 preload。问题集中在三条「写了没闸守」的纪律被实际破坏:①数值单一事实源被 18 处硬编码击穿,最危险两处是 `presentation/main.gd:787` 与 `:790` 把 `rap_refresh_cost=8` 与 `refresh_cap_per_round=2` 写死进提示文案(紧邻 783 行是正确读表的),表改文案不改、玩家直接受错误数字;另有 4 组代码自标「机制结构常量/产出约束」的字面量(`node_map_generator.gd:12` `MAX_WIDTH`、`action_economy.gd:14` `CHARGE_LAYER_CAP`、`board_data.gd:9` `SPAWN_AREA_CELLS`、`node_map_generator.gd:83-94` 域字面量)是否入表待裁。②`game/sim/` 与 `game/core/` 四组平行实现——扫雷推理引擎双份(`board_generator.gd` `measure_inferability` 族 vs `auto_player.gd` `_deduce` 族,输入集口径不同:前者含 safe_set oracle、后者 no-peek)、伤害掷点期望重算(`damage_probe.gd:196-201`)、档位排序与驱动循环双份(`level_autoplay.gd` vs `treasure_item_table.gd:44` 与 `battle_driver.gd:17`)、FakeDB 伪造表喂生成器——直接威胁「模拟读数 = 游戏真实数值」这一数值验证前提。③RNG 单点纪律在 core 外失守(sim 4 处/probe 1 处/tests 3 处自建 `RandomNumberGenerator`,均显式定种、确定性尚存),而 `static_scan.sh` 的 S1/S2 扫描面只含 `DIR_CORE` + `DIR_PRES`。守卫面另有三缺口:S8 是 9 文件显式清单(新增结算文件忘登记=静默不扫,缺位自检只防删改不防增)、S9 类型闸与 S13 质量闸扫描面止步于 core+data+presentation(sim/probe/tests 三层除 S11/S12 外零闸)、S13 三处豁免常态化到最大户文件(`battle_orchestrator`/`main.gd`/`tune_sim_controller`);另有四个 core 文件零测试点名(`attune_loadout`/`battle_fx_host`/`meta_state_store`/`slot_store`)。P2 级:`core/settlement/` 五段类直读写编排器私有成员 20+ 处(`oc._damage.*`/`oc._enemy_system.*`,GDScript 无编译期检查、改名静默断裂);架构文档三处漂移(`architecture.md:110` 登记的 `core/hero_ledger.gd` 盘上不存在且 `hero_ledger_test.gd:171` 显式断言它必须不存在、`:135` 行数过期、EC8 热重载门后 `ConfigDb.reload()` 零调用方且走 `load()` 拿不到磁盘新值);class_name 级双向依赖(`core/config_db` → `data/schemas/board_gen_table` → `core/board_data.SPAWN_AREA_CELLS`)与 `NODE_TYPES` 词表双份;`MetaProgression` 是唯一用 `get_node("/root/...")` 取依赖、唯一跨 Autoload 直调的单例。