# M2 CP2B-T 完整审查主会话裁决与实施白名单 日期:2026-09-29。本裁决在任何 CP2B-T 生产代码修改之前形成,覆盖[原五项及第 6—8 项补审](M2-CP2B-T独立方案审查.md),取代[首轮待补审裁决](M2-CP2B-T首轮独立报告主会话裁决与补审边界-2026-09-29.md)。 ## 受审完整性 [七项基线](M2-CP2B-T受审基线.json)重新核字节数和 SHA256,7/7 一致;清单 SHA256 `3DF008B9474D730C82CACA65FAE0306CC18B13DF6454C0ED0694A7273A368842`。补审报告 SHA256 `922F5A438AE92D5869868F88FCB5274D584782DC0C50FC047C2840A489923251`,其第 6—8 项已真正落盘。报告开头“无 P1/P2”是首轮旧文字;以文末**新增一项 P2**的更新总裁决为准。 ## 逐项裁决 | 项 | 主会话裁决 | |---|---| | 1 同一租约、Apply 后发布 | 接受。正式业务只借同一 Context 的账号租约与 Cookie;验证租约保持两精确路由;`BindKVForGame` 时业务仍未就绪,GameLoaded 加 CP3A 三原实例交接且原 handle 当前后才发布。 | | 2 路由及专用传输 | 接受规范相对路径和 `__kv_validation/*`、`account/Login`、`playerdata/*` 隔离。客户端路由仅证明拼接形式,不证明线上存在或响应语义。 | | 3 401、退出、旧响应 | 接受先同步禁用普通发送、版本失效和身份/handle 撤销,再异步排水关闭;`UserService.cs` 旧 PF 未授权事件在正式 KV 被忽略,专用 `KVUnauthorized` 必须接入 `UserService.KVLoad.cs`,不得通过旧 PF 自动重登。 | | 4 独立验收 | 接受只用合成 handler 和 Unity CLI Loop Editor 编译验运输层;真实 Player、线上业务路由、公开身份、SignalR 真连接另验。 | | 5 白名单与清账 | 接受三个生产文件和必要合成测试文件;新增入口必须有直接消费者。P3 Cookie 日志不采纳(避免运行期噪声),HashSet 仅实现选项,验证租约拒普通路由独立断言采纳。 | | 6 模式、路径、超时 | 正式/验证模式须在 capability 创建时固定,租约不能在运行中切换。**正式租约 15 秒超时为实施条件**,超时返回空/受控错误,不撤销身份。补审 P2 路径核查已在编码前完成,见下节。 | | 7 发布后调用者 | 本批只能称“普通请求运输可用”。`UserService.IsLogin` 在正式 KV 仍为 false,`ApiPlayerId` 仍为空;`PFLoginAct` 正式 KV 路径在登录页返回、不订阅 RT 登录事件,`LoginStage` 阻止 FishingStage。保持这些闸;不得宣称首场景业务可用。 | | 8 Cookie、RT、Close、线程 | 现有 `RTService.Connect` 读取 Cookie/SessionVersion,SessionChanged 同步增连接版本并取消连接;正式 KV 不自动调用 WaitForAPISvrLogin。重复 Close 使用同一租约幂等任务,关闭失败也不得重新开放。401 分支须先使管理器失效并屏蔽旧结果;身份/Coordinator 撤销遵守原 Unity 主线程调用合同,若响应续接不在主线程,须调度撤销而不能直接操作 Unity 服务。此项纳入合成竞态及 Unity 编译核查。 | ## P2 路径核查结果 对 `Client/Assets/Scripts` 中 `GetStringAsync`、`CustomServerPost`、`Account/Event/Club/Bomb/Duel/CommonData/Friend/EventPartnerRequest` 的引用作静态扫描,共 108 个文本命中(含接口/实现/其他 HttpClient)。实际 `ICustomServerMgr` 调用的字面路径均不含 `?` 或 `%`。间接来源逐一核:`MailUrls` 是 `mail/fetch`、`mail/send`、`mail/updateState` 常量;EventPartner 与 UI/PartnerStatue 是固定 `detail/invite/refuse/accept/build/automatch/*`;`AggIAPService.IAPPost` 调用参数是固定 `csconfirm/receive/unreceive/receiveorders`;AntiCheat 的调用者传固定 `anti-cheat/CheckBan` 等路径。未发现现有合法调用依赖查询串;报告中“`mail/fetch` 可能含查询参数”是未证实假设。当前受审方案拒 `?` 可实施,若后续引入新动态查询路由须另审,不能静默放宽。 ## 最终实施许可与边界 **批准 CP2B-T 运输子批编码。** 生产仅可修改 `Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs`、`Client/Assets/Scripts/Core/CustomServerMgr.cs`、`Client/Assets/Scripts/Services/UserService.KVLoad.cs`;测试仅限 `CodexOutput/upserver/KVGameLoadTests` 的必要合成用例和固定 Unity CLI Loop Editor 验证入口。先补测试/合成断言,再实施同租约转发、正式模式 15 秒超时、启用时序、Cookie/版本/401 与同步失效。批内连续实施和检查点日志,批末封存 hash 与一次独立实施复核;发现必须扩白名单时先针对性补审。 不改本机服务器、`LoginStage`、`FishingStage`、`PFLoginAct`、`UserService.cs`、公开身份、旧 PF 业务语义;不发正式 101/102 请求,不用 UnitySkills、不打包。正式地址固定 `http://s101.local:18080/`。保留现有工作树改动,最终清理闲置实现与开发期门控按总清账清单执行。