保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。 保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。 验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。 包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
3.4 KiB
3.4 KiB
M2 CP1独立实施复核:主会话裁决与限定关闭
日期:2026-09-29。原ZCode报告:M2-CP1独立实施复核.md,SHA256 F4871E2BC9DAE51B42D260C939299B5B7E807F737CD2AF8C1F160AD207DFE564。主会话重新核对交付清单 M2-CP1交付hash.json 的长度和SHA256,95/95一致;接手时已有19份Client改动19/19保持原样。原报告、交付清单及源码不改写。
逐项裁决
| 原ZCode报告项 | 主会话裁决 |
|---|---|
| 总裁决通过、无P1/P2 | 接受,CP1限定关闭。所关闭的是合成环境原handle交接和受控加载时序,不是普通客户端正式KV运行。 |
| 原handle来源 | 接受。Context返回已准备的原对象,关闭/撤销/epoch条件复核;没有第二Owner或Cookie出口。 |
| 共用加载主体与验证语义 | 接受。LoadAsync与LoadForGameAsync共用Prepare/Decode/Apply,旧验证成功仍持Guard并返回LoadedForValidation。 |
| Apply/notify→释放Guard→GameLoaded | 接受代码与合成用例证据。Guard最终计数复查后发布;失败不向结果携可用handle。 |
| TryGet/Revoke竞争 | 接受。closeGate同步清引用及增加epoch;外部身份回调在锁外执行,回调后重核。已取得的旧对象由Handle/Slot撤销。 |
| Guard释放后关闭故障 | 限定接受安全合同:成功发布后的关闭失败仍可撤销旧handle,关闭失败被原registry保留并阻止下一轮正常进入;不能把“资源不泄漏”解释成已成功释放所有资源。报告引用的prepare/schema/apply三种隔离清理失败进程是原验证路径,未独立复跑,也未直接覆盖GameLoaded之后关闭故障。这不是CP1关闭阻断,但列入CP2会话接线验收。 |
| 白名单、既有改动 | 接受。本批新增生产改动仅Context、Coordinator;Guard/KVMgr本体不变,19份既有Client改动hash保留。 |
| 合成范围及Unity证据 | 接受限定。CLI Loop报告Editor编译0错误、272警告、Success=null;接口反射探针被Restricted拒绝,不算通过。未验证Player构建、普通启动、正式登录或正式接口。 |
| P3-1:Context断言278/279 | 接受记录数值差。审核者独立复跑23组278断言/0失败,主会话原跑23组279断言/0失败;断言数随现有并发分支变化的归因属合理推断,不声称已定位那一条具体断言。不影响0失败结论。 |
| P3-2:以三接口消费点启动CP2设计 | 接受。既有交付文档已列接口消费关系;CP2需定出真实代码消费点,并在最终交付删除不用的接口。不得把CP1合成测试调用当正式接线。 |
独立复跑与边界
原ZCode实际独立复跑:加载84组1911断言、Context 23组278断言、B02 13组544断言,合计120组2733断言、0失败、各进程退出码0。清理失败隔离进程5/8/8断言仅主会话交付记录,本次审查没有复跑,故不计入上述独立复跑总数。主会话上轮的Editor编译、合成宿主及范围核查证据保持有效;本裁决不重复无必要测试。
CP1可限定关闭;CP2完整设计和独立方案审查仍是编码前置。CP2须覆盖正式启动、单次认证、正式能力工厂、31模块Player绑定、按业务域收窄的网络租约以及账号/历史档政策,并把GameLoaded后关闭失败、原handle撤销和Player目标0错误列入验收。继续固定 http://s101.local:18080/;Unity只用CLI Loop,不用UnitySkills,暂不打包。未操作正式101/102、正式写入或付费。