Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-CP3A独立实施复核主会话裁决与限定关闭-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

20 lines
4.0 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 CP3A 独立实施复核主会话裁决与限定关闭
日期:2026-09-29。独立报告:[M2-CP3A独立实施复核](M2-CP3A独立实施复核.md),SHA256 `D415CE132C9CED7196F0E2E6683D027AA60222FE6FFF139F28898B88ABF8924B`。主会话重新核算[CP3A-C11 交付清单](M2-CP3A-C11交付hash.json):**10/10** 文件长度和 SHA256 一致,清单自身 SHA256 `2E3E1EB14807709E49A58937DC6AD30F015780F252F96027B9EE73AC4038F329` 一致。此裁决不回写受审交付物,也不批准新生产代码。
> **后续用户纠偏,仅影响下一批**:用户确认 `kvOnly` 普通请求全拒是开发期临时门;此前“CP2B 必须先取得全部线上合同才可动任何代码”的口径收窄为:可先对[CP2B-T 运输子批](M2-CP2B-T正式KV普通业务请求恢复完整方案-待独立审查.md)做完整评审与裁决,在阶段闸保持、只用合成请求的边界内实施同会话运输恢复;首场景具体业务合同与开启仍待线上依据。这不回溯扩展 CP3A 的关闭范围。
## 逐项裁决
1. **原 handle/epoch/三原实例:接受。** GameLoaded 后对 Setting、Club、Notification 的现有实例预检并一次绑定;同 epoch、部分失败撤销、同进程不重绑与前审边界一致。正式无句柄的两提示键拒绝旧 PF 回退;B01 缺键/既有值/Accepted/不确定/陈旧 Owner 的行为在本批已验证。
2. **通知在途与 Editor 直开补审:接受代码符合已批边界。** `InternalEditorBoost.Init()` 的缺选仅精确 PF 注册、已有 PF 沿用、KV/未知拒绝符合单点补审;真场景直开未运行,只能限定接受实现,不得宣称真实入口已验。
3. **闲置实现:接受本批未发现新增闲置。** CP1 原 handle 三接口与 CP3A 绑定方法均有真实调用;这不等于 CP4/CP5 全仓闲置实现已清理,最终清账仍按[总清单](M2-最终通关前临时门控与忽略路径清理清单-2026-09-29.md)执行。
4. **独立复跑:接受“0 失败”,纠正断言数量归因。** 报告记 KVGameLoadTests 89组/1964断言,交付记 89组/1962断言;主会话在当前工作树连续两次 `dotnet run --no-restore` 均为 **89组/1960断言/0失败,退出码0**。现有 `Program.cs` 无 CP3A 专项组,CP3A 真实对象 28 断言属于 Unity CLI Loop 的独立固定用例,不能将加载组断言差额解释成“CP3A 新增覆盖”或称加载宿主直接覆盖 CP3A 对象接线。独立报告的 B02RouteTests 1组/61断言/0失败作为其复跑陈述保留。上述数字差异不改变当前代码 hash 或 CP3A 专项验证结论,后续报告须按实际运行口径记录。
5. **P3-1 Editor Boost 建议:只收为待评估,不执行所提命令。** 报告建议直接通过 Unity CLI Loop `execute-dynamic-code` 调 `InternalEditorBoost.Boost()`,并称不污染正常容器;源码显示 `Boost()` 直接使用 `GContext.container`、初始化 UI,`LoadConfig()` 还会请求远程配置,并未创建隔离容器。该方法无法证明无污染/无外部访问,不能据此补验收。以后如需真入口验收,先形成隔离、网络及容器恢复方案并完整评审;不绕过 CLI Loop 限制。
## 关闭范围与后续
**接受独立报告的限定通过,CP3A 本批限定关闭。** 关闭范围仅为原句柄到现有 Setting/Club/Notification 的一次绑定、B01 `ShowNotice`/`IsOpenClubRed` 两键及 Editor 直开 PF 冻结选择单点修复;不代表 CP2A 真实 Player 脚本编译、Editor 真场景直开、CP2B 首场景、其余 CP3 调用迁移或整体 M2 完成。`LoginStage` 的 KV 阶段闸继续保持;正式 101/102 未在本次运行。CP2B-T 运输子批可先完整评审后实施,**首场景**仍待可信线上合同及独立全链方案审查/主会话裁决;相邻合同合并成批级前审和批末复核,批内只保留测试与检查点日志,减少审核往返。
正式地址固定 `http://s101.local:18080/`,只用 Unity CLI Loop,不用 UnitySkills,暂不打包。本机服务器代码不访问或修改,工作树保留。