Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-CP3A-Editor直开入口最小补审-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

14 lines
2.2 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:Editor 直开入口最小补审(仅方案,不编码)
日期:2026-09-29。CP3A 原完整方案及主会话裁决仍有效;本补审只处理实施回归发现的 `InternalEditorBoost` 入口。用户禁止访问或修改本机服务器代码,本补审只涉及客户端。
## 新证据
`LoginStageCtx.SetupAsync` 在 Editor 且尚无 PF Title 时调用 `InternalEditorBoost.Boost()`;`FishingStageCtx.SetupAsync` 在 Editor 且未登录时也调用它。这个入口直接运行同一 `SubBoostrap.cs` 内的 `InternalEditorBoost.Init()`,**不经过** `SubBoostrap.RegisterServices` 注册冻结 `PlayerKVRuntimeSelection`。其 `Init()` 注册 Club 单例并创建无句柄 Setting;登录/模块解析时构造 Club。CP3A 已批准的 `ClubService()` 现在要求容器有冻结选择,所以该 Editor 直开路径会失败。旧 M14/B2-20 纯解码验证器也直接 `new ClubService()`,已在测试文件改为显式 `new ClubService(false)` 并通过回归;该测试修正不解决直开入口。
## 最小建议与边界
只在已批准的 `SubBoostrap.cs` 中 `InternalEditorBoost.Init()` 注册服务**之前**,当容器尚无冻结选择时读取已加载的 `IConfig.SaveBackend`:精确 `playfab` 才注册一次 `PlayerKVRuntimeSelection.Capture("playfab", ...)`;`kv`、`kv-loop` 或未知值在此直开入口明确失败,要求走正常 `SubBoostrap.RegisterServices`/已许可 loop 路径。已有冻结选择不覆盖、不热切换。随后 Setting 使用该冻结选择,Club 构造依旧只读容器中的冻结选择;不改 `ClubService` 对缺失选择的失败关闭,也不让正式 KV 缺选时退回 PF。不触及账号、网络、KVMgr、场景、LoginStage、其它服务或 Player 打包。
请原 ZCode 审查该入口证据、对 `SubBoostrap.cs` 单文件此方法的白名单扩展与 PF/正式 KV 失败语义作 PASS 或阻断判断。主会话核报告及裁决前不编码该增量。已批准 CP3A 其余五文件实现和合成回归可保持;CP3A 不关闭,Editor 直开 PF 风险明示。建议验收:冻结 PF 选择注册一次、重复进入不覆盖;`kv`/未知入口 0 PF fallback;旧 B01、CP3A、M14/B2-20 与 Unity CLI Loop Editor 编译继续通过;正式 101/102 请求 0。