保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。 保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。 验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。 包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
3.5 KiB
M2 CP2A 实施自验与待复核边界
日期:2026-09-29。依据已核37/37受审基线的主会话裁决,仅实施 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 在捕获时失败,Editorkv-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 编译结果:Success=true、ErrorCount=0、WarningCount=269(该次输出未逐条归因);
git diff --check通过。没有 Unity Play、正式账号请求或打包。
未通过与待复核
真实 Player 目标的0错误证据尚未取得。既有 FishingChallengeManager.ResetForKVLoad 在非Editor引用仅Editor声明的 _cheatingScore,修复超出 CP2A 12 文件白名单;已形成单文件补审方案与4项受审基线(清单SHA256 DC912EC9A14D4BAB2C1AC4A6B4CC3F5BD7EAEB7240DAE2D5679A3E2F3CDB76D6),未改代码。旧式 .csproj 的命令行编译探测不是可靠 Player 编译,已中断;不列作通过。批末原 ZCode 独立实施复核尚未落盘,故 CP2A 实施中、未关闭。CP2B、CP3–CP5与最终闲置实现/旧Mgr运行调用清理仍未开始本批实施。
19项源码/测试字节与SHA256清单已本地重核19/19一致,清单 SHA256 733BC3AFD45AA15D06A1A03601829B793012EBA1716BAC860B5AEB98D265BA1B;其中12个生产源码、1个Unity .meta、6个测试宿主文件。另将原37项受审基线逐项重比:26项不变、11项变化且全在获批既有生产白名单,新增源码和 .meta 均为获批项目。该清单标记当前实施中快照,不等于批末封板或独立审查通过。