From cf0e40cca8f2a43dbd7e07335003de804b3dcf2c Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Thu, 29 Oct 2026 04:49:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=8D=E6=A0=B8(level=5Frunner=20=E5=95=86?= =?UTF-8?q?=E5=BA=97=E5=A7=94=E6=89=98=E5=B1=82=E6=8B=86=E9=99=A4):=20?= =?UTF-8?q?=E5=8D=A1=E7=89=87=20v1.1=20grilling=20=E5=A4=8D=E6=A0=B8?= =?UTF-8?q?=E9=97=A8=E9=80=9A=E8=BF=87=E2=80=94=E2=80=94=E8=B7=A8=E7=B1=BB?= =?UTF-8?q?=E5=90=8C=E5=90=8D=E6=89=AB=E6=8F=8F=E5=88=A4=E7=B1=BB=E5=BD=92?= =?UTF-8?q?=E5=B1=9E=EF=BC=88BattleOrchestrator.player=5Frequest=5Frefresh?= =?UTF-8?q?/CurioDeck.pool=5Fstock=20=E6=8E=92=E9=99=A4=E9=9D=A2=EF=BC=89?= =?UTF-8?q?=E3=80=81=5Fshop=20=E8=AF=8D=E7=BA=A7=E5=BD=92=E9=9B=B6?= =?UTF-8?q?=E5=88=A4=E6=8D=AE=E3=80=81set=5Fshop=5Fpool=20=E9=99=88?= =?UTF-8?q?=E6=97=A7=E8=B0=83=E7=94=A8=E6=96=B9=E9=99=88=E8=BF=B0=E8=AE=A2?= =?UTF-8?q?=E6=AD=A3=EF=BC=88=E6=9E=84=E9=80=A0=20ctx=20=E4=BE=9B=E7=BB=99?= =?UTF-8?q?=EF=BC=8C=E4=BA=A7=E5=93=81=E7=A0=81=E9=9B=B6=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E6=96=B9=EF=BC=89=E3=80=81=E6=B5=8B=E8=AF=95=E9=9D=A2=E7=B2=BE?= =?UTF-8?q?=E7=A1=AE=E8=AE=A1=E6=95=B0=EF=BC=8827=20=E5=91=BD=E4=B8=AD=3D2?= =?UTF-8?q?5=20=E5=AE=9E=E6=94=B9+2=20=E5=90=8C=E5=90=8D=EF=BC=89=EF=BC=9B?= =?UTF-8?q?=E9=9B=B6=E5=BE=85=E8=A3=81=E7=82=B9=E6=94=BE=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...±‚卡片-level_runner商店委托层拆除-2026-10-29.md | 16 ++++++++-------- 待办清单.md | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/reports/需求卡片-level_runner商店委托层拆除-2026-10-29.md b/reports/需求卡片-level_runner商店委托层拆除-2026-10-29.md index 39fcc5d5..e555a661 100644 --- a/reports/需求卡片-level_runner商店委托层拆除-2026-10-29.md +++ b/reports/需求卡片-level_runner商店委托层拆除-2026-10-29.md @@ -1,6 +1,6 @@ # 需求卡片——level_runner 商店委托层拆除批 -- 版本:v1.0(2026-10-29) +- 版本:v1.1(2026-10-29,grilling 复核门通过——修正四项:跨类同名扫描判类归属、`_shop` 词级归零判据、set_shop_pool 陈旧调用方陈述订正、测试面精确计数) - 来源:待办清单「level_runner 商店委托层拆除——迭代 37 冻结契约期过渡件」(2026-10-26 登记,来源=批次移交;需求性工程条目,改动面=游戏代码) - 执行通道:需求改动——经迭代编排编入迭代后在独立 worktree 施工(仪式归 /iter);本卡估时合计 ≈1.5 个工作日(区间 1.5–2,超 2 停批呈报) - 迭代号:由编排段落位(本卡 `iter` 占位符届时代换) @@ -35,11 +35,11 @@ 3. 呈现层:camp_shop_presenter.gd:173–203(12 处)/main_adventure_flow.gd:81–86(6 处)/main_overlay_flow.gd:135/138/main.gd:773(player_request_refresh)/curio_interact_controller.gd:163(spend_gp——奇物三选一付费刷新出账)。 4. sim:level_autoplay.gd:341/350/363/372/418/421(6 处)+:335 注释。 -5. 场景 .tscn 零引用、tests/system_test.gd 零引用(2026-10-29 全仓扫描)。 +5. 场景 .tscn 零引用、tests/system_test.gd 零引用(2026-10-29 全仓扫描)。**跨类同名方法不属本批面**(残留扫描判类归属的依据):BattleOrchestrator.player_request_refresh(round_flow_skill_pool_test ×5、seal_polarity_test:185、main.gd:775)与 CurioDeck.pool_stock(adventure_feats_test ×3、feat_vouchers_test ×2、pool_case_d_test ×3、level_shop_economy_test:1360/1361)——17 公开名 grep 命中须按接收方类归属判别,禁误改这两处同名面。 外部调用面(测试): -6. level_shop_economy_test.gd ≈25 处(含白盒 `_shop_draw_shelf` :1344/:1355)/hero_ledger_test.gd:60/66/adventure_feats_test.gd:364/pool_case_d_test.gd:45–47(:47=shop_bp_shelf)/treasure_effects_test.gd:229/233/curio_refresh_paid_test.gd:52–54/meta_progression_forge_test.gd:735–740。 +6. level_shop_economy_test.gd 实改址 25+白盒 `_shop_draw_shelf` :1344/:1355(公开名 grep 命中 27,内含跨类同名 `deck().pool_stock` :1360/:1361 非本批面)/hero_ledger_test.gd:60/66/adventure_feats_test.gd:364/pool_case_d_test.gd:45–47(:47=shop_bp_shelf)/treasure_effects_test.gd:229/233/curio_refresh_paid_test.gd:52–54/meta_progression_forge_test.gd:735–740。 保留面(非委托,仅随成员更名): @@ -77,7 +77,7 @@ | 文档 | 关联点(本批实现会改变它的哪条陈述) | 同步义务 | |---|---|---| -| design/engineering/architecture/architecture.md | :109 ShopSession 行——「外部调用面由 LevelRunner 同签名委托承载(外部零变化)」句失效;公开面格需随改址后实际对外面重写:补 spend_gp(奇物付费刷新对外出账口)与 current_price/pool_price/purchased_tier/shop_refresh_free_left/is_shop_pool/shop_bp_shelf/shop_bp_visit_buys 等实际被直连方法;set_shop_pool 调用方改述为 AdventureRunner 经 runner.shop 注入 | 反哺点清单(`reports/iter-反哺点-<日期>.md`),用户裁决后归文档批落文;实现批禁直改 | +| design/engineering/architecture/architecture.md | :109 ShopSession 行——「外部调用面由 LevelRunner 同签名委托承载(外部零变化)」句失效;公开面格需随改址后实际对外面重写:补 spend_gp(奇物付费刷新对外出账口)与 current_price/pool_price/purchased_tier/shop_refresh_free_left/is_shop_pool/shop_bp_shelf/shop_bp_visit_buys 等实际被直连方法;set_shop_pool 调用面改述:pool 注入经 LevelRunner 构造 ctx 供给(level_runner.gd:101–102 内部直调 ShopSession.set_shop_pool;原委托块注释「AdventureRunner._start_current_level 唯一调用方」系陈旧表述——全仓 grep 证实产品码零调用方,随壳删除作废),测试面直连 shop.set_shop_pool | 反哺点清单(`reports/iter-反哺点-<日期>.md`),用户裁决后归文档批落文;实现批禁直改 | 其余文档无关联点:GDD 商店/秘宝/天赋树各节机制陈述(扣账口唯一、刷新双源、折价边界、爬价公式)不因调用面搬家而变(grep 考证 2026-10-29)。 @@ -107,7 +107,7 @@ game/presentation/main.gd 调用点改址 1 处【非 game/presentation/curio_interact_controller.gd 调用点改址 1 处【非行为——R1】 game/presentation/views/shop_overlay_view.gd 注释同步 2 处【非行为——R4】 game/sim/level_autoplay.gd 调用点改址 6 处+注释 1 处【非行为——R1/R4】 -game/tests/unit/core/level_shop_economy_test.gd 改址 ≈25 处(含白盒 2)【非行为——R1】 +game/tests/unit/core/level_shop_economy_test.gd 改址 25+白盒 2(grep 全量核对)【非行为——R1】 game/tests/unit/core/hero_ledger_test.gd 改址 2 处【非行为——R1】 game/tests/unit/core/adventure_feats_test.gd 改址 1 处【非行为——R1】 game/tests/unit/core/pool_case_d_test.gd 改址 3 处【非行为——R1】 @@ -125,7 +125,7 @@ game/tests/unit/core/tree_rules_v11_test.gd 头注同步 1 处【非行 - 取用:—(首批)。 - 产出:全部调用点 `*.shop.*` 直连形态(壳在位,行为零改动的中间态);T1 依赖「删壳后零编译错」以本产出为完整性基线。 -- [ ] level_runner.gd:44 成员更名 `var shop: ShopSession`(行注释同步),内部引用 :99/:102/:104/:305–306/:506–507/:704/:729 全部随更名;核查=grep `_shop` 于 level_runner.gd 归零 +- [ ] level_runner.gd:44 成员更名 `var shop: ShopSession`(行注释同步),内部引用 :99/:102/:104/:305–306/:506–507/:704/:729 全部随更名;核查=grep `_shop`(词级)于 level_runner.gd 仅剩保留件 `_bind_shop`(:65/:104/:728——宿主回调装配面,非委托) - [ ] 产品码改址六件(形态=`.shop.<方法>`,方法名与实参逐字不变):camp_shop_presenter.gd:173–203/main_adventure_flow.gd:81–86/main_overlay_flow.gd:135/138/main.gd:773/curio_interact_controller.gd:163/shop_overlay_view.gd:88/152 仅注释 - [ ] sim 改址:level_autoplay.gd:341/350/363/372/418/421+:335 注释 - [ ] 测试面改址七件:level_shop_economy_test.gd(grep 全量核对;白盒 :1344/:1355 改 `r8.shop._draw_shelf()`)/hero_ledger_test.gd:60/66/adventure_feats_test.gd:364/pool_case_d_test.gd:45–47(:46 改 `lr.shop._draw_shelf()`、:47 改 `lr.shop.shop_bp_shelf()`)/treasure_effects_test.gd:229/233/curio_refresh_paid_test.gd:52–54(`lr.shop.spend_gp(...)`)/meta_progression_forge_test.gd:735–740(`lr.shop.current_price(...)`) @@ -139,7 +139,7 @@ game/tests/unit/core/tree_rules_v11_test.gd 头注同步 1 处【非行 - [ ] 删除 level_runner.gd:722–724 区块注释涉委托句+:725 契约注释(保留「商店房兑付」节头与件注入说明)+:751–828 十九个委托全量(含死壳 `_spend_discounted`:772/`pool_stock`:787) - [ ] shop_session.gd:4 头注委托承载句更新(「外部调用面=调用方经宿主公开成员 `shop` 直连」表述) - [ ] 验证:`python tools/run_smoke.py` 绿+全单元套件绿(壳删后绿=T0 改址无遗漏的编译级证明) -- [ ] 残留扫描:grep 19 个方法名于 `game/`(排除 shop_session.gd 本体定义与 level_runner.gd 内部 `shop.` 使用点)——产品码与测试面零命中,输出留实现报告 +- [ ] 残留扫描:grep 19 个方法名于 `game/`(排除 shop_session.gd 本体定义、level_runner.gd 内部 `shop.` 使用点、跨类同名方法——BattleOrchestrator.player_request_refresh 与 CurioDeck.pool_stock 按现状事实 5 清单判接收方类归属)——产品码与测试面零命中,输出留实现报告 - [ ] 注释收尾核查:level_runner 头注涉委托表述已同步(§5 做项) - [ ] 里程碑出口:`tools/run_all_gates.sh --code` 全绿、回执落 `game/tests/.gates/receipt.json` @@ -160,7 +160,7 @@ game/tests/unit/core/tree_rules_v11_test.gd 头注同步 1 处【非行 | 需求点 | 改动(文件:行/行为) | 验收测试(名称+落点) | 层级 | 真实入口 | 判据绑定面 | 能力行 | |---|---|---|---|---|---|---| | R1 调用面直连改址(非行为改动——调用目标/实参/返回/副作用逐项同前,仅取件路径文本变化) | §9 结构图产品码 6 件+sim 1 件+测试 7 件全部调用点 | 既有套件回归两轮全绿:T0 中间态轮+T1 壳删后轮(level_shop_economy/hero_ledger/adventure_feats/pool_case_d/treasure_effects/curio_refresh_paid/meta_progression_forge 全套+冒烟) | 单元+接口 | 各套件既有真实入口(直构 LevelRunner/AdventureRunner 链) | 既有断言逐位不变(行为零改动正向证据)+壳删后编译通过(改址无遗漏) | 既有:GP 钱包/escrow/商店收口/共享池;既有:奖励三选一候选/刷新付费/呈现 | -| R2 壳块拆除(非行为改动——纯转传方法与契约注释删除,行为承载在 ShopSession 不变) | level_runner.gd:722–724 句+:725+:751–828(含死壳 `_spend_discounted`:772/`pool_stock`:787) | 残留扫描零命中(T1 静态步)+T1 套件绿 | 静态+单元 | grep 全仓(19 方法名清单固定)+套件真实入口 | 扫描面>0 前置(grep 命令对 19 名单非空可执行)+壳删后零引用可编译 | 既有:GP 钱包/escrow/商店收口/共享池 | +| R2 壳块拆除(非行为改动——纯转传方法与契约注释删除,行为承载在 ShopSession 不变) | level_runner.gd:722–724 句+:725+:751–828(含死壳 `_spend_discounted`:772/`pool_stock`:787) | 残留扫描零命中(T1 静态步)+T1 套件绿 | 静态+单元 | grep 全仓(19 方法名清单固定)+套件真实入口 | 扫描面>0 前置(grep 命令对 19 名单非空可执行)+壳删后零引用可编译;命中行按接收方类归属判别(现状事实 5 跨类同名清单) | 既有:GP 钱包/escrow/商店收口/共享池 | | R3 宿主成员公开化(非行为改动——私有 `_shop` 更名公开 `shop`,装配与读写路径不变) | level_runner.gd:44+内部引用 :99/:102/:104/:305–306/:506–507/:704/:729 | 随 R1 两轮套件绿 | 单元 | 套件真实入口 | 同 R1(内部使用点行为不变) | 既有:GP 钱包/escrow/商店收口/共享池 | | R4 注释同步六处(非行为改动——注释文本,无运行时可观测面) | shop_session.gd:4/level_runner.gd:722–724/level_autoplay.gd:335/shop_overlay_view.gd:88/152/tree_rules_v11_test.gd:6 | 随批代码域闸绿(静态扫描覆盖文件头纪律面) | 静态 | —(静态判据) | 观测面局限申报:注释无运行时提交面,判据=静态扫描+评审注记 | 既有:GP 钱包/escrow/商店收口/共享池 | diff --git a/待办清单.md b/待办清单.md index 376264e8..d6a13fbc 100644 --- a/待办清单.md +++ b/待办清单.md @@ -98,7 +98,7 @@ #### level_runner 商店委托层拆除——迭代 37 冻结契约期过渡件(2026-10-26 登记,来源=批次移交) -**实况**:证据=迭代 37 卡④ ShopSession 拆分时立「冻结公开面」契约,level_runner 保留 buy_product/shop_refresh 等同签名委托方法(架构模块表登记为「外部调用面由宿主同签名委托承载」)。2026-10-26 AdventureRunner 真拆分设计会话裁定新原则:纯转传委托=Middle Man 反模式,新件一律调用方直连不留壳(godot-master 技能库审查同判);本批不动该委托层(真拆分条目范围仅撤 8 条白盒转发属性),其拆除与调用文件改址由本条承接。需求卡片:reports/需求卡片-level_runner商店委托层拆除-2026-10-29.md(v1.0,2026-10-29)。 +**实况**:证据=迭代 37 卡④ ShopSession 拆分时立「冻结公开面」契约,level_runner 保留 buy_product/shop_refresh 等同签名委托方法(架构模块表登记为「外部调用面由宿主同签名委托承载」)。2026-10-26 AdventureRunner 真拆分设计会话裁定新原则:纯转传委托=Middle Man 反模式,新件一律调用方直连不留壳(godot-master 技能库审查同判);本批不动该委托层(真拆分条目范围仅撤 8 条白盒转发属性),其拆除与调用文件改址由本条承接。需求卡片:reports/需求卡片-level_runner商店委托层拆除-2026-10-29.md(v1.1,2026-10-29,复核门通过零待裁点)。 **改动面**:游戏代码