merge(核代码补审修复): A-1 _face_liveness 补 alive-null 臂(激活 13 条对象缺位拦截);A-2 V2-s4 结构例外注;B×3 标签收口;C-1 重复注释删除——代码域闸全绿零误红,回执 commit=5644d30c 与分支尖对齐
This commit is contained in:
commit
c5f1383766
17 files changed
+34
-12
No files matched your search
@@ -0,0 +1 @@
|
||||
uid://c4a3130vctg4d
|
||||
@@ -0,0 +1 @@
|
||||
uid://d0j4m26d1d5yo
|
||||
@@ -0,0 +1 @@
|
||||
uid://dhhxar186w1sq
|
||||
@@ -173,7 +173,7 @@ func _smoke_boot_chain() -> void:
|
||||
# ④-1 boot 路径:启动态钉死(卡① sv2)——boot 无激活态、断点在档恒否,续玩钮恒隐
|
||||
#(原「按钮态==真实档断点态」关系判据随启动态换代改写:test-conventions §9.5 申报在案,卡② mn8 再承接)
|
||||
check(not sm.has_breakpoint(),
|
||||
"V2d 续玩钮族退役·boot 无断点在档(启动态不隐式激活——卡① sv2 钉死;恒隐判据随钮退役由本断言+V2d 三钮在位承接)〔装配生命批 V2·卡② mn8 改写〕")
|
||||
"V2d boot 无断点在档(启动态不隐式激活——卡① sv2 钉死)〔装配生命批 V2·卡② mn8 改写〕")
|
||||
# ④-1b 启动态三断言+旧单档迁移不变式(卡① sv2/sv12——真实 autoload boot 链)
|
||||
check(sm.active_slot() == 0 and not sm.has_write_target(),
|
||||
"V2-s1 boot 后无激活态(active_slot=0、写盘目标空)〔卡① sv2〕")
|
||||
@@ -182,7 +182,7 @@ func _smoke_boot_chain() -> void:
|
||||
check(not sm.write_to_disk(),
|
||||
"V2-s3 boot 无激活写盘拒绝(write_to_disk=false 生产入口)〔卡① sv3〕")
|
||||
check(not (FileAccess.file_exists("user://save.json") and not FileAccess.file_exists(sm.slot_path(1))),
|
||||
"V2-s4 旧单档迁移不变式(旧档在则槽 1 必在——Q1 甲一次性迁移已发生)〔卡① sv12〕")
|
||||
"V2-s4 旧单档迁移不变式(旧档在则槽 1 必在——Q1 甲一次性迁移已发生;旧档在盘面罕见,迁移逻辑本体由 save_manager_domain v0 迁移链断言覆盖)〔卡① sv12·核代码增补注〕")
|
||||
# ④-2 三钮承接(卡② mn8——V2d 续玩钮族随钮退役废止:钮可见性联动面由卡① V2-s 启动态断言与
|
||||
# sv11 attach 语义段承接;attach 原地重置语义保持——绝不碰真实档 user://save.json)
|
||||
for p in ["user://smoke_boot_chain.json", "user://smoke_boot_chain.json.tmp"]:
|
||||
@@ -213,10 +213,6 @@ func _smoke_boot_chain() -> void:
|
||||
DirAccess.remove_absolute(p)
|
||||
|
||||
|
||||
# ---- 生命周期存活性矩阵(九阶段×五引用面;驱动复用 V3 debug seed 开局路径+
|
||||
# _auto_play_round 活战斗模式+ui_struct resume 夹具模式,不另起点击链)----
|
||||
# 阶段映射说明:计划书十阶段中「开局停点」与「地图选路」在本现行流程同为关卡画面停点态
|
||||
#(level_started→choices_presented 同步到达,无可观测中间态)——合并为 V3b 一处断言。
|
||||
func _smoke_run_lifecycle() -> void:
|
||||
print("--- 迭代27 T1 会话物化(V3:两连局复位+脏状态不残留)---")
|
||||
var main: Node = load("res://presentation/main.tscn").instantiate()
|
||||
@@ -259,7 +255,7 @@ func _smoke_run_lifecycle() -> void:
|
||||
"V3 局态封印/账本全复位(queue_free 物化——注入脏状态零残留)")
|
||||
check(main._start_overlay.visible, "V3 回开始菜单(终局出口路径)")
|
||||
# ---- 第二局:放弃终局无断点残留→直进开局→全新会话 ----
|
||||
check(not sm.has_breakpoint(), "V3 放弃终局清断点(无残留断点——续玩按钮态联动)")
|
||||
check(not sm.has_breakpoint(), "V3 放弃终局清断点(无残留断点)")
|
||||
main.debug_overlay.seed_edit.text = "43"
|
||||
main._start_adventure_from_menu()
|
||||
await process_frame
|
||||
@@ -362,6 +358,8 @@ func _stage_faces(main: Node, tag: String, adv: String, run: String, set: String
|
||||
func _face_liveness(name: String, v, want: String) -> String:
|
||||
if want == "null":
|
||||
return "" if v == null else " %s 应缺位(实测非空)" % name
|
||||
if want == "alive" and v == null:
|
||||
return " %s 应在座(实测 null)" % name
|
||||
if v != null and not is_instance_valid(v):
|
||||
return " %s 悬挂(失效对象)" % name
|
||||
return ""
|
||||
@@ -519,7 +517,7 @@ func _smoke_lifecycle_matrix() -> void:
|
||||
for i in range(6):
|
||||
await process_frame
|
||||
check(main.run_scope.adventure != null and main.run_scope.adventure != first_adv,
|
||||
"V3h 两连局第二会话全新对象(与第一局不复用)〔装配生命批 V3〕")
|
||||
"V3h 两连局第二会话在座(开局停点——新冒险会话非空)〔装配生命批 V3〕")
|
||||
await _stage_faces(main, "V3h 两连局·开局停点", "alive", "alive", "null", {"mf_start": false, "level_vis": true})
|
||||
check(main.run_scope.adventure.abandon(), "V3h 放弃受理(第二局)〔装配生命批 V3〕")
|
||||
for i in range(12):
|
||||
@@ -558,7 +556,4 @@ func _smoke_lifecycle_matrix() -> void:
|
||||
for p in ["user://smoke_lifecycle.json", "user://smoke_lifecycle.json.tmp",
|
||||
"user://smoke_lifecycle_resume.json", "user://smoke_lifecycle_resume.json.tmp"]:
|
||||
if FileAccess.file_exists(p):
|
||||
DirAccess.remove_absolute(p)
|
||||
|
||||
|
||||
# 引用面快照(五承载物的会话相关面+恒活面——逐个调用现值回调,与 run_scope 成员并采)
|
||||
DirAccess.remove_absolute(p)
|
||||
@@ -0,0 +1 @@
|
||||
uid://bol5e0tx2p8ie
|
||||
@@ -0,0 +1 @@
|
||||
uid://dc8bwwuqtm7mh
|
||||
@@ -0,0 +1 @@
|
||||
uid://vvodbyea6fkv
|
||||
@@ -0,0 +1 @@
|
||||
uid://b0qpkkpeqbt0l
|
||||
@@ -0,0 +1 @@
|
||||
uid://0h8pw8le1vok
|
||||
@@ -0,0 +1 @@
|
||||
uid://dmwjb53bvebbh
|
||||
@@ -0,0 +1 @@
|
||||
uid://6ctee5n6qyvm
|
||||
@@ -0,0 +1 @@
|
||||
uid://bl8x36rkw3joa
|
||||
@@ -0,0 +1 @@
|
||||
uid://x67hg5qwuf6t
|
||||
@@ -0,0 +1 @@
|
||||
uid://b3ccx0sbe1f42
|
||||
@@ -0,0 +1 @@
|
||||
uid://brkl7td1ruuf7
|
||||
@@ -0,0 +1 @@
|
||||
uid://clk6d0agf3dbx
|
||||
@@ -429,3 +429,15 @@
|
||||
10. roll_multiplier:443 "attach"→"rider" 键名修复
|
||||
|
||||
**闭案措辞(按测试规约 §6)**:system_test :279/:421 与幂等等值类=「结构复核通过、变异拦截能力未证(执行前提/预算收刀)」。**变异形态留档(只登记不执行——测试已被用户叫停)**:1=adventure_runner.gd:1025 键改名|2=derive_at 内推计数器|3b=计数循环恒 0|4=disabled 改挂 pressed 同内容|5 钉=effect_pool_map 加 hero_defense 映射|6=seal 兑付行符号翻转|7=回血基数改表值上限|8=双掷点恒取下界(R1 已实证形态)|9=货架全不可负担|10=Boss 池加入 rider_mult 技能。**错账撤销**:G3「生产疑似 bug 登记待办」作废——区间行死逻辑在测试源码自身,本批已修。
|
||||
|
||||
## 十五、核代码补审修复批施工记录(2026-10-23 主会话执行)
|
||||
|
||||
冷启动补审(iter33 卡② 移植断言面)69 条:55 有效 / 14 存疑——13 条共用一个根因(_face_liveness 的 alive 分支不拒 null,docstring 与实现不符;系老底稿 smoke_all 原有缺陷逐字搬运带入,非移植引入)+1 条近恒真(V2-s4)。用户裁决:A 类修、B 类标签收口、C 类登记。执行如下:
|
||||
|
||||
- **A-1** `_face_liveness` 补 alive-null 臂(want=="alive" 且 v==null → 「应在座(实测 null)」)——**只对 alive 生效,both 的 null 合法态不受影响(griller 原文 want!="null" 写法会误伤 both,已修正)**。激活 V3b/V3c/V3d/V3d2/V3e/V3h/V3i 等 13 条的「对象缺位」拦截。修复后跑 --code 域验证(结果见回执)。
|
||||
- **A-2** V2-s4 标签补注「旧档在盘面罕见,迁移逻辑本体由 save_manager_domain v0 迁移链断言覆盖」——结构例外登记(构造旧档场景的实跑验证成本高、迁移逻辑本体已有专门覆盖)。
|
||||
- **B-1/B-2/B-3** 三处标签收口(V2d 删按钮承接叙事/V3h 删「不复用」冗余主张/V3 删「续玩按钮态联动」残留)——cond 全部未动。
|
||||
- **C-1** 重复注释删除:错位的生活周期矩阵头注(run_lifecycle 前)+文件尾孤行「引用面快照」(原底稿注释逐字搬运副产物)。
|
||||
- **C-2~C-6 登记备查(测试增强批候选,本批不执行)**:C-2 计数闸残缝(visible 标志位≠渲染面,隐藏匿名旧钮接回双闸漏过——改 is_visible_in_tree 需实跑验证)|C-3 _stage_faces extra 静默吞键(match 无默认臂——加「未知键即红」需全调用点键名核对+全量回归)|C-4 顺序耦合无守卫(boot_chain 须先于驱动执行;lifecycle_matrix 永久改写槽模板不还原,后加函数继承污染)|C-5 camp 残留档使 V3g 红的原因标注误导(不静默)|C-6 V1a 候选表与 LAYER_CONTRACT 双维护(新增层忘登则漏检盖顶回归)。
|
||||
|
||||
**闭案措辞(按测试规约 §6)**:本批全部为标签收口/判据补洞/注释清理,cond 冻结面改动仅 A-1(激活既有判据的 null 臂——系补全 docstring 已承诺的语义,非新增拦截面);激活效果待 --code 域实跑留证。
|
||||
Reference in new issue
Block a user