feat(upserver): 保存M2客户端KV迁移至本人统计写检查点

保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。
保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。

验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。
包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
This commit is contained in:
Liubing\LB
2026-09-30 19:19:05 +08:00
parent 1c0cdf7a99
commit 6813da149a
511 changed files with 151858 additions and 2376 deletions

View File

@@ -0,0 +1,17 @@
# M2 CP2A Player 编译阻断补审方案(待独立审查)
日期:2026-09-29。此文只为 CP2A 的真实 Player 目标零错误验收补齐既有条件编译缺陷;它**尚未获独立审查与主会话编码裁决**。原 CP2A 12 文件白名单不含 `FishingChallengeManager.cs`,因此目前不修改该生产文件,也不把合成 PlayerProbe 或 Editor 编译当成 Player 验收。
## 已核事实与最小变化
`Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs` 的 `ResetForKVLoad()` 约第72行在所有目标执行连锁赋零:`...=PreScore=_cheatingScore=0`;`_cheatingScore` 字段约第642行仅处于 `#if UNITY_EDITOR`。故非 Editor 编译时该引用没有声明。这是既有源码问题,非本轮 CP2A 接线新增。现有 Unity CLI Loop Editor 编译 Success=true、0错误,不能证明 Player 目标。
建议只允许该文件一处等价拆分:所有目标继续将 `PrefabName` 与原数值字段清零;把 `_cheatingScore=0` 单独置于 `#if UNITY_EDITOR` 内。不移动字段、不在 Player 新增闲置字段、不改变 `GetQualityScoreWithExtra` 的既有条件分支,也不触碰玩法评分、存档格式或其他模块。若独立审查发现还有其他 Player 编译错误,逐项核来源,超出本一文件一处边界则另补审,不顺手修复。
## 验收与停手门
1. 原 ZCode 对此单文件补充方案、字段条件编译、Reset 语义和文件白名单作独立完整审查;主会话核受审 hash 后逐条裁决,才可编码。
2. 编码后以 Unity CLI Loop 验 Editor 编译、以**不打包的真实 Player 脚本编译手段**验非 Editor 目标0错误;若 CLI Loop 无该能力,保留 Player 未验,不假称完成,也不自行打包。`SERVICE_HOST`/`PlayerProbe` 只能是补充合成证据。
3. 复跑 CP2A 89 组合成加载、ServiceHost、原31模块相关回归及 `git diff --check`;该文件变化仅限受审拆分。不得进入 Play、请求正式101/102、打包或扩大账号名单。
此阻断不改变 CP2A 设计审查已批准的登录/交接边界。CP2A 在 Player 编译及批末独立实施复核前保持实施中;CP2B 首场景与最终闲置实现清理仍待后续。