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,94 @@
# M2新主会话接手卡(2026-09-29)
> **2026-09-30 C2d 当前状态**:已按用户“审核完毕,继续”完成本轮纯平移核减及两个旧验证宿主的必要注入;当前以《M2-纯平移主会话裁决与C2d实施记录-2026-09-30.md》和《M2-合批-C2d检查点与交付hash.json》为准。下方“尚未恢复”“等待本轮差异报告”等是历史状态,不再阻断本批。HomePanel与原基线一致;全迁移只做必要存储/身份接线,额外业务修正和重构等整体移植后另行授权。debugconfig的EventApiURL已按用户要求恢复为`http://s101.local:18080/`,其他字段未变。M2尚未全链通关,真实首场景、外部能力及最终冻结清理继续列为未完成。
> **2026-09-30 最新用户裁决:整个迁移流程所有阶段只做平移,不夹带原业务逻辑修复或流程强化。** 原调用顺序、同步/异步方式、返回与异常处理、奖励/扣费及UI流程均按迁移前逻辑保留。此前新增确认等待、防重入及旧缺陷修复须整批核减;当前尚未恢复。唯一约束与核减来源见《M2-纯平移范围纠偏与既有改动核减清单-2026-09-30.md》。覆盖此前扩展提议,旧hash保留追溯;后续改进另行决定。
> **2026-09-30 补单方案最新修订:保留原同步业务处理、后台异步存档,撤回 HomePanel 增加 await 的提议,HomePanel 零修改。** 白名单增量收缩为两个离线 KVFishing 验证宿主;与补单沿用原存档时序的边界合并同一次差异审查。见《M2-C2c补单保留原异步存档流程修订-2026-09-30.md》。旧“三文件/补单确认后继续”叙述仅为历史;本次未改生产代码,未把该修订扩展到其他奖励或即时消耗链。
> **2026-09-30 用户硬约束:迁移必须保留原主要业务逻辑和工作流程。** 存储提供方与身份替换不能顺带改变奖励数量、扣费次数、订单/补单语义、活动触发条件、业务事件先后及登录退出流程。已审保存确认等待和旧缺陷修复必须逐项记录前后差异、验证连带影响;不把它们当任意改业务的许可。已改代码也须对照迁移前客户端基线,不能仅凭编译或合成用例通过称无回归。任何开发性冻结/忽略均须最终恢复或清理;不能用跳过功能或生产空值兜底隐藏失败。此约束与原三文件范围差异一起供审查侧核对,原受审方案和 hash 不重写。
> **最新 C2c:连续开发已推进至 198/202 业务共用存档 + 2 个即时消耗等待链;没有逐模块送审。** 另 3 项已有固定 KV 提示路线,1 项无调用者待清理。奖励动作收集、Survey/邀请/邮件/商店主链/签到、Chat 生命周期已编码;尚不等于全部奖励与真实场景通关。ServiceHost 两条件各 20 组/262 断言,CLI Loop 0 错/272 警告,真实模块 31 个/83 断言与纯模块 28 断言、旧装备 9 组/28 断言通过。**旧消耗和旧奖励验证实测失败,原因是白名单外隔离宿主未注入新 store;另有 HomePanel 补单 await 范围缺口。** 已集中成一份三文件最小差异方案;只这些越界修复待裁决,原批准范围无需重审。累计 110 项交付,原基线其余 2067 项不变,组合 2177 项全核通过,hash `8AA47B90E292CF39A0ED7D5304B57516AFE3B0378A2B96A27E494FA9A1202AB9`。详情见 M2-合批-C2c实施记录-2026-09-29.md、M2-合批-C2c集中边界差异与后续连续开发方案-2026-09-29.md。双闸保留、生产 runtimeVerified 全 false;服务器未读改、未 Play/正式请求/付费/打包。检查点通过后直接推进,不再要求用户逐小段“继续”。以下 C2b 及以前均为历史。
> **最新:C2b已实施,继续同批C2开发,无需等待审核。** 新迁42处,累计64/202业务存档调用;活动代币拒写不改余额,活动JSON坏档不再视为空档,FishingEventData主体及分部已接固定store。剩余138业务+2即时消耗、奖励动作/实际UI、Chat/RT及真实首场景。宿主两条件17组235断言通过,CLI Loop Editor0错272警告,正式请求0。累计47项交付hash `8F027C0677BE42099CFA7EA3ED53D86497DF55C9A7627C29006526CE7B7C0729`,原基线其余2130项不变;详见M2-合批-C2b实施记录-2026-09-29.md。全生产runtimeVerified仍false、双闸保留、M2未通关;未读改服务器、未Play/打包。以下C2a及此前状态为历史。
> **最新:C2a已实施,工作仍在开发侧,直接继续同批C2。** 共用KV/PF固定会话存档、资料/40秒调度、22项业务调用、首场景初始化后的登录时间保存已编码;跨日异常会阻止推进时间。ServiceHost两条件各16组215断言、加载90组2008断言通过,CLI Loop Editor编译0错。累计33项交付hash `7DF87736B6204DFD1689606BF40514E9299FB86F8D7ED5B13B3572537370EFBE`,原基线其它2144项不变;详见 `M2-合批-C2a实施记录-2026-09-29.md` 与 `M2-合批-C2调用迁移进度.json`。仍待180项业务调用+2项即时消耗、奖励/Chat/RT及真实首场景;两阶段闸保留,全部业务runtimeVerified仍false。未Play/正式请求/打包,不读改服务器,不新增送审。以下C1及等待审查叙述为历史。
> **最新:已获批并实施C1,直接继续C2**。正式报告 `M2-合批正式独立方案审查-2026-09-29.md` 有条件PASS,报告hash `BB02441CFFE72AF18CF3B0D78F8E581FC39549C3F77E45257B5ED16CADCF2937`;主会话开工前核2165/2165并[逐项裁决](M2-合批正式审查主会话裁决与实施记录-2026-09-29.md)。新增KVUserService及两窄契约,旧PF formal代码已移出;LoginStage/PFLoginAct/QuitAct/模块31/成功Descriptor/身份三态已接。当前[20项检查点hash](M2-合批-C1检查点与交付hash.json)覆盖本轮12既有代码、7新增源码/测试/meta及1清理文档变动,原基线其余2152项不变;不要把批准实施当未审漂移。加载90组/2008断言、ServiceHost两条件各12组/147断言、CLI Loop Editor0错269警告通过,未Play/正式请求/打包。继续同批C2共用存档、调用迁移、首场景与奖励,无需再送C1审查。两阶段闸及PFLoginAct.OnDestroy暂时撤销行为仍须在C3正常交接时统一处理;LastLoginTime写入点和真实Chat/RT回归尚待C2。下面“等待正式前审”均为历史。
> **最新接手动作(合批正式前审包已备)**:先读[修订复核裁决](M2-合批修订复核裁决与正式前审边界-2026-09-29.md)、[正式实施方案](M2-合批正式实施方案-待完整审查-2026-09-29.md)及[一次性正式前审提示词](M2-合批原ZCode一次性正式前审提示词-2026-09-29.md)。2165项基线、110现存文件+12新增候选、224调用台账和70组活动配置投影已备。下一步查 `M2-合批正式独立方案审查-2026-09-29.md`,存在则核受审hash再逐条裁决;未存在则保持待正式前审,不改代码。不要再把前两份明确“非正式前审”的报告当许可,也不要再拆DP1或小项预审。当前CustomId接口只有getter,复核P3a错误已反证;工作稿原字节保留。此条覆盖下方历史。
> **最新检查点**:合批工作稿独立预审已经落盘,主会话已[核证并逐项裁决](M2-合批预审主会话裁决-2026-09-29.md)。旧 DP1 基线18/18一致;合批预审明确无正式受审hash,不可当编码许可。身份来源与发布、窄契约、测试迁移、短ID/Survey规则和地区缺失已补[工作稿](M2-合批实施方案工作稿-2026-09-29.md);首场景动态写入及奖励动作仍在开发侧补全,完成后同一大批一次正式前审。KV 替代 PF 玩家数据读写已定,不再反复询问;不恢复DP1单独实施轮。
## 最新架构裁决:保留 PlayFab,新增独立 KV 实现并用开关选择
- **最新身份纠正**:KV 模式直接使用认证会话的新 `PlayerId`(当前 `PlayerKVAccountDescriptor.PlayerId`);旧 PlayFab ID 和 `EntityKey` 只属于原 PF 模式,不再询问或设计新旧 ID 映射。客户端中 `UserId`、Survey 十六进制计算、榜单 SDK 等是待迁移的旧代码引用,按[当前合批工作稿](M2-合批实施方案工作稿-2026-09-29.md)处理。服务端代码不由客户端 Agent 读取或修改。
- **最新用户纠正覆盖此前删除要求**:必须保留 `PlayFabUserService`、`PlayFabMgr` 和原 PlayFab SDK 路线;另写独立 KV 用户服务和 KV 存档路径,由一个启动开关选择。当前 `PlayFabUserService` partial 内的 KV 接线只是过渡,最终应从旧类抽离 KV 职责,而非删除旧类。接手后先读[双提供方切换与独立 KV 实现约束](M2-双提供方用户服务切换与KV独立实现约束-2026-09-29.md),按其中的共用契约、DI、31 模块、AGG 和双模式验收要求拟完整方案。CP2B-T 既有白名单不因该裁决自动扩展;编码前仍需完整评审和逐项裁决。以下旧检查点保持历史原文,以最新日志/总进度判当前实施状态。
- **项目结束硬门槛**:上述约束文件末尾的“项目结束前必须逐项确认的边界”目前全部未验收。尤其要核实 PlayFab 模式仍走 `PlayFabMgr → PlayFabClientAPI`,KV 模式走独立用户服务与原 KV handle,启动开关对所有入口一致且两边不会串会话/串档;凭双模式真实证据与最终裁决逐项销账。
- **全局简洁性规则**:先读项目根目录的 [`AGENTS.md`](../../../../AGENTS.md)。新增抽象必须有具体调用者和不可省职责;满足功能与必要安全边界后,优先复用或最小拆分现有结构,避免重复开关、状态、适配层和为假设扩展写复杂逻辑。M2 最终验收清单已增加抽象简洁性销账项。
## 最新 CP2A-C9 实施中检查点(覆盖下方历史)
- CP2A 已按[12文件白名单裁决](M2-CP2A独立方案审查主会话裁决与实施边界-2026-09-29.md)接入正式启动分流、101/102现存档门、原 handle 内部交接、登录阶段双闸及注销/退出撤销。合成加载89组1962断言0失败、ServiceHost 9组86断言0失败,Unity CLI Loop Editor编译0错误/269警告;详见[开发日志](../../开发日志.md)与[当前自验报告](M2-CP2A实施自验与待复核边界-2026-09-29.md)。共享内层 handler、关闭故障及未验证 Sockets 的红绿证据保留。
- **未关闭 CP2A**:真实 Player 目标编译及原ZCode批末独立实施复核尚未完成。既有 `FishingChallengeManager.cs` 的 `_cheatingScore` 在非Editor分支被引用而字段只在Editor声明,修复不在CP2A白名单,须独立补审;不能用合成 PlayerProbe 冒充真实 Player 通过。未Play、未访问正式101/102、未打包。CP2B及最终闲置实现清理仍待后续。
## 最新 CP2A-C0 裁决检查点(覆盖下方历史)
- 原ZCode [CP2A独立方案审查](M2-CP2A独立方案审查.md)已通过;主会话37/37受审hash一致并[逐条裁决](M2-CP2A独立方案审查主会话裁决与实施边界-2026-09-29.md)。报告hash `47C412B6F8F29BB09979A5C95EAE31CFBA57DE0810C8FC4BAC6D9ACB9F36D521`。四P3中不采纳不稳定版本令牌建议,复用现有生命周期并排除条件新文件;仅批准12文件上限的CP2A生产边界。
- CP2A尚未编码:仅非AGG、101/102现存KV档正式登录/原handle交接,在FishingStage前停住;无公开IsAuthorized/Mail/IAP/业务API,不操作正式账号。下一步先合成红测,再按白名单实施,每检查点更新日志;CP2B、CP3–CP5和最终闲置实现清理仍待后续。
- 现有工作树保留;固定 `http://s101.local:18080/`,Unity仅CLI Loop,不用UnitySkills,暂不打包。
## 最新 CP2-D2 受审检查点(覆盖下方历史)
- 用户确认首批**仅101、102且已有KV档**;CP2首段只验**正式登录与原handle交接,并阻止跳入FishingStage**。已形成[CP2A完整候选方案](M2-CP2A正式登录与原句柄交接完整方案-待独立审查.md)及[原ZCode提示词](M2-CP2A原ZCode独立方案审查提示词.md)。37项[受审基线](M2-CP2A受审基线.json)重新核算37/37一致,清单hash `B36C685EB9E9571DEFA383395EAD61CB86143CB9762FAE4FF208CF49F44A411A`。