Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-合批原ZCode一次性正式前审提示词-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

44 lines
5.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.
# 给原 ZCode:M2 合批一次性正式前审
请对本包做**完整、hash门控的正式方案前审**,直接给出是否允许在精确边界内连续编码的裁决。此前两次工作稿复核已结束;本次不要再只出“事实抽验/方向正确、不构成前审”的预审报告。开发侧未修改本批生产/测试代码,等待本次正式裁决。
## 先核基线
- 工作区 `C:\projects\ft`,只审客户端,不读不改任何本机/远程服务器代码。
- 基线:`CodexOutput/upserver/B3BatchMigration/M2/M2-合批正式受审基线.json`。
- manifest SHA256:`DBC965EDBF48FADA4C1508F2662562F4FD72C01711D8E2FE2022AC4956896EF3`。
- 2165项长度/SHA256;另12个expectedAbsent(拟新增源码/测试及Unity.meta),必须仍不存在。
- 候选白名单仅110个现存文件和12个拟新增文件。其它Scripts均为只读回归快照,**不因列入基线就授权修改**。2165项不是2165项运行覆盖。
- manifest不含自身、此提示词及滚动入口/日志,避免自引用。发现漂移先写出路径和范围,不把无关日志更新当源码漂移。
## 阅读顺序
1. 项目根`AGENTS.md`、用户固定要求:完整评审后编码;一个编码端;批内持续实施、减少审核次数;KV替代PF玩家存储,新ID来自认证PlayerId;保留PF/AGG;正式地址固定;Unity仅CLI Loop,不打包。
2. `M2-合批修订复核裁决与正式前审边界-2026-09-29.md`。特别检查P3a:当前IUserService.CustomId确为getter-only,先前报告称已有setter与源码不符;接口setter修订仍有必要。关闭API复用原名,P3c已入集中问题单。
3. `M2-合批正式实施方案-待完整审查-2026-09-29.md`,逐节完整审,不只检查旧预审意见是否复制。
4. `M2-合批正式候选白名单.json`、`M2-合批存档调用实施台账.json`、`M2-合批动态配置投影.json`。
5. `M2-客户端致服务端线上合同集中问题单-2026-09-29.md`,以及旧双提供方约束和最终门控清理清单。旧DP1独立实施已暂停,不能把本包缩回DP1另开小轮。
## 必须一次审完的风险
- 独立KVUserService是否真正摆脱旧PF类和SDK类型;IUserService/CustomId/第31接收器/生命周期/SmallGameData DI/PFLoginAct/QuitAct完整性;成功Descriptor和身份事件发布时序;关闭失效/旧epoch/双登单发。
- 共用存档契约是否必要且足够简单,是否保留KV票据与PF原路线;固定store一次绑定、40秒调度、异步前后有效性、失败与缺键区分、remoteStore=false和即时消费的确认语义。禁止新的Core→Services依赖;现存KVMgr物理位置仍是明确待办。
- 224项台账的规则是否适用,PF内部/AGG/受控验证不能批量误改;台账并非运行证明。检查首场景Init、直接和条件订阅、泛型活动仓库、ItemAddedEvent、真实奖励/消耗回调;110文件上限能否覆盖实际调用者而不漏接。
- 本地配置直接LoginDays匹配0的准确含义:不能因此删除活动或省掉Init;不能把本地投影说成线上配置/101、102实际运行。
- Survey/邀请奖励的主档及连带存档、邮件批量HasRead/HasReward缺陷、个人邮件膨胀差异、提前ShowData、重复点击、Unknown/部分提交/崩溃。方案明确不承诺跨系统事务:请直接裁决原协议迁移可以实施到什么范围,若某动作不能安全放开,列具体原因和必要设计,**一次汇总**;不要重新问玩家数据应存哪。
- KV等级榜聚合/他人资料/原PF好友列表/匹配是真实跨账号或服务能力依赖;现有普通游戏服API按旧逻辑/新ID继续。客户端可编码范围、完整运行放行、最终通关三者必须区分,不能因外部能力缺少把全部客户端工作无限挂起,也不能伪造路由和空成功。
- formal ServiceHost必须改Program/Stubs/csproj用真实新服务;PF/AGG/kv-loop签名回归;真实Player/SignalR/正式账号未验如实标未验,不要求违规绕过CLI Loop的Restricted限制。
- 开发期临时冻结/跳过最终全部销账;保存原PF功能;命名延后;不读/改服务器,不打包。
## 输出
将报告写至同目录 `M2-合批正式独立方案审查-2026-09-29.md`,包括:
1. manifest核验总数、缺失/漂移及expectedAbsent;受审manifest hash。
2. PASS/有条件PASS/BLOCK及理由。区分阻止本批编码的问题、仅阻止相关动作/运行放行的依赖、最终通关未验项。
3. 一次汇总P1/P2/P3;每项具体文件/调用/故障、必要修正。不要拆成逐模块审核请求。
4. 明确批准/不批准的文件与行为范围,若收窄说明其仍形成的完整可实施链;不要笼统只说“方向正确”。
5. 获批后批内开发、修常规测试/编译失败不再送审;最终一次实施复核。只有真正架构/协议/文件边界变化才补充处理。
审核侧只读源码,可写此报告;不代替开发侧改代码,不请求正式101/102,不进入Play或打包。不需要给用户再次发ID/存储位置的问题。