Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-CP2A实施自验与待复核边界-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

18 lines
3.5 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 CP2A 实施自验与待复核边界
日期:2026-09-29。依据[已核37/37受审基线的主会话裁决](M2-CP2A独立方案审查主会话裁决与实施边界-2026-09-29.md),仅实施 CP2A:非AGG、正式地址 `http://s101.local:18080/`、首批101/102且已有KV档,完成普通登录入口和CP1原句柄内部交接;不进入 `FishingStage`,不公布 `IsLogin`/`IsAuthorized`,不初始化 Mail/IAP 或开放业务路由。现有工作树其他改动未清理/重置。
## 已落源码与合成证据
- Bootstrap 在旧 PF 组件创建前捕获不可变模式,KV 不创建 `PlayFabMgr`;普通 UserService 跳过 PF 登录、MMTest/PF写、YinDun、TapJoy 与第二次 S101 登录。AGG KV 在捕获时失败,Editor `kv-loop` 后置许可仍走旧路径。
- 正式三传输由同一 CookieContainer、各自 HttpClientHandler 创建,禁重定向;先校验三张 handler 图互不共享,再发送一次认证。正式工厂与 Editor 验证工厂分离。请求前只准101/102,Prepare 后核 `newCreate=false`、非空数据、31模块完整 Schema;失败不 Apply/不发布句柄。
- Bindings 同一31模块进入 Player 源码条件分支,登录阶段补 EventShootingRangeData 注册;UserService 以 Coordinator 的 `LoadForGameAsync` 与 `TryGetCurrentGameHandle(epoch)` 获取同一原对象,只建立内部 `KVHandoffReady`。CustomServerMgr 绑定同一 Context 租约且业务路由仍为空;PFLoginAct 不等 API 事件、不启 Mail/IAP、不 Unload;LoginStage 再阻止切入首场景。Logout、销毁、`Application.quitting` 同步撤销,关闭故障维持 registry 屏障。
- `KVGameLoadTests` 最终89组1962断言0失败;`ServiceHost` 非Android及Android+AGG各9组86断言0失败、正式请求0,PlayerProbe仅验证非Editor局部能力表面。新增红绿测试保留新建非空/既有空拒绝、既有完整交接、共享内层handler首次认证前拒绝、GameLoaded后Close失败阻断下一Context、未验证Sockets拒绝。
- [Unity CLI Loop Editor 编译结果](M2-CP2A-Editor编译核验.json):Success=true、ErrorCount=0、WarningCount=269(该次输出未逐条归因);`git diff --check` 通过。没有 Unity Play、正式账号请求或打包。
## 未通过与待复核
真实 Player 目标的0错误证据尚未取得。既有 `FishingChallengeManager.ResetForKVLoad` 在非Editor引用仅Editor声明的 `_cheatingScore`,修复超出 CP2A 12 文件白名单;已形成[单文件补审方案](M2-CP2A-Player编译阻断补审方案-待独立审查.md)与[4项受审基线](M2-CP2A-Player编译阻断受审基线.json)(清单SHA256 `DC912EC9A14D4BAB2C1AC4A6B4CC3F5BD7EAEB7240DAE2D5679A3E2F3CDB76D6`),未改代码。旧式 `.csproj` 的命令行编译探测不是可靠 Player 编译,已中断;不列作通过。批末原 ZCode 独立实施复核尚未落盘,故 CP2A **实施中、未关闭**。CP2B、CP3–CP5与最终闲置实现/旧Mgr运行调用清理仍未开始本批实施。
[19项源码/测试字节与SHA256清单](M2-CP2A-实施自验hash.json)已本地重核19/19一致,清单 SHA256 `733BC3AFD45AA15D06A1A03601829B793012EBA1716BAC860B5AEB98D265BA1B`;其中12个生产源码、1个Unity `.meta`、6个测试宿主文件。另将原37项受审基线逐项重比:[26项不变、11项变化且全在获批既有生产白名单](M2-CP2A-受审基线变化范围核验.json),新增源码和 `.meta` 均为获批项目。该清单标记当前实施中快照,不等于批末封板或独立审查通过。