Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-修订1独立审查主会话裁决与新增阻断-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

24 lines
3.8 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修订1独立审查:主会话裁决与新增阻断
日期:2026-09-29。受审报告:`M2-先移植后优化独立方案审查-修订1.md`,SHA256 `5D293D41D26A23859AFEC85674B57F21BBF90D6FE8FEE445E954A1AF21BFE8A0`。主会话独立复算15项受审文件长度与SHA256,**15/15一致**;受审方案hash `64CB30F2C0613BB59E12F5C00BF0A64230FEE5047715488FA02E87C1CE92C219`。报告及原受审材料保持原样。本裁决不批准生产代码。
## 逐项裁决
| 报告项 | 主会话裁决 |
|---|---|
| 总体路线通过 | 接受“先移植、后优化”,Guard是9月28日迁移新增而非原PF语义;B02四入口等价关闭仍有效。总体路线通过不等于首批编码批准。 |
| CP1–CP2有条件通过 | 接受“有条件”的限定;**条件尚未满足,暂不编码**。需补五项具体合同/白名单,且下述正式启动阻断未被报告覆盖;因此不采纳“约30–50行即可接正式玩法”的工作量推断。 |
| P2-1五项 | 全部接受为编码前置:正式入口签名、Guard释放点、原handle出口、Player构建31模块绑定、非Editor正式工厂与配置来源。每项须有文件/调用顺序/失败路径/验收。 |
| P3-1 Guard引用映射 | 接受,作为迁移期不改Guard的范围核对及CP5后续评估输入;不因表格本身扩大CP1代码白名单。 |
| P3-2 PF缓冲/触发差异 | 接受,每个业务域记录旧PF与KV的真实触发差异,CP4停用组件前逐项销账。 |
| P3-3 Player编译旧错误 | 限定接受“历史错误需单列来源”的事实;**不接受把有编译错误的Player构建记为通过**。CP1离线/Editor可明确未验Player;正式入口交付前仍须解决或隔离该错误并获得0错误构建证据,不能用白名单冒充可运行。 |
## 源码新增阻断:审查报告未覆盖的正式启动链
1. `SubBoostrap.cs:91`无条件`AddComponent<PlayFabMgr>()`,其`Awake`在无Guard时立即建立PF缓冲和40秒循环。`UserService.KVLoad.cs:27–32`的受控协调器配置却要求未唤醒的PlayFabMgr、`HasLiveInstanceForKVLoad==false`、`CustomServerMgr.IsFreshForKVLoad`。普通游戏启动后这些条件不成立;只在`LoadAsync`末尾释放Guard不能使正式路径可达。需要先明确按backend分流的组件创建/未启动证明,不许静默停用PF默认路径。
2. `UserService.KVLoad.cs:17–25`把精确`SaveBackend=kv`拒为`BackendNotEnabled`;`UserService.cs:189–203`普通`LoginCore`先走PF登录,`IsLogin`与`IsAuthorized`也按PF状态计算。`AggUserService.cs:68–75`在渠道SDK登录前同样先拒KV。正式入口必须设计认证、正常Done/授权状态与PF回退边界;不是协调器加模式参数即可完成。
3. `CustomServerMgr.cs:49–73,126–129`当前KV网络借用只允许验证,普通API请求在`kvOnly`抛错;`PlayerKVLoginContext.cs:398–399`更只准两条`__kv_validation`路由。正式KV游戏需要可用且会话隔离的业务API路由。不能把验证租约改名当正式传输,也不能恢复旧Cookie容器的无排水替换缺陷。
4. `PlayerKVGameplayBindings.cs:1`整文件仅在`UNITY_EDITOR && !SERVICE_HOST`编译;`LoginStage`与正常服务注册仍按旧路径。移除编译门不等于正式对象全部注册且静止,须明确容器时序和缺失时拒绝。
上述是**能否到达正式KV加载的前置条件**,并非CP5架构优化。原ZCode报告判断“模式参数加30–50行可实现”未分析这些路径,不能作为编码授权。先修订完整方案,把P2五项与四类启动前置一起列入精确白名单/验收矩阵,再送原ZCode复审;不重复开发B01/B02,不在未批准范围试写。用户要求完成后的代码干净清晰:不得以测试专用旁路、同名PF转发壳或永远闲置的新组件掩盖这些缺口。