保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。 保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。 验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。 包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
2.2 KiB
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。