3.7 KiB
3.7 KiB
阶段4最小真实玩法闭环最小补充独立审查
日期:2026-09-24。审查者:ZCode会话。独立性声明:未参与R1实施与补充方案编写;本轮只读+hash计算+源码比对,仅新增本报告。
受审输入核对
KVGameplayLoopTests/checkpoint2-review-input-hashes.json共81项,逐项重算——全部一致。
结论一:批准M24最小差异
事实独立核实:
LoginStage.StartAsync注册区(:18–70+)确无EventShootingRangeData;其现有注册仅在DataCenter.PlayerData.cs:850–854(活动分支)与FishingEventData.cs:1038–1042(SetEvent7),两者均为"Resolve→缺失才Register→再Resolve"语义且晚于R1登录期全档加载——补充文档事实成立。- 同类缺口排查(本审查全量比对):归一化命名空间后,
PlayerKVGameplayBindings全部Require<>目标(31绑定+Tables)与登录注册表逐一比对——EventShootingRangeData是唯一登录期缺失项(T为泛型占位;cfg.Tables由Bootstrap注册、初验推进到M24才失败即此前全部解析成功的事实佐证)。M28两个实例经eventBase.ThanksGivingPackData/ChainPackWithProgressMigrationData字段获取(Bindings:35),非容器类型,无缺口。 - 补丁评估:
#if UNITY_EDITOR && !SERVICE_HOST+PlayerKVGameplayLoop.Enabled条件+既有InjectionScope区内单例注册——三重限定下旧默认路径零变化;注册的对象与后续SetEvent7"缺失才Register"分支解析到同一单例(对象身份一致);该类为纯数据注册,构造无UI/网络/保存副作用;不改M24业务源码。最小且正确。
结论二:接线仍缺的必要验证(阻止真实闭环的项)
| 编号 | 缺口 | 性质与建议 |
|---|---|---|
| V-1(P2) | 新装备链"同步嵌套票据收集"零通过测试:专用动态合成脚本被CLI Restricted的反射/HttpMessageHandler规则阻止,未执行未通过(文档如实声明)。 | 不能带此空窗进入真实运行。建议改用固定宿主入口模式(同B3A KVSaveRouteValidation先例:KVGameplayLoopSetup增加固定case转接+HotUpdate内UNITY_EDITOR测试方法,编译期固定、无动态反射),把"装备→嵌套写→多票据→水位Flush→全部Confirmed/Superseded停止"的合成用例跑通后再进真实链。 |
| V-2(P2,非代码) | 数据来源未决:101/102现有KV为0键(只读备份已落盘、Set/Delete=0),三个来源选项(PF只读检查/提供KV备份/先接线后补数据)用户未选。 | 已正确阻塞真实运行;PF导入若被选择,须先按文档§3给出"实际key、摘要、前值为空、精确恢复删除集合"再实施。 |
| V-3(P3) | Editor无渠道SDK路径的Agg通知语义应写明:Editor(非AGG)注册的是PlayFabUserService,不存在Agg订阅——OnInitData?.Invoke为空触发是无害且预期的,但R1方案§2.2措辞假定了Agg窗口。 |
检查点日志中明确一句即可,防后续误判"通知丢失"。 |
| V-4(P3) | 身份延迟发布与关闭顺序已接线但未真实运行验证(文档§4如实列出)。 | 随真实闭环验收覆盖;在此之前不声称已验证。 |
未发现新的P1。 已声明未验证项(新装备链、真实登录时序、全部初始化写、原票据、重启恢复)与实际状态一致,无虚报。
边界重申
本次为最小补充审查:不作为R1实施关闭审查;M24补丁落码后应更新检查点日志;真实PlayMode与业务写仍待本补充裁决+V-1测试通过+V-2数据授权后执行;101/102空档备份保留为导入前基线;不迁移PF存档、不改CLI安全级别、不打包。P2-α、4C、tickets、身份、4D/G4启用门保持。