5.6 KiB
阶段4B2独立实施复核
日期:2026-09-24(受审交付落盘2026-09-23)。审查者:ZCode会话。
独立性声明:本审查者未参与4B2任何生产/测试代码的编写与实施;此前参与仅为设计层差异补审(D1–D5审查报告,受审对象均为主会话编制的方案文档)。本轮全部复核命令由本会话亲自执行,结论以实际结果为准。
本轮只读+仅新增本文件与复跑日志(review-*前缀,新文件名,未覆盖任何交付证据);未改生产代码/共享文档;无子Agent、无正式服、无PlayMode、不打包。
受审hash核对
KVGameLoadTests/checkpoint4-delivery-hashes.json共221项,逐项重算SHA256全部一致。边界证据JSON:123项基线=85原样+38获批变更+0项白名单外(outside=[]);ClubService仅新增KV块(P2-β兑现);65个KV入口方法直审0违规标记。
复核结论
接受4B2实施。无P1/P2。 建议:主会话核对hash与逐条裁决后关闭4B2;4B3(读写路由)另立方案评审,P2-α(真实存量档迁移+用户产品确认)仍为正式启用硬门。
独立复跑结果(全部本会话执行,真实退出码)
| 命令 | 结果 | 退出码 | 复跑日志 |
|---|---|---|---|
KVGameLoadTests(离线) |
75组/0失败/1715断言 | 0 | review-offline.log(新run 20260924021937_2c8e39d5…) |
--cleanup-failure prepare/schema/apply |
5+8+8=21断言全过 | 0×3 | review-cleanup-*.log |
| ServiceHost(非Android) | 8组/73断言/formalRequests=0 | 0 | review-service-false.log |
| ServiceHost(AndroidProbe) | 8组/73断言/formalRequests=0 | 0 | review-service-android.log |
| ServiceHost(PlayerProbe非编辑器工厂) | 两类能力工厂缺失确认 | 0 | review-service-player.log |
| KVContractTests | 42/42 | 0 | — |
| KVSyncTests | 86/86 | 0 | — |
| KVSyncCoordinatorTests | 29/29 | 0 | — |
| KVSyncCoordinatorReviewTests | 通过 | 0 | — |
| KVStage3CTests --offline | 首跑7/8(L7失败)→ 单独复跑8/8 | 1→0 | review-3c-firstfail-20260924.log(首败证据已按P3-1规程保存)+review-3c-rerun |
| KVLoginContextTests(4B1) | 23组/278断言 | 0 | — |
| KVLiveTests仅build | 0错误 | 0 | — |
| Unity CLI Loop compile | Success=true/0错误 | 0 | review-unity-compile.log |
| Unity B2-20完整事务 | success=true,31真实模块,双epoch,83断言,auth=2/gets=2/borrowed=1(401)/forbidden=0/eventPublishes=0/eventSubscriptions=0/sameObjects=true/restored=true/fullB220=true | 0 | review-unity-b220.json |
(Unity Editor隔夜未运行,本审查按操作入口文档以2022.3.62f2c1启动后复跑,get-version确认DataPath正确。)
B2-01~B2-22逐条裁决
依据交付矩阵§3–§5、边界证据JSON与本复跑:B2-01~B2-20全部通过(关键项:B2-07同对象A→B整组空态由19局部用例+B2-20同对象断言证实;B2-11拒写门经guard代码抽查——PlayFabMgr全部入口前置Reject(Compare/Update/Lifecycle×4/PrefsSave)且PrefsSave在PlayerPrefs.Save()之前;B2-15/16/17经B2-20的forbidden=0与QuitAct代码抽查——:37同步撤销先于任何await、:54Hub后有界观察;B2-18经cleanup-failure三进程+OriginalError保留;B2-19经4B1 23组复跑)。B2-21通过(回归最终全过;两个偶发失败事实与处理见下)。B2-22由本报告完成独立实施复核部分,关闭裁决归主会话。
已知事项裁决(提示词要求逐项)
- KVSync偶发85/86(StorageError)+本次新增:3C L7偶发7/8(InvalidOperationException)。两项均为:连跑链中首跑失败、单独复跑全过、失败套件的Program与各自验收版本字节一致(本审查重算:KVSyncTests
217FCDC2…、KVStage3CTests66C41B8B…=3C修复终版)——非4B2引入,属并发重组用例在本机的时序敏感(负载相关)。裁决:不阻塞4B2验收;偶发调查项从一项扩为两项(3A StorageError+3C L7:965附近),建议单独立项在连跑负载下复现并定位;本审查已按规程保存首败完整日志与堆栈,不以复跑成功覆盖。 - 旧NetworkTransport仅构建不运行:接受。其依赖转发正式服的代理,评审启动代理即越权;交付如实标注"未覆盖",不冒充。
- ServiceHost的PF公共路径在真实API前故意失败:接受——受控范围定义如此,不称真实渠道端到端通过;诚实边界。
- 非Android DTO兼容为未触达旧分支的测试构建:接受,已在证据中如实限定。
其他观察(P3)
- P3-1:离线断言计数1715(本复跑)vs 1713(交付)——交付hash 221/221一致排除代码漂移,属并发组合断言计数波动(4B1先例273+5=278 vs 279同类);记录不改结论。
- P3-2:Unity验证依赖Editor运行态——运维注意项(隔夜关闭后需先启动2022.3.62f2c1;本审查已验证启动流程可靠)。
- P3-3:
UserService.KVLoad.cs的RejectSaveBackend把非法后端值同时归入BackendUnsupported分支逻辑清晰,但建议实施记录注明"kv→BackendNotEnabled、其他→BackendUnsupported"的映射表已固化,供4B3接线方查阅。
边界重申
4B2通过=受控加载链具备与验证完成;LoadedForValidation不授玩法/Done/IsLogin;正式启用硬门=P2-α(真实存量档兼容/迁移专项+独立评审+用户产品确认)+4B3读写路由+4C消费+tickets有界历史+4D场景验收。本报告不授权4B3、不宣布4B2关闭(主会话核对hash、逐条裁决后关闭)、不构成对28→31模块以外任何未验内容的追认。