4.1 KiB
P2-alpha-B两类历史空态兼容实施独立复核
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与B1–B4实施;此前参与为原方案审查与修订1补审(修订1的两条P3——四字符Trim精确性与教训注释——为本复核重点核对项)。本轮只读+hash重算+精确DLL独立复跑;未操作Unity/许可/正式数据。
受审hash核对
implementation-review-hashes.json:1334/1334重算全部一致。B2-green-artifact.json锁定的KVGameLoadTests.dll(88CC86E3…/495616字节)——本复跑按约定先构建后dotnet <dll>执行。
总结论
接受。本两类空态兼容单元(P2-α-B)可关闭(主会话裁决后)。无P1/P2;P3一条。
八项逐条
1. 白名单与diff:符合。 变更恰为批准的4生产+3测试(B4-scope-verification.json逐项对应);生产行数18增/5删与diff一致;无无关业务逻辑变化。
2. M15闭合且两条补审P3落实:确认。 实际代码(Schema:806–816):缺键→Missing;text.Trim(' ','\t','\r','\n')=="null"(恰四字符Trim——补审P3-1落实,非泛化Trim);StrictJsonSyntax.Validate(text)验证原字符串后返回ExplicitNull();其余一切输入走原Object(Json(text));"Json rejects root null before returning"教训注释在位(P3-2落实)。共用Json与StrictJsonSyntax逐行核对未变。三态DTO、非法组合校验、Replace"缺失或显式null→业务null"条件、Raw原字节保留均按合同(离线1783断言含四组DTO/严格负例/Raw空白变体覆盖)。
3. M22最小放宽:确认。 Schema:238–241:selectionToken!=null && Type==Null → null,缺属性(token==null)落入IntegerList(null)仍拒;其他14字段/PackType=3/错误分类原样(:240 UnsupportedSchema保持);null与[]不混同;DTO/Apply/Snapshot的null与深复制经T2/T4(含双向修改隔离、序列化保留null)覆盖。
4. 比较器与验证边界:正确。 EditorValidationHost:107仅Bargain专用Same的selections子表达式改为(a.selections==null ? b.selections==null : b.selections!=null && SameList(...))——其余14字段比较逐项不变;通用SameList(:117)未动;null/null相等、null/[]不等已入测。固定case的私有字段读取限于验证实际保存值,无新反射入口。
5. 红绿与编译证据真实:确认。 红测77组/3预期失败(B2-red-*原始输出保留)→本复跑独立确认绿测77组/0失败/1783断言、退出0(精确DLL,非apphost——dotnet <KVGameLoadTests.dll>并核对green-artifact hash);Unity 63/146/83断言、Editor/SERVICE_HOST双编译0错误对应最终源hash(B3-verification-summary:883配置零失配、editorCompile 0错误)。
6. 样本与边界诚实:确认。 101原55键与102原45键均Valid/0诊断(源hash不变、合成描述符/本地UTC口径保持、883指纹一致);"Decode Valid/31节点≠全用户/全玩法/模块外键验证完成"的限定保留——26模块外键/5未定位键/Present覆盖不足仍专项未决。
7. 运行边界守住:确认。 无Play/许可/正式数据接口/导入/打包;末态无run/permit、11 claimed保留、Unity错误0;B2-20的auth/gets按模拟请求口径解释(非正式请求)。
8. 可关闭本单元:可以。 关闭范围=两类空态的加载表示兼容;101未真实启用、未导入、整体P2-α/G4不因此关闭。
P3清单
- P3-1:T1的
\v/\f/\u00a0包裹null拒收断言(补审P3-1的配套测试)若尚未在1783断言中逐字符覆盖,建议B5后补一条(实现已正确,仅测试完备性——主会话裁决时确认即可,不阻塞关闭)。
结论
接受P2-α-B实施交付;建议主会话核hash(已代验1334/1334+独立复跑)裁决后关闭本两类空态兼容单元。 下一步候选:按A4交付建议进入"整体P2-α剩余项"(26模块外键处置、Present覆盖、真实迁移政策产品确认)或按用户优先级切换(4B3B/C、4C其余、服务端revision/CAS需求)。