保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。 保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。 验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。 包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
25 lines
3.2 KiB
Markdown
25 lines
3.2 KiB
Markdown
# M2 CP3A C11 交付与待终审
|
||
|
||
日期:2026-09-29。CP3A 完整前审及主会话裁决、Editor 直开单点补审及主会话裁决均已落盘。本文件汇总实施,不自行宣布 CP3A 关闭。交付十项代码/验证入口以 [`M2-CP3A-C11交付hash.json`](M2-CP3A-C11交付hash.json) 为准,主会话当次重算 10/10 一致,清单 SHA256 `2E3E1EB14807709E49A58937DC6AD30F015780F252F96027B9EE73AC4038F329`;历史受审清单不回写。
|
||
|
||
## 实际改变
|
||
|
||
1. 正常正式启动依旧冻结 `SaveBackend`、仅准 101/102 已有 KV 档、地址固定 `http://s101.local:18080/`。GameLoaded 后 `PlayFabUserService` 的原 `PlayerKVGameSessionHandle` 在同 epoch 核验后对现有 Setting/Club/Notification 原实例预检并一次绑定;部分失败沿 Coordinator 撤销路径,同进程不重绑。
|
||
2. Setting/Club 在正式 KV 无句柄期间对 `ShowNotice`/`IsOpenClubRed` 失败关闭,不触发 PF;绑定后保持 B01 对缺键、已存在值、Accepted/不确定及陈旧 Owner 的语义。通知保持已初始化原实例,绑定前检查初始化/授权在途,恢复后核固定 Setting。
|
||
3. Editor 直开 `InternalEditorBoost.Init()` 在服务注册前取容器冻结选择;缺选仅精确 `playfab` 时注册一次 PF 选择,已有 PF 沿用,KV 或未知拒绝,Setting 使用同一选择。此补审修复不改变正式 `SubBoostrap.RegisterServices`。
|
||
4. 纯 Editor 模块验证器中两处解码测试使用显式 PF 测试构造,避免无启动容器时误走正式 Club 构造。ServiceHost 因不编译真实 Setting/Club/Notification 增最小编译桩;这些桩**不**作为 CP3A 行为验收证据,真实对象由 Unity CLI Loop 固定用例执行。
|
||
|
||
## 本地验证
|
||
|
||
- Unity CLI Loop Editor `compile`:0 error/269 warning;未 Play、未打包。
|
||
- Unity CLI Loop 真实对象 CP3A 用例:28 断言通过,本地模拟 Get 3 次,正式请求 0;覆盖未绑定拒绝、同 handle 幂等、通知在途预检、部分绑定撤销和跨 epoch 拒绝。
|
||
- 旧 B01 23 断言、固定路由 34、M14 3、31 真实模块两 epoch 83 断言均通过;全局容器未改变。
|
||
- KVGameLoadTests 89 组/1962 断言/0 失败;ServiceHost 非 Android、Android+AGG 各 9 组/86 断言/正式请求 0;本批 `git diff --check` 无空白错误。
|
||
- 静态核 `LoginStage.RequestNextAct` KV 选择仍返回,不进入 `FishingStage`;正式 101/102 未操作。
|
||
|
||
## 明示限制与后续
|
||
|
||
- `InternalEditorBoost` 真实直开场景没有在本轮运行;当前只有源码、Editor 编译及受影响合成回归,故“PF 直开注册一次/重复不覆盖/kv 拒绝”的真实启动验收仍需安全隔离的 Editor 直开证据或审查方确认可凭当前证据限定接受。不得以 B01 用例冒充该路径已运行。
|
||
- 真实 Player 脚本编译此前被 Unity CLI Loop Restricted 在调用前拒绝;CP2A 仍未关闭,CP3A 也不宣称发布可用。CP2B 线上契约、首场景自动依赖、旧 PF 调用迁移、最终闲置实现清理仍待后续;阶段闸保持。
|
||
- 用户裁定 `PlayerKV*` 命名暂时保留,整体移植完成后才重命名;本批无命名变更。工作树改动保留;本机服务器代码不访问或修改,不能代表线上版本。
|