Files
ft/CodexOutput/upserver/B3BatchMigration/执行TodoList.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

43 KiB
Raw Blame History

4B3B/C批量迁移执行 TodoList

2026-09-30 19:12 第六轮裁决落盘:C3d 通过+R2-S 附条件放行(原ZCode):①C3d 交付核证 13/13 hash 一致、代码与第五轮批准逐点吻合(GetPlayerLv 缺省1/GetPlayInfo 占位+SearchFriend/GetPlayLv 保持显式失败),双条件 24组491断言编译 0 错——按批内规则关闭。②对本人统计写独立实施申请(R2-S)裁决附条件允许(替代第四/五轮写入侧挂起,读取侧不变):C1 键合同冻结(LevelB/ContinentCode+LevelB 为本人 KV 键、十进制字符串值,服务端照此对齐);C2 地区缺失仅写全球键(=原 PF 双同名退化净效果);C3 失败一律原日志路径后正常完成、异常不得逃出 async void;C4 ≥1 键接受时 await 一次既有 FlushAsync(全 pending 随行登记为已知差异);C5 不称两键原子;C6 SetLvData/AwaitSetLvData 公式时序零改动、PF/AGG 分支不变;C7 统计写完成≠等级榜完成,PF 统计聚合模式(Last/Max/Sum)登记一行服务端确认。生产仅 LeadboardData.cs,测试含真实类入宿主+C3StatisticsWriteTests 红测先行。③核查文档 §2/§3 立场确认(F1补充生命周期交接挂起到双闸同批、F7 删除须证迁移因果)。主会话核 hash 后即可按此范围开工。

2026-09-30 17:00 C3c 第五轮:可编码范围裁决落盘(原ZCode):用户裁定四项服务端事实挂起等服务器实现。原ZCode审核其余内容后追加第五轮裁决:批准范围性编码许可——唯一生产文件 KVUserService.cs:GetPlayerLv 对齐原默认 1、GetPlayInfo 恢复原占位/同引用/一次事件三段语义并绑定已实测的 SearchFriend 为远端源(code>0 且 info 非空→更新+发布,否则静默=原 PF 失败路径)、SetPlayInfo 替换语义、ClearPlayInfos 原版;GetPlayLv 维持现状(真实等级读取随事实①迁);配套 M2MergedGameplayTests+C3ProfileCacheTests 红测先行。不批准:LeadboardData/FriendService/FriendModel/TileNews/Duel/任何 LevelB·LastLogin 代码/PlayerKVClient 改动——全部挂起等四项事实;双闸维持。批内常规失败自修不送审,越界即停。

2026-09-30 16:52 C3c 第四轮确认完成(原ZCode):对隔离边界修订与复审确认完成审核确认并追加第四轮:§1–§3 确认准确(跨账号实测 8 次 Get 带目标参数均只返本人数据,为隔离裁定提供网络实证;采纳澄清——业务路由的目标 ID 参数如 SearchFriend.PlayFabId 必须保留不得误删);§4 四项裁决:本人统计写客户端形状可预定(LeadboardData 单文件、两键同值、原时序/错误语义)但与榜聚合键对齐后才可定稿,好友字段投影/榜入口/公告/匹配四项待服务端事实。整体未达可编码——剩余四个具体服务端事实(①好友/资料路由字段名与缺键/失败语义 ②前50入口+键对齐 ③公告入口 ④匹配入口),到位后并入 C3c 送完整裁决。零编码、双闸维持。

2026-09-30 16:47 KV 读取隔离最终裁定+重设计审核意见已写入(原ZCode):用户最终裁定 playerdata/Get 只能读本人、不可读他人,与此相关逻辑需重新设计。原ZCode 按指示向C3c 审查报告追加第三轮正式意见:①第二轮"按对方 ID 读 KV"解锁作废,禁止扩展 PlayerKVClient 加目标 ID 或任何跨玩家 KV 读取;②正确方向=服务端侧投影——服务端内部读各好友 KV 后经既有路由按原 PF 字段形状返回(入口不变/返回逻辑不变/值不变/存储迁 KV 全部吻合),客户端零新增跨玩家逻辑;③统计更新走本人 KV 写(不受隔离限制)+服务端聚合读取;④开发侧需按投影形状逐字段对齐原 PF 消费链后重写好友/资料接线方案送完整裁决;⑤服务端待确认维持四类(好友/资料字段投影、前50聚合、公告、匹配);⑥禁止以隔离为由降级/停用好友榜单功能。整体"审核通过后才编码"门槛不变,零编码维持。

2026-09-30 16:35 用户四项产品裁决(原ZCode 记录,供并入 C3c 材料):①服务端入口没有变——只是传入的参数值可能变(新 UserID),返回逻辑不能变;②LevelB 的值也没有变——只是存储地址从 PlayFab 移到 KV(原计算、原更新时点、原统计语义全部保持,客户端不得重算/派生/伪造);③LastLogin 也是如此——值语义不变(最近登录时间),存储从 PlayFab 档案移到 KV;④SearchFriend 失败是服务器的部分,客户端应该按此执行——客户端按既有路由与原消费契约接线,失败语义归服务端域,客户端不补失败测试、不新增失败处理分支。原ZCode 状态更新:未通过清单中 ⑤SearchFriend 失败语义闭合、②③LevelB/LastLogin 投影方式闭合(值不变+存储迁 KV,无客户端重算)、好友族入口闭合(路由已在、参数值换新 ID、返回逻辑不变);剩余唯一事实缺口=等级榜统计更新/前50聚合读取/公告/匹配四条原本走 PlayFab SDK 端点的能力"由哪个现有服务端入口承载"需指认(客户端代码内无对应非 PF 路由可猜,按铁律不猜路由)。待开发侧把四裁决并入 C3c 材料+四条承载入口指认后送完整裁决,通过后才编码。

2026-09-30 16:30 未通过项汇总供用户确认(原ZCode):接受SearchFriend 正式实测增量(8 次正式请求,101/102 自查+互查四场景 HTTP200/code=1,四字段、目标 ID 原样、无 Unknown 字面、无 LevelB/LastLogin;两账号 KV 均无 LevelB/LastLoginTimeUtc/InfiniteBuildingData 键)——SearchFriend"存在 ID 场景"由离线兼容升级为正式实测,但不存在账号/非法 ID/失败语义仍未验、level=1 与真实等级不一致未定论。未通过审核内容全量清单已交用户确认:C3c 七项 SDK 残余(等级榜写/榜聚合/好友字段投影/LastLogin 投影/他人资料远端链含 KVUserService 三方法恢复/公告/匹配)+门槛性未通过(整体通过才编码)+四类待用户决策点(LevelB 投影方式、LastLogin 终选留联调与否、四类服务端入口交谁、SearchFriend 失败语义补测与否)。被否决方案(LevelB 暂存/查询重算/HomePanel await/邮件批量修复)列明确不可再入。

2026-09-30 16:28 C3c 第二轮修正完成(原ZCode):依既有裁决与接口证据复核(用户确认服务器接口未变;主会话撤回"DB/KV 时间重选"提问),原ZCode向C3c 审查报告追加第二轮修正:修正三——登录时间方向的准确状态是"按既有'先存 KV 后联调'阶段方向推进(复用 LastLoginTimeUtc、联调时再定终选),缺的是跨玩家字段投影事实,不是方向再决策"(前节"待用户确定"表述系待选项化错误,引用《先存KV方案》:5/:23/:41 核实);修正四——接口证据分两级:正式实测级(Login/playerdata/Get/Add/Accept/GetFriendsList 路由+四字段,HTTP200)与离线兼容级(SearchFriend 等 C3b 21组380断言、formalRequests=0)均不是缺证据项;真正缺证据的收窄为四类字段/接口事实(好友 LevelB/LastLogin 投影语义含缺键差异、统计更新+前50聚合、公告、匹配)。裁决级别②/③维持不变,不构成整批 PASS。C3c 整体仍未通过、零编码。

2026-09-30 16:25 C3c 裁决复核与报告修正完成(原ZCode):主会话对 C3c 报告逐项裁决接受 R1–R6 并纠正两处表述;用户最新要求"全部审核通过后才可编码、未确定内容先与用户确定"已撤回局部开工许可。原ZCode修正与状态补充已追加至报告:①如实更正本人错误——LastLogin.Value 空值抛 InvalidOperationException 非 NRE(与 P3a 同类的未验证断言,记录在案);②澄清原链跳过条件仅 Profile/Statistics 为空,缺 LastLogin 好友仍入列表、下游表现为异常路径,"缺时间就跳过"=扩大过滤明确禁止;③撤回状态独立核证干净(基线 28/28、C3ProfileCacheTests 不存在、零局部编码)。待确定事项表中"登录时间优先复用服务端 DB 时间"的方向与原 PF 语义吻合为合理候选,按流程待用户确定后并入 C3c 再审。当前状态:C3c 整体未通过、五类 SDK 残余零编码、服务端四问为唯一解锁路径。

2026-09-30 16:35 分模块修改清单已编制(原ZCode):核验全部完成后,将 PlayFab→KV 移植的全部修改按模块整理落盘为分模块清单——当前工作树 111 修改+14 新增文件,分 A–J 十个模块(KV 基础设施/核心管理器/用户服务与身份/登录舞台/31 存档模块 202 项调用/业务服务/UI/活动系统/编辑器测试/其他),每项标注〔平移〕〔原样(含登记未修旧缺陷)〕〔待接线〕三性质;另列"已核减回原样"与"PF SDK 残余待 C3c 四问"两节防误读。

2026-09-30 16:20 C3c 独立差异审查已落盘(原ZCode,按用户铁律从严):按纯平移统一审查入口完成一次性集中审查,报告见M2-C3c剩余SDK接线独立差异审查。28/28 基线 hash 一致(清单 7ACC6338…)。R1 原行为基线 13/13 逐字符核证属实,新发现两处等价陷阱:FriendService:150,153 对无 Statistics 的好友整条跳过(KV 响应缺统计字段会静默清空好友列表)+ friends 项为 JSON 字符串四字段形状。裁决:R2 统计更新=③禁客户端先行改写;R3 好友列表=②(缺 LevelB/LastLogin 合同,反证否决"Level直接映射"与假时间)+榜聚合=③;R4 LastLogin 两候选来源未裁决保持;R5 他人资料形状恢复=①可批(远端源 SearchFriend 待实测)、公告=③、匹配=③。R6 仅批准 KVUserService 三方法原语义恢复(含 GetPlayerLv 默认值 -1→1 与异常类型差异修正),其余文件零编码直至事实到位。文末汇总服务端最小四问(统计更新+聚合入口/好友 LevelB+LastLogin 投影/公告入口/匹配能力)。待主会话核 hash 逐条裁决。

2026-09-30 14:45 审查侧铁律(用户指令,最高优先级):审查时不可以的修改一律不通过——任何会影响正常线上逻辑的改动都是高危,破坏会很恐怖。具体执行口径(对齐用户全局规则与 M2 合批 C2 案例):①逐 hunk 区分"授权改动"与"夹带变更",后者无论动机(更安全/更健壮/更合理/顺手修复)一律打回;②编译通过/合成测试通过不构成行为等价证明,必须对照迁移前基线核原始行为;③奖励、扣费、邮件、订单、支付等直接触碰玩家资产与线上数据的路径从严——宁可误杀送修订,不可放过变更;④异步化(void→Task)、新增 await、清列表/状态重置时机、失败分支重排、展示与通知后移是重点盯防项;⑤审查者对接口成员/行为声明的事实断言必须逐字符核对源码,不凭记忆(引以为戒:P3a CustomId getter-only 误判);⑥根因未定不用重跑成功抹掉首败。此规则适用于后续全部审查,含待命的四项 PF 能力承接接线核查(等级榜/好友/资料/匹配直接关联线上逻辑,为最敏感区)。

2026-09-30 14:40 定时任务已停止(用户指令)+ 整体进度盘点:每30分钟监控任务已删除(共运行17轮,全程留痕于本列表)。截至停止时的整体状态:个人存档纯平移编码+离线验证全部完成(C1→C2d→C3a,见下方条目链),当前全局卡点=四项 PlayFab 能力的 KV 承接接线(等级榜聚合/他人公开资料/好友列表/匹配)——14:18 重申其为迁移范围内客户端工作,待审查侧一次性核查分类(漏接/可复用/真缺口)+必要的服务端能力事实;之后 C3 真实首场景验证(PF计数=0 才解双闸)→ C4 清账+批末全量独立复核 → 最终通关清单(移动端易盾/TapJoy、PlayerKV 改名、物理分层、Player 编译、P2-α 全体策略、打包)。完成度估算:客户端已审纯平移编码 ≈95%,本合批 C1–C4 ≈85%,项目总体(至最终通关)≈72%(主要不确定量=四项接线的实际规模)。详细里程碑列表见本次会话输出。

2026-09-30 14:30 定时进度更新(C3a 离线验证完成 + KV 替代范围重申;审查侧待命一项核查输入):C3a 验证记录(14:12)——KVGameLoadTests 90组2006断言0失败、装备链 9组28断言、ExitRegression(临时 targets 补 IKVUserLifecycle 编译输入后)10组35断言0失败、非Editor工厂探针通过;C2d 组合 2177 项+20 项证据 hash 全部未被改动;两处首败(旧退出工程缺新接口、PlayerProbe 混入测试 partial)以仅存于 CodexOutput 的临时编译输入解决并留痕。静态证据:首场景仍有残余 PF 调用(SetLvData→UpdatePlayerStatisticsAsync、好友 GetFriendsListAsync、他人资料/匹配未接通)——PF 计数≠0,双闸依法保留。KV替代范围重申(14:18)撤回"主要工作在服务端侧"的表述:等级榜/公开资料/好友/匹配是迁移范围内客户端接线工作;KVMgr 现仅 4 个 handle 操作、PlayerKVClient 仅个人 playerdata 三操作;已备好给原审核AI的一次性核查输入(五条规则:区分漏接/可复用游戏服调用/真实缺口三类,不重开产品问题)。另:此前防跑移核查标记的 AGENTS.md 增量确认为用户授权的规则增量(14:18 附 hash 单独记录),该疑点解除。下一步=审查侧执行该一次性核查(待用户指令)或服务端能力事实到位。

2026-09-30 14:15 当前状态独立审核(防跑偏核查,用户要求):因开发 agent 切换过 AI,原ZCode 对实际代码做了全面核查,报告见防跑偏核查。结论:与纯平移裁决一致,未发现跑偏——C2d 交付 113 项中 112 项与当前磁盘 hash 一致(封存后零代码改动);十项核减逐一实证落地(HomePanel 字节级零修改、PlayerSaveAction 零残留、邮件批量恢复原 HasRead/HasReward 旧缺陷保留、钓鱼/转盘仅换存储接口时序未动、Survey/Friend 原签名、Chat 仅 BOM 差异、AllRefresh 恢复逐活动容错、两 fixture 注入在位、store 接线完好)。两项待用户确认的非代码事项:①根 AGENTS.md 在 C2d 封存后 1826→2432 字节(内容为规则条文,文风似用户裁决——请确认作者);②会话期间根仓库新增 3 个提交(文档/测试归档+CLI Loop 工具链,无迁移生产代码)。C3 未开始,双闸保持。

2026-09-30 14:00 定时进度更新(C2d 后连续第三轮无新文件,仅刷新时间戳):最新仍为 C2d 交付(12:11),C3 未开始落盘,状态与 12:30 条目相同(核减完成、全绿离线验证、双闸保持、下一步 C3)。

2026-09-30 12:30 定时进度更新(C2d 纯平移核减完成,fixture 首败已解决):纯平移主会话裁决与C2d实施记录(12:11)——用户两次确认"审核完毕继续"作为依据。核减 32 个客户端源码+2 个宿主测试文件(按基线逐字节对照,非整树回退):Survey/邀请/商店/签到恢复原同步签名与通知顺序、邮件恢复原 HasRead/HasReward、钓鱼/转盘只换存储接口不动调用时序、Chat/FishingEventData 恢复原逻辑;移除无消费者的 PlayerSaveAction 与收集状态;HomePanel 零修改;TimeRefreshManager 的 LastLogin 哨兵适配保留(属 KV 时间戳前置)。两 fixture 经"原未启动 PF shell + PlayFabPlayerSaveStore 委托 kv-loop"注入后首败解决:耗能 19组85断言、奖励 55组243断言、M08-M23 28断言、B2-20 83断言/31实模块全过;ServiceHost 双配置 18组254断言(较 C2c 减少的 2组为已撤回的聚合/强制等待用例);最终编译 0错误/269警告;CLI 合并超时按单组重跑未当成功。邮件批量枚举、调用者不等待、跨系统崩溃窗口等原缺陷登记待移植完成后另行授权。用户 debugconfig 已恢复正式 URL(留证据)。下一步=C3 真实场景验证;C4 批末全量独立复核仍未到。

2026-09-30 12:00 定时进度更新(C2d 停在 fixture 首败后 30 分钟无新文件):最新证据仍为 11:29 的 final-compile(0错误/272警告)与首败"fishing validation: real recovery can write during pending"(UserService.KVFishingValidation.cs:217)。无 C2d 实施记录、无核减进度更新——开发侧应在处理"原调用行为↔KV pending 禁写合同"的映射裁决或已暂停。待其落盘后继续跟进。

2026-09-30 11:30 定时进度更新(C2d 纯平移核减执行中,首败已留痕):开发侧 11:16–11:29 连续落盘 C2d 证据——核减采用"git HEAD 原文+原基线 hash 校验"方式(脚本断言 HEAD 变体与原受审基线一致才作为对照,避免误回退接手前改动),含按核证基线核减与活动原流程核减两脚本。最终编译 Success=true、0错误/272警告(11:29)。fixture 回归诚实首败:fishing-consume 验证在 UserService.KVFishingValidation.cs:217 抛"Fishing validation: real recovery can write during pending"——核减回原调用行为后与 KV 底层"pending 期间禁止写"合同出现张力,属需要裁决的存储层映射问题而非可静默跳过;retry 结果文件为 0 字节(写入中断),超时后编辑器状态干净(playing/enabled/ready/error 均 false/null)。C2d 尚未出实施记录,核减仍在进行。名义 198/202 数字待核减完成后重新认定。

2026-09-30 11:00 定时进度更新(重大方向裁决:全流程纯平移,C2c 强化核减待执行):主会话 10:29–10:45 连落四份文档。①用户最新裁决"修改原来的逻辑……你需要的是平移即可"——迁移只做存储提供方替换+新身份接线,不做业务修复/确认等待/防重入/展示延后/时序重排,适用整个迁移流程(根 AGENTS.md 已由用户同步更新,C2c 组合 2177 项复核 2176 一致、唯一变化即该文件)。②核减清单点名六类已实施强化须对照原行为收回:PlayerSaveAction 聚合/票据后展示、Survey/Friend 的 Task 化与领取锁、邮件 HasRead→RewardTaken 修复、商店/签到确认与订单去重、钓鱼/转盘调用者等待链、坏档抛错与 Chat 重试——保留 KV 存储/身份必要接线,逐块核减非平移行为。③补单修订:HomePanel 完全不改(当前文本与 HEAD 一致,await 从未实施),三文件差异缩至两个 KVFishing 离线 fixture 注入。④核证记录:用户已告知"审核完成可继续",但开发侧尚未定位该轮审查报告路径,已向用户请求定位——当前卡点=报告定位。定位后按序:核 hash→连续核减→原业务流程测试。数字名义 198/202 不变,但其中奖励链实现将按裁决回撤重做。

2026-09-30 10:30 定时进度更新(主会话恢复运转,差异审查推进中):停等约 12 小时后出现新动作——主会话 10:24 更新接手卡、10:25 落盘差异方案业务流程保留补充:两个 KVFishing 验证文件只准修离线 fixture 注册/DI(禁改正式钓鱼/发奖/扣费逻辑、禁弱化断言);HomePanel 补单链被认定存在真实业务流程影响风险——原链为补单发放→礼包拍脸→暂存奖励 Flush→ShowData→进度条→MaskClose,须拆分"持久化成功/奖励展示/普通界面收尾"三职责,失败不得阻断 MaskClose 卡死主页、不得永久冻结/静默丢队列/自动重放,无补单时保留原快速路径;"只加 await"不获承认零影响。补充与 09-29 三文件差异方案合并一次审查后再编码。数字不变:198/202+2/2 代码级、双闸保持。下一步=合并审查裁决落盘后开发侧恢复实施。

2026-09-30 10:00 定时进度更新(第二十三轮无新检查点,仅刷新时间戳):最新文件仍为 C2c(09-29 22:20),集中差异裁决停等约 700 分钟(近 12 小时),状态与 23:00 条目相同(198/202+2/2 代码级、双闸保持、钥匙在主会话侧)。

2026-09-29 23:30 定时进度更新(连续第二轮无新检查点):最新文件仍为 C2c 系列(22:20),集中差异裁决已停等约 70 分钟。批次钥匙仍在主会话侧:对集中边界差异方案(旧 reward/consume 验证宿主 store 注入 + HomePanel 补单 await)作出最小范围裁决前,C2 无法收口进入 C3。数字不变:198/202 + 2/2(代码级)、ServiceHost 20组262断言、编译 0错误/272警告、runtimeVerified 全 false、双闸保持。若用户希望恢复推进,可指示主会话处理该差异单。

2026-09-29 23:00 定时进度更新(无新检查点,符合预期停等):最新文件仍为 C2c 系列(22:20 接手卡),40 分钟无新增。这不是异常停滞:C2c 之后的下一步是集中边界差异方案(旧 reward/consume 验证宿主 store 注入 + HomePanel 补单 await,涉及白名单外文件)等待主会话最小范围审查裁决,开发侧按边界规则停在正确位置。裁决到达前 C2 无法收口进入 C3。当前数字不变:198/202 业务调用、2/2 即时消耗(代码级),ServiceHost 20组262断言、编译 0错误/272警告,runtimeVerified 全 false,双闸保持。

2026-09-29 22:30 定时进度更新(C2c 已落盘,调用迁移代码级收官):C2c 实施记录(22:18)——业务调用累计 198/202(本段 +134):余 4 项中 3 项为 Club/Setting 已有固定 KV 提示路线(保留 PF 分支)、1 项无消费者待最终清理;2/2 即时消耗真实等待链已编码(扣饵确认后才咬钩、转盘扣费确认后才抽随机)。奖励动作回执收集落地 PlayerSaveStores:Survey/邀请/邮件批量(修为 RewardTaken+冻结未领集)/商店抵扣/订单回调/俱乐部签到全部改为确认后才展示;Chat 消费本次生命周期。验证:ServiceHost 双配置各 20组262断言 formalRequests=0、编译 0错误/272警告、固定入口 M08-M23 28 断言 + B2-20 83 断言/31 实模块通过。两条旧回归诚实首败未掩盖:fishing-reward(GuideDataCenter.Init NRE)与 fishing-consume(MiniBP GetMiniBattlePassRecord NRE),根因均为白名单外旧验证宿主手动 new 对象缺 store 注入——开发侧已落集中边界差异方案(含 HomePanel 补单 await),待最小范围审查后才改。检查点交付:97 改+12 增,原基线 2067 项不变,组合核对通过。C2 尚未宣布完成(真实奖励栈 UI 延伸、C3 验证未做),双闸保持。估算上调:客户端编码约 92%,本批约 80%;下一步关键节点=集中差异最小审查→C3→C4 批末全量独立复核。

2026-09-29 22:00 定时进度更新(C2c 验证证据已落盘,实施记录未出):新增三份 C2c 文件(21:57-21:58)——Unity 编译 Success=true、0错误/271警告(较 C2b 的 272 再减 1);固定验证结果显示两条受控验证用例通过:M08-M23 28 断言(仅 M08-M23 范围、共享容器未触碰)与 B2-20 83 断言(31 个真实模块、双 epoch 受控事务、fullB220=true、恢复成功、PF 禁用调用 0)。调用迁移台账仍为 C2b 的 64/202(进度 JSON 未更新,21:23),C2c 实施记录尚未落盘——开发侧应仍在 C2 验证/迁移段。无 C4/批末交付迹象。双闸保持。

2026-09-29 21:30 进度更新(C2b 已落盘):C2b 实施记录(21:25)——调用迁移累计 64/202(本段 +42),余 138 business-store + 2 即时消耗。EventTokenService/AEventDataManager/FishingEventData 主体+PVP/魔药/弹珠/刮刮乐/锁链/迪斯科/存钱罐/EventPack/鱼竿配件等 14 生产文件迁移完成;坏档报错不再默认零余额、AllRefresh 失败汇总上抛。验证:ServiceHost 双配置各 17组235断言 formalRequests=0,CLI Loop 0错误/272警告,累计 47 项交付 hash 8F027C06…,与原基线组合 2177 项核对通过,白名单外零漂移。两处首败如实记录(沙箱 File.Replace EPERM→StorageError、Node spawnSync EPERM 阻断编译,均经批准的本地提升运行解决,未改协议规避)。开发侧自查发现两个即时消耗调用链真实缺陷:FishingBehaviorB 未等消费确认即进入咬钩、FishingTurntablePanel 不论成败都标记已同步且已先抽随机值——下段须按方案修真实链路而非换方法名。速率 42 项/25 分钟,机械迁移余量约 1.5–2 小时;奖励链+Survey/Friend/Mail 仍是最重未完段。双闸保持,runtimeVerified 全 false 未虚报。估算上调:客户端编码约 82%,本批约 55%,项目总体约 67%。

2026-09-29 21:15 进度整理与开发状态确认(原ZCode):正式前审有条件 PASS 经主会话 C0 裁决全盘接受(P2-1 定死 TimeRefreshManager 三分映射与 LoginTime 写入时点、P2-2 易盾/TapJoy 暂缓并登记移动端清账、P3a-d 全采纳),白名单 110+12 冻结,编码已获批准并连续实施中。C1(20:32)完成独立 KVUserService、两个窄契约、DI/生命周期、formal 宿主迁移,编译 0 错误/269 警告。C2a(21:00)完成 IPlayerSaveStore+两实现、40秒调度、LastLoginTime 机制、22/202 项业务调用迁移,ServiceHost 双配置各 16组215断言、KVGameLoadTests 90组2008断言、编译 0 错误/272 警告,累计 33 项交付 hash 7DF87736…。审查侧实地抽查确认:三个新文件已存在、SmallGameData 已真实注入 store 且零 PlayFabMgr.Instance 残留、台账 runtimeVerified 全 false(诚实未虚报)。当前 C2 继续中:余 180 项 business-store + 2 项即时消费 + Survey/Friend/Mail/UI + 动作回执收集;双阶段闸保持,C3 零 PF 计数全绿后同次解除;C4 一次全量独立复核。 余量按代码量估计本批约完成 30%(22/202 调用+C1 全部),M2 整体编码进度约 75%。

2026-09-29 合批正式前审已落盘:有条件 PASS:原ZCode按正式前审提示词完成 hash 门控整批审查,报告见合批正式独立方案审查。基线独立复算 2165/2165 零漂移 + 12 expectedAbsent 全部不存在,manifest hash 一致。批准在候选白名单 110+12 文件与方案 §2–§7 行为边界内连续编码,无 P1;关键独立核证:83 个含 PlayFabMgr.Instance 文件 82 个入白名单(唯一例外 kv-loop 按设计不改)、台账 224 条路径全覆盖、邮件批量 HasRead/HasReward 旧缺陷属实(InGameMailHandler.cs:448-468)、Survey 十六进制%10 与代码吻合、tbfishingevent 1466 行实测相符。2 项 P2 为批内精确设计点(LastLoginTime 三分映射须在 TimeRefreshManager 显式 MinValue 判别、易盾/TapJoy 移动端链登记)+4 项 P3(双闸同步解除、AggUserService 白名单注记、Chat 时序验证、台账翻验)。审查者披露并更正上轮 P3a 事实错误(接口 CustomId 实为 getter-only,setter 修订必要)。不批准:奖励通关声明、聚合/资料/好友/匹配放行、Player/SignalR/线上验收。待主会话重核报告与 hash 后逐项裁决、冻结白名单即可开工。

2026-09-29 合批工作稿修订版独立复核已落盘:主会话对预审作出逐项裁决(预审七项全部接受;EntityKey 因是 PlayFab DTO 须移出共用契约、Duel 三处同批迁移;GetDefaultName 取 min(5,长度)、Survey 十进制尾数 %10 映射 TailNumberList;正式 KV 只信冻结选择)后,工作稿修订版(17:47)把全部裁决落入正文。原ZCode修订版复核确认:七项承接完整、LoginDays 六消费者链/TimeRefreshManager nullable/TailNumberList/EntityKey DTO 等新增声明抽验全部属实,并补充 EvtAPISvrLoginSuccess 三订阅者(Chat/Mail/RT)与发布顺序吻合的证据。余 3 项 P3:CustomId setter 表述失准(后经主会话否决——审查者错误,接口实为 getter-only)、生命周期契约出现第三个关闭名须定死映射、跨账号公开资料读取应补入集中问题单或明确延期。无 P1/P2;P3 修正后可编制受审 hash 基线进入正式前审。

2026-09-29 合批工作稿独立预审已落盘:原ZCode按纠偏裁定对合批工作稿及合同矩阵/集中问题单做只读事实/问题吸收,报告见预审意见。事实底座通过:启动链六行声明、首场景自动链(Survey/AntiCheat/Friend/AIHelp/AutoRestart/RT恢复/LoginDays)、等级榜公式与SDK直调、新PlayerId来源(PlayerKVLoginContext.cs:198)逐项核证属实;用户三项新裁决(新PlayerId不映射、原接口沿用只集中确认新ID、等级分存KV)三文档口径一致且未越服务器边界。新发现 P2-A:SetLvData 地区榜名 = ContinentCode+leadboardLevelName,KV 无大陆码来源,地区统计名会静默与全局同名——须产品裁决或补来源。另 P2-B(DP1 的 R2/R3 修订与测试迁移义务未承接)、P2-C(FishingStage 授权等待是软门,身份发布须硬断言先于场景切换并覆盖 AutoRestart/暂停恢复两个 IsLogin 消费者)、P3-D(GetDefaultName 短 ID 崩溃)、P3-E(SaveBackend 再读取方向二选一)已列成 §4 七项清单供最终方案并入后送审。此为预审不构成编码许可;正式前审仍需 hash 基线+一次完整审查+一次裁决。

审核节奏纠偏(2026-09-29):合批裁决已暂停 DP1 单独送审;下次合并双提供方用户服务、CP2B 首场景和同合同 CP3 调用,一次完整前审后连续编码,最终统一独立实施复核。缺线上合同先只读补齐;不因 DP1 底稿已写就另开一轮审核。

2026-09-29 DP1 独立方案审查已落盘:原ZCode 按集中审查提示完成一次性完整审查,重算 18/18 基线 hash 及清单 hash 全部一致(无漂移)。总裁决限定通过:方案 C 最小纵切成立——正式 KV 路径可在 DP1 内脱离 PlayFabUserService 运行时实例与 PlayFab SDK 调用(执行路径调用图已逐点核证),PF/AGG/受控验证/kv-loop 四通道不受损。无 P1 阻断;P2 三项需修订:R1 未决点1须落成确定裁决(DP1 的 KV 类必须实现 IUserService——SmallGameData 构造注入+ClubService 属性注入+PFLoginAct 注入三重 DI 证据,并附成员三分表:真实实现/如实未发布状态/显式失败)、R2 既有 formal 合成测试(ServiceHost Program/Stubs)迁移与三个不改文件的签名耦合核验义务须写入白名单、R3 PFLoginAct CustomId 下转 NRE 与 QuitAct 双下转失效须定死中立面机制(建议窄接口)。详见独立方案审查。待主会话重核 hash、逐项裁决并冻结精确白名单后才可编码。

DP1 待完整前审(2026-09-29):独立 KV 用户服务候选方案、18项 hash 基线和集中审查提示已备。待独立报告后核 hash、逐项裁决与定白名单;现阶段不改生产/测试代码。保留 PF/AGG、阶段闸和正式 101/102 准入限制。

2026-09-29 CP2B-T运输限定关闭:九项交付hash 9/9一致,原ZCode独立实施复核及主会话逐项裁决接受同租约普通GET/POST运输的限定交付。首场景闸、公开身份、真实线上业务接口、Player编译和SignalR另审;保留PlayFab路线并为独立KV用户实现编制完整方案。

2026-09-29 M2 CP3A限定关闭:原ZCode独立实施复核已收,主会话重核交付10/10 hash并逐项裁决。仅原句柄/三原实例/B01两提示键及Editor直开PF单点属于本次关闭;CP2A Player编译、Editor真直开和CP2B首场景仍待证,阶段闸不变。下一批同合同合并完整前审与一次批末复核,批内检查点更新日志。

2026-09-29 M2 最终清账门槛:将用户要求的全部开发期冻结/忽略路径纳入最终处理清单;每批登记新增绕行,完整评审和裁决后逐项恢复真实业务、验证并记日志,最终重扫、清闲置实现。清单未销账不得宣称整体通关;现有首场景闸与101/102安全准入维持。仅文档更新,未改本机服务器代码。

2026-09-29 M2 CP2A-C9 实施中:正式登录/仅101、102现存KV档/原handle及阶段双闸已接入;合成89组1962断言、ServiceHost 9组86断言、Unity CLI Loop Editor 0错误/269警告。真实 Player 编译与原ZCode独立实施复核未完成,既有 _cheatingScore 白名单外阻断待补审;CP2A不关闭。未Play、未访问正式账号、未打包;最终闲置实现清理仍待后续。

2026-09-29 M2 CP1限定关闭:原ZCode独立实施复核报告已落盘,主会话重核交付95/95 hash一致,并逐项裁决;独立复跑120组2733断言0失败,P3两项按证据限定接受。CP2正式接线仍待完整设计、独立审查及主会话裁决,未获批编码;最终闲置实现清理、旧Mgr停用和流程图未完成。固定http://s101.local:18080/,Unity仅CLI Loop,不用UnitySkills,暂不打包。

以下为历史检查点(以上方为准)

2026-09-29 M2 CP1-2最新状态:修订2原ZCode报告已核19/19 hash并逐项裁决;CP1两源码限定实施及合成回归完成,待原ZCode批末独立实施复核,尚未关闭。加载84组1911断言、Context 23组279断言、B02完整13组544断言、隔离清理失败3进程5/8/8断言,均0失败。CLI Loop编译报告0错误/272警告,Success=null;前后非Play/非编译,接口反射探针受Restricted规则拒绝并保留限制说明。已有19份Client改动hash全部保留;CP2仍待完整设计审查,CP3–CP5及最终闲置代码清理未完成。 CP1交付 · 原ZCode复核提示词。固定http://s101.local:18080/;不用UnitySkills,暂不打包。

以下为历史检查点(以上方为准)

M2当前执行门(2026-09-29):修订1独立审查及主会话15/15 hash、P2/P3裁决已完成;总路线通过,CP1–CP2未获编码批准。新增启动/认证/租约/Player绑定阻断已纳入修订2方案,19项受审基线复算一致,待原ZCode按提示词复审。复审后主会话逐条裁决;若CP1会成为闲置代码则并入CP2设计。此时不进入源码实施,不把旧Mgr/SDK停用视为已完成。

M2最新检查点:先移植后优化修订1完整方案、15项受审基线、原ZCode提示词已完成;下一步是独立审查与主会话hash/意见裁决,不是编码。正式受控加载成功后Guard仍持有,需审查“正式路径成功Apply后释放再发布原handle、验证路径不变”的必要适配。

更新:2026-09-29。依据:F01–F12审查侧全部接受,M2架构复审裁决与修复Todo R0–R6为当前推进顺序;以下E/B编号保留历史执行索引。正式地址固定http://s101.local:18080/,Unity CLI Loop,不打包。

最新用户纠偏覆盖下文旧R1描述:先完成可逐项对照的管理器能力/调用迁移,保持Guard原位、原语义及已审四入口不变;只作真实后端合同所需的最小适配。Guard归属、KVMgr物理移动、生命周期抽象和代码清理留到迁移验收后的另案评审。下一步仍是修订完整迁移方案、交原ZCode审查并由主会话裁决;未批准生产代码。详见策略最新段。

  • E0:阅读续裁决;主会话确认无新增流程分歧,按要求纠正文档口径与链接。
  • E1:复用既有只读扫描器,生成当前224处/81文件快照;旧223项全部映射,识别1处方法提取、1处内部调用新增,不覆盖旧台账。
  • E2:落盘224项分派分类及理由;区分首批、后续候选、限定已处理、保留PF和本次排除。该分派不代表全部上游已审。
  • E3:完成首批B01“通知提示与俱乐部已读状态”完整方案、3处存档调用规则及通知上游链、白名单和B→C依赖。
  • E4:完成批级自审、独立审查提示词、受审基线;同步入口和当前状态。
  • E5:审查会话一次完整批级方案审查;主会话核hash并逐项裁决后才能编码。
  • E6:在白名单内连续实施B01;合同内实现错误直接修复和回归,保留首败,不拆成逐调用审查。
  • E7:既有适用回归+本批业务/迟到回调/失败专项+Unity编译;形成一份批级交付。
  • E8:一次独立实施复核→主会话裁决关闭B01,更新剩余分类。
  • E9:管理器优先迁移继续推进;四入口搬迁已审查、实施和限定关闭。M2旧方法/调用替代的合并设计仍在准备,必要业务适配不省略,不逐函数审批。
  • E10:B范围具备后完成C加载发布/后端固定/定时暂停退出接线方案及实施;正式集成验收包含连续操作、动作收口和旧回调隔离。
  • E11:按总清单处理身份/迁移政策/稳定性/tickets及4D/G4;外围迁移/SDK清理和平台验收保持各自前置,暂不打包。

首批只选3处存档调用,是因为实际展开包含整条通知授权异步链、多个UI入口和俱乐部红点内存/事件顺序;不为达到20–40个建议数混入奖励、支付或增加无关改动。批准范围不是“只改3行”。

当前下一步:主会话R1,准备“旧成员与调用方逐项映射+原handle受控交接+复用B01代表业务”的一份完整迁移方案。Guard及KVMgr物理位置不动。四入口限定关闭,M2复审尚未批准编码;修订1核心整包继续暂缓,不批准旧34文件实施。详见修正后的顺序。

用户补充目标:KVMgr与PlayFabMgr同处玩家存档入口生态位。R1须一并审全部旧Mgr成员的替代去向与保护先后:先定完整存档合同,再按业务域连续替换调用;最低会话归属/加载准入/错误结果保护不可留到最后,T08等正式启用保护可在调用迁移后、默认切换前收尾。目标是最终旧Mgr运行调用/自动执行归零,不复制PF合档与SDK定时器。

R1必须逐项核实CompareDatas、Awake、40秒PF循环、暂停/退出与Editor测试循环的现状及KV对应行为,不能直接复制进KVMgr或预设新生命周期组件;旧路径保持到替代行为通过审查和验证。见策略的具体核查点。

  • B02-D0:原核心进度只读盘点及修订1完整方案保留历史。
  • B02-D1:修订1独立报告读取、80/80核验、P2/P3与各项意见主会话裁决。
  • B02-R2-D0:管理器优先总路线、全部模块进度、旧方法替代必需合同落盘。
  • B02-R2-D1:四KV入口精确白名单、行为等价验收、检查点0–4及送审材料准备。
  • B02-R2-D2:原ZCode独立审查总体路线与四入口范围均通过,主会话87/87核hash、逐条裁决并批准限定实施。
  • B02-R2-CP0–4作者部分:四入口等价搬迁、必要回归、CLI编译、44项交付hash及复核材料已完成。
  • B02-R2-实施复核:原ZCode PASS;主会话44/44 hash及六项/P3逐条裁决,四入口段限定关闭。
  • B02-Migration-Design:当前224候选/81文件只读重扫与逐项映射已完成,M2底稿已核实正式固定句柄交接和31模块正式绑定尚缺。继续按真实归属与失败语义补齐可审白名单、验收矩阵;完整评审后才实施,不把四入口完成当全部管理器替代。
  • 正式停用旧Mgr与SDK移除:按依赖完成,最终核对直接引用、组件/自动执行、SDK类型/工程引用。

修订2方案 · 修订2提示词 · 旧审查裁决。