Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-CP1独立实施复核主会话裁决与限定关闭-2026-09-29.md
Liubing\LB 6813da149a feat(upserver): 保存M2客户端KV迁移至本人统计写检查点
保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。
保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。

验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。
包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
2026-09-30 19:19:05 +08:00

25 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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、正式写入或付费。