Files
ft/CodexOutput/upserver/TODO.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

1786 lines
121 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.
# TODO:s101客户端迁移(4C2及P2-α-A/B/C/D限定关闭)
> **2026-09-30 当前:C3e本人统计写已按原C3c第六轮许可实施并验证。** [裁决、实施记录及服务端统计合同](B3BatchMigration/M2/M2-C3e本人统计写裁决与实施记录-2026-09-30.md)。唯一生产SetLeadboardData的KV分支写本人LevelB/地区LevelB,原公式、SetLvData、调度及PF/AGG分支保持;最终双条件各33组646断言,CLI Loop编译0错269警告、非Play。原R2-S写入挂起已解除并完成,不再等待这项审核;榜读/好友/远端普通等级/公告/匹配、双闸及完整通关仍待后续。同批正常验证不另送审;未操作服务器、正式账号或打包。下方旧待R2-S裁决状态为历史。
> **2026-09-30 当前:客户端剩余项核查完成,本人统计写独立实施并入原C3c待裁决。** 见[本轮核查与R2-S裁决材料](B3BatchMigration/M2/M2-C3c客户端剩余项核查与本人统计独立实施待裁决-2026-09-30.md)。C3d交付13/13一致,已完成部分不重审;剩余共用业务8处直接SDK调用、GetPlayLv远端等级及开发冻结已分项定位。本人KV写能力已有,但第四/第五轮挂起限制尚未解除;本轮仅列具体文件/方法/测试与失败、多键、Flush差异供原报告一次裁决,未编码。旧暂存方案不恢复,原PF/AGG有效分支保留。此条覆盖下方历史状态。
> **15:55待办更新**:[本人统计KV暂存实施增量](B3BatchMigration/M2/M2-C3c本人统计KV暂存实施增量-2026-09-30.md)已补齐方法、键值、失败/部分确认语义和真实类测试边界。开发侧细化完成;下一步核现有C3c独立报告及增量hash,逐项裁决,通过范围内连续测试和编码。不是重问需求,不另拆LevelB、地区、登录时间三轮审查;跨玩家查询保持联调待办。
> **最新优先顺序**:按[M2先存KV后联调方案](B3BatchMigration/M2/M2-先存KV后联调的阶段移植方案-2026-09-30.md),先明确并实施已审客户端本人存储替换(LevelB暂存候选、已有LastLoginTimeUtc复用),再联调好友/榜单等跨玩家结果;具体新增范围并入C3c,不逐字段送审。最终必须恢复所有开发冻结并清理无消费者临时实现,不能把暂存当通关。
> **C3c事实更新15:36**:101/102互加好友完成,非空响应已取得;取消“等待非空样例”待办。按《M2-C3c正式互加好友结果与字段差异-2026-09-30.md》集中裁决Level与实际KV不一致、LastLogin/建筑等级未返回的映射。103–110可必要时测试的用户授权已记录,当前无需扩展账号。
> **C3c最新待办**:一次审查[B3BatchMigration/M2/M2-C3c剩余SDK接线集中差异与待审方案-2026-09-30.md](B3BatchMigration/M2/M2-C3c剩余SDK接线集中差异与待审方案-2026-09-30.md),核同目录受审hash,给出五类能力映射及最小文件边界。客户端已完成本轮核查,现须裁决LevelB、LastLogin、公开资料有效性与榜单/公告/匹配调用映射;之后同批接线及验证,不重开个人存档/新ID审批。
> **C3d已按用户澄清实施并验证,getter边界不再阻塞。** [实施记录](B3BatchMigration/M2/M2-C3d资料缓存用户澄清与实施记录-2026-09-30.md):唯一生产KVUserService恢复原缓存默认值/同一资料对象/本人事件,他人昵称头像接既有SearchFriend;GetPlayLv最小解耦且原对外行为不变、未接远端等级。双条件各24组491断言通过,CLI Loop最终C#编译错误0、非Play;开工2120项源码仅两既有文件改变+一个测试新增。四项服务端能力、双闸及真实最终通关仍未完成;下方旧“第五轮尚未编码/待澄清”是历史状态,不再重复送审。
> **第五轮审核更新已确认,尚未编码。** 见[状态核验与边界](B3BatchMigration/M2/M2-C3c第五轮状态核验与缓存联动边界-2026-09-30.md):审核侧范围性批准唯一KVUserService文件的缓存及SearchFriend昵称/头像接线,四项服务端能力继续挂起;28/28、31/31、交付13/13 hash一致。发现GetPlayerLv默认1会经直接调用改变GetPlayLv未加载失败语义,与“后者不动”冲突,须在同一裁决澄清最小解耦边界,不能机械改值。C3ProfileCacheTests未建;首场景双闸与最终通关仍未关闭。本轮仅状态核验,不把审核通过等同实施完成。
> **当前服务端交付材料已完整汇总:** [四项PlayFab能力迁移对接文档](B3BatchMigration/M2/M2-四项PlayFab能力迁移-服务端开发对接文档-2026-09-30.md)包含等级榜、好友/公开资料、公告、匹配的原调用、输入输出、拟接口与JSON、原业务边界及联合验收。公告与匹配四步提案已补齐,旧清单“尚未设计”不再是当前文档状态;已有等价服务优先复用。LevelB只做原样存储平移。下一步服务端对照实际实现反馈,合入C3c完整审核后客户端接线。本轮无生产/服务器代码修改、无线上请求。
> **当前待设计事项统一以[待设计与接线清单](B3BatchMigration/M2/M2-C3c当前待设计与接线清单-2026-09-30.md)为准。** 仅补等级榜读取、好友/公开资料、公告、匹配的KV替代合同;已有等价入口直接复用,字段不足最小补字段,确无入口才补接口。LevelB公式/名称/更新时机、本人KV保存方向和LastLoginTimeUtc均已定,不再作为新设计。榜单原客户端入口保留,拟leaderboard/GetLeaderboard不是必须新增URL。C3c仍须整批审核后编码;旧条目保留历史,不能恢复已撤回提议。本轮仅文档更新。
> **最新用户纠正:只设计等级榜读取接口,LevelB不重新设计。** 原客户端计算、统计名称、数值、更新时机全部沿用,原PF统计写仅平移为本人KV写;当前源码仍调用PF,不能声称已存KV。此前把统计键列为新增设计/待决策项的表述撤回,见[范围纠正](B3BatchMigration/M2/M2-等级榜设计范围纠正-LevelB沿用原逻辑-2026-09-30.md)。C3c完整审核门槛保持,不单独增加LevelB审核。本轮仅文档,无代码/线上变更。
> **2026-09-30 当前:用户授权的等级榜读取与本人统计键设计已落盘。** 见[等级榜接口设计](B3BatchMigration/M2/M2-等级榜读取与本人统计键接口设计-待完整审核-2026-09-30.md):本人沿原LevelB/地区LevelB键写同一复合分数,拟由leaderboard/GetLeaderboard返回前50排名及公开资料。与好友接口纳入同一C3c完整审查;新接口是提案,不是线上事实。原统计配置对照与两键写具体调用仍须审清,整体未批准编码;下方旧“暂存+通用Flush/报告未落盘”等条目仅为历史,不能作为执行许可。本轮只更新文档,未改客户端、测试或服务器,未发正式请求。
> **用户已授权设计好友服务端接口**:已完成[好友KV资料接口设计](B3BatchMigration/M2/M2-好友KV资料服务端接口设计-待完整审核-2026-09-30.md)及6项受审hash。拟扩展原GetFriendsList,在原好友项增加Profile投影KV名字/头像/LevelB/LastLoginTimeUtc,保留字符串数组及原消费逻辑;缺值/失败/旧协议区别已写清。由服务端开发实施服务器部分,客户端不改服务器;当前是待完整审核合同,不再仅等待他方给字段名,也未声称部署或编码通过。
> **用户已明确本人存储裁决**:本人的LevelB和LastLogin可以存KV。LevelB沿原计算/触发点;登录时间沿已有LastLoginTimeUtc及原每日刷新顺序,不新加同义键。是否允许本人存储不再是未决项;好友/榜单返回及完整合同仍需审核,未局部开工。见[用户裁决](B3BatchMigration/M2/M2-本人LevelB与登录时间KV存储用户裁决-2026-09-30.md)。
> **第四轮已复核,下一步输入已整理**:审核确认方向/隔离/原消费边界准确,仍明确整体不可编码。四项具体协议事实已写为[服务端接口事实确认单](B3BatchMigration/M2/M2-C3c服务端接口事实确认单-2026-09-30.md),可直接转给现有接口负责侧填写;不再重问迁移方向或已测路由。原28/28、31/31一致,前8项增量仅审核报告因新增第四轮变化,已记录;本轮无代码修改或线上请求。
> **第三轮审核材料已更新**:本人KV无需目标玩家ID,现有客户端不需要删除参数;跨玩家走服务端公开资料/好友投影,原业务目标ID仍保留。LevelB本人KV统计写的方向已纳入,具体完成/失败合同仍待完整审查。统一读[隔离边界复审确认](B3BatchMigration/M2/M2-C3c隔离边界修订与复审确认-2026-09-30.md)及8项增量hash;待确定事项已去除过时重复问题。原28/28、31/31一致,本轮只更新文档,无新请求或编码。
> **KV跨账号读取已按用户要求实测**:101请求102、102请求101,各试JSON的playerId/playFabId/userId及URL的playerId,8/8 HTTP200但始终返回认证本人数据,摘要与本人基线相同;非403拒绝。14次登录/读取请求,无KV或好友写。具体结论见[跨账号实测](B3BatchMigration/M2/M2-C3c-KV跨账号读取实测结论-2026-09-30.md),不能再以SearchFriend成功声称KV可读他人,也不扩大为服务器无任何公开资料能力。
> **第二轮裁决已核;SearchFriend正式证据已补**:最新报告仍未整批PASS。按既有授权实测101/102四次自查/互查均HTTP200/code=1、返回正确目标UserID;等级均1,对照本人KV62/60,昵称/头像为空,无LevelB/LastLogin。现有ID场景不再列为只做过离线测试;不存在/失败场景和资料等价性仍未证实。本轮8次登录/读取请求,无KV/好友/资料写入,无生产测试源码修改。见[本轮记录](B3BatchMigration/M2/M2-C3c第二轮裁决核验与SearchFriend实测-2026-09-30.md)。
> **既有决定复核纠正**:登录时间已有先按KV保存、最终查询留联调的阶段方向,撤回重复要求用户选择DB/KV的问题。用户确认服务器相关接口未变,已测登录/KV读取/互加/好友列表和C3b离线兼容证据继续有效,不重复索要路由或样例。具体未返回的LastLogin/LevelB与其他SDK替代映射仍须核清。见[证据复核](B3BatchMigration/M2/M2-C3c既有裁决与接口证据复核-2026-09-30.md),完整审核通过后编码的门槛不变。
> **最新审核更新已复核:仍未整体通过。** 原ZCode新增修正与状态补充,采纳Nullable异常类型及缺时间不能扩大过滤的纠正,确认局部许可已撤回;未批准新接线。主会话再核统一28/28、原C3c 31/31一致。继续等待用户确定好友时间来源及统计/榜单、好友字段、公告、匹配的准确接口证据;禁止局部先编码。
> **当前硬门槛:C3c相关内容须全部审核通过后编码。** 用户已否定局部先行实施;主会话资料缓存开工裁决撤回,未改生产/测试代码,28/28基线一致。先按[待确定事项](B3BatchMigration/M2/M2-C3c完整审核前待确定事项-2026-09-30.md)与用户明确未定方向及补齐接口事实,再交审核端;不以局部可实施建议开工。
> **当前交审入口已完成**:用户将交AI审查,请统一使用[纯平移审查入口](B3BatchMigration/M2/M2-C3c纯平移统一审查入口-2026-09-30.md)和[28项受审基线](B3BatchMigration/M2/M2-C3c纯平移统一审查基线.json)。已列原调用链、撤回项、真实接口证据、R1–R6裁决问题和实施/测试边界;查询时重算LevelB也不默认批准。28/28及原C3c 31/31核验一致,报告仍统一交付M2-C3c剩余SDK接线独立差异审查-2026-09-30.md。当前无新编码许可,未改生产/服务器或运行线上测试。
> **最新用户纠正:LevelB保持PlayFab原方案,只平移到KV。** 已撤回上一条本人统计临时快照实施候选,不再等待其批准或继续送审。原计算、统计更新时点、排行榜/好友读取语义和业务流程均保持;KV承接原能力。见[当前裁决](B3BatchMigration/M2/M2-LevelB保持PlayFab原语义裁决-2026-09-30.md)。原暂存提议及hash仅为历史证据,未实施,无生产代码需要回滚;后续按原统计链完成等价接线核查,不擅自引入临时副本或新Flush流程。
> **2026-09-30 C3b身份兼容已验证**:按用户批准的“原字段名+新UserID”执行,现有普通游戏服接线已符合;新增真实好友服务测试,两种宿主条件各21组380断言通过。覆盖101/102本人/对方、PF兼容、邀请码、原返回错误及身份撤销。生产代码未重复修改,未发正式请求;直接PF SDK替代和真实全链仍未完成。见[C3b执行记录](B3BatchMigration/M2/M2-C3b-UserID兼容接线裁决与执行记录-2026-09-30.md)。
> **当前进度统一入口(2026-09-30)**:以[M2当前开发进度与执行TODO](B3BatchMigration/M2/M2-当前开发进度与执行TODO-2026-09-30.md)为准:C2d已实施、C3a离线通过;剩余SDK→KV接线、真实集成、冻结清理与C4未完成。最新防跑偏审核已核实当前代码符合纯平移;不等同最终验收。下方保留历史检查点,不据旧状态重复送审或重新询问需求。
> **2026-09-30 工作归属纠偏**:KV承接原PlayFab相关功能是既定迁移目标,等级榜等属于原功能。撤回“当前主要工作直接转服务端”的表述;当前先由客户端与审核侧集中核对剩余SDK→KV映射,不能因客户端KVMgr未包装就认定线上能力不存在。已审同合同替换不重复送审。见[M2范围重申与集中核查](B3BatchMigration/M2/M2-KV替代范围重申与剩余SDK接线集中核查-2026-09-30.md)。
> **2026-09-30 C3a验证更新**:完整离线加载90组2006断言、装备链9组28断言、原退出回调10组35断言及非Editor工厂探针通过;原工程两处编译输入问题与临时参数已完整记录。C2d代码和证据hash未变。首场景等级榜/好友仍有明确PF调用,不能解除两闸;详见[B3BatchMigration/M2/M2-C3a验证边界与执行记录-2026-09-30.md](B3BatchMigration/M2/M2-C3a验证边界与执行记录-2026-09-30.md)。本轮不改生产代码。
> **2026-09-30 C2d 当前状态**:已按用户“审核完毕,继续”完成本轮纯平移核减及两个旧验证宿主的必要注入;当前以《M2-纯平移主会话裁决与C2d实施记录-2026-09-30.md》和《M2-合批-C2d检查点与交付hash.json》为准。下方“尚未恢复”“等待本轮差异报告”等是历史状态,不再阻断本批。HomePanel与原基线一致;全迁移只做必要存储/身份接线,额外业务修正和重构等整体移植后另行授权。debugconfig的EventApiURL已按用户要求恢复为`http://s101.local:18080/`,其他字段未变。M2尚未全链通关,真实首场景、外部能力及最终冻结清理继续列为未完成。
当前后续事项(按顺序连续推进,不逐函数送审):
- [x] C2d核减额外奖励等待、防重入、旧缺陷修正和新坏档策略;清理PlayerSaveAction/ReadEventArchive;保留HomePanel原流程。
- [x] 两个离线钓鱼宿主补必要store注入;原耗能用例恢复通过;两种ServiceHost条件18组254断言通过。
- [x] 恢复本机调试配置正式API地址,其他字段不动。
- [x] 本批奖励55组243断言、M08-M23 28断言、B2-20真实31模块83断言通过;C2d交付hash已封存。
- [ ] C3真实首场景PF调用计数=0、实际业务保存/退出/恢复证据;未具备时保留两阶段闸。当前未授权Play/正式账号写入/付费,不用离线用例代替。
- [ ] 既有集中问题单的KV等级榜聚合、他人公开资料、好友列表和匹配替代入口;由服务端开发侧提供现有能力,客户端不猜路由、不读改服务端。
- [ ] C4整批独立实施复核、所有开发冻结清账、仅本次迁移闲置代码清理。命名调整及原业务缺陷修复留整个移植后。
> **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 及以前均为历史。
## C2c 后续实际待办(合批推进)
- [ ] 差异审查合并阅读《M2-C2c差异方案业务流程保留补充-2026-09-30.md》:HomePanel 原方案仅成功后继续的表述有跳过普通收尾/MaskClose 风险,不能原样编码;区分奖励确认、依赖存档的业务后续与界面收尾。
- [ ] 原流程对照回归:登录/退出、钓鱼扣饵与体力恢复、转盘扣费/随机/奖励、邮件单批领取、Survey/邀请/签到、购买/补单及嵌套活动事件。逐链记录原输入、调用顺序、状态/存档、奖励与扣费次数、展示结果;覆盖正常、失败、重复通知和旧会话回包。仅身份/存储差异及明确已审修复可接受,其余行为差异必须先查明,未验证不得销账。
- [ ] 一次差异审查:仅 HomePanel.cs、UserService.KVFishingValidation.cs、UserService.KVFishingRewardValidation.cs。三个文件当前均未改且与正式基线一致;不请求扩大已经通过的 UserService.KVGameplayLoop.cs。
- [ ] 补单 Task + 实际 UI await + 旧隔离宿主 store 装配,连续实现并重跑旧消耗/奖励;不得跳过失败用例。
- [ ] 继续真实活动/商店异步奖励延伸与失败/待处理 UI,逐动作记录多键与跨系统窗口,不声明事务保证。
- [ ] C3 原两模式场景、Chat/RT、保存/退出/重登、PF 零调用与实际 Player 证据;当前无正式运行许可,不自动写 101/102。
- [ ] C4 一次批末实施复核;全部开发冻结/忽略路径恢复或清理,闲置实现删除,移动端易盾/TapJoy、Core 分层和最后 PlayerKV 改名销账。
> **最新: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及等待审查叙述为历史。
> **2026-09-29 当前TODO(已获正式编码批准)**:C1独立KV服务/启动退出核心已落码并通过合成与Editor编译。下一步连续做C2:IPlayerSaveStore/双提供方固定会话实现→224调用台账分类迁移→首场景/动态活动/奖励确认→最后登录时间写入→Chat/RT旧回调回归。之后C3首场景零PF实证、两闸同步解除及正常交接不触发PFLoginAct.OnDestroy误注销;C4最终清理和一次独立实施复核。移动端易盾/TapJoy、外部聚合/资料/好友/匹配、真实Player/线上与奖励故障恢复仍未验收。**当前不等待审核、不拆C1小审。**
> **2026-09-29 当前TODO**:[合批正式送审包](B3BatchMigration/M2/M2-合批原ZCode一次性正式前审提示词-2026-09-29.md)已备,下一步是一次完整前审与主会话hash裁决,随后连续实施C1–C4,不再逐项预审。客户端待做:独立KV服务/DI/身份→共用存档与224项分类迁移→首场景/动态活动/奖励结果→双模式验证与最终清理。外部具体缺口集中在等级榜聚合、公开资料、原PF好友列表/匹配替代;不重新问存储位置。多键/邮件跨系统崩溃风险、真实Player/SignalR/线上档和门控清账仍需实际证据,未标完成。
> **2026-09-29 合批预审已处理**:最新[预审报告](B3BatchMigration/M2/M2-合批工作稿独立预审意见-2026-09-29.md)明确不是正式前审;主会话已[逐项裁决](B3BatchMigration/M2/M2-合批预审主会话裁决-2026-09-29.md),旧 DP1 基线18/18一致。已补身份真实来源、登录/退出窄契约、发布硬时序、短ID/Survey十进制尾数、地区缺失处理和测试迁移;首场景 LoginDays 六类消费者已进一步追踪。**责任仍在开发侧**:完成同一方案的动态活动/奖励写入与共用身份去PF类型边界,冻结完整白名单后一次正式前审。未获新生产编码许可,不恢复DP1单独实施轮;下方旧状态以本条为准。
> **最新身份规则**:KV 模式以认证会话的新 `PlayerId` 为玩家 ID;PF 模式保留原 PlayFab ID/`EntityKey`。不再等待“ID 映射”答复,客户端按此迁移旧消费者。见[合批工作稿](B3BatchMigration/M2/M2-合批实施方案工作稿-2026-09-29.md)。
> **最新数据迁移规则**:KV 模式把原经 PlayFab 读写的玩家数据迁为 KV 读写;PF 模式保留原路径。等级榜个人分数来自现有 KV `Lv`/`InfiniteBuildingData`,全服/地区榜需其他开发侧提供从 KV 汇总的跨账号读取,属于实现依赖,不再向用户询问存储位置。原游戏服请求保持原逻辑,仅显式 ID 换新玩家 ID 并回归。见[合批工作稿](B3BatchMigration/M2/M2-合批实施方案工作稿-2026-09-29.md)。
> **2026-09-29 审核节奏纠偏**:此前 DP1 单独前审会增加审核频率,[现已暂停单独送审](B3BatchMigration/M2/M2-合批审核节奏纠偏-2026-09-29.md)。下一次正式前审合并双提供方独立 KV 服务、CP2B 首场景与同合同 CP3 调用;获批后批内连续实施/测试/记日志,迁移终点统一独立复核。不再以逐项旧接口合同或玩家数据存储位置反复提问;完整客户端方案与精确白名单未获裁决前不提前编码。
> **2026-09-29 DP1 待完整前审**:按最新双提供方裁决已形成[独立 KV 用户服务纵切候选方案](B3BatchMigration/M2/M2-双提供方独立KV用户服务抽离方案-待完整评审-2026-09-29.md)、[18项受审基线](B3BatchMigration/M2/M2-DP1受审基线.json)和[一次性审查提示](B3BatchMigration/M2/M2-DP1原ZCode一次性完整方案审查提示词.md)。18/18 hash 一致;下一步等原ZCode完整报告,主会话核 hash、逐项裁决 `IUserService`/31模块/DI/退出并定精确白名单,之前不改生产或测试代码。PF/AGG 与首场景闸保持。
> **2026-09-29 CP2B-T运输限定关闭**:[九项交付hash](B3BatchMigration/M2/M2-CP2B-T交付hash.json)9/9一致,原ZCode批末[独立复核](B3BatchMigration/M2/M2-CP2B-T独立实施复核.md)已由[主会话逐项裁决](B3BatchMigration/M2/M2-CP2B-T独立实施复核主会话裁决与限定关闭-2026-09-29.md)接受。正式 KV 同租约普通请求运输可用;`FishingStage` 仍等具体业务合同、独立 KV 用户实现、公开身份和全链评审,不直接删安全/旧回包保护。总断言数的竞态波动不当新增覆盖。
> **2026-09-29 CP3A批末更新(覆盖下方待终审快照)**:独立实施报告已落盘,主会话核10/10交付hash并[逐项裁决限定关闭](B3BatchMigration/M2/M2-CP3A独立实施复核主会话裁决与限定关闭-2026-09-29.md)。当前加载测试两次89组/1960断言/0失败,审核称1964、旧交付称1962,差额不算CP3A新增覆盖。Editor真直开、Player编译仍未验;直接调用`Boost()`不能证明隔离。下一批优先按完整合同做CP2B方案前审,CP3同合同调用合批,批内连续实施/检查点日志、批末一次复核;无线上合同与批准边界不编码或开场景。
> **CP2B线上依据待取**:固定地址根路径无凭据GET为HTTP 200、`n3ftapi 0.0.1-nogit`;五个常见公开Swagger/OpenAPI入口均404,详见[只读探查记录](B3BatchMigration/M2/M2-CP2B客户端首场景线上合同待核矩阵-2026-09-29.md)。待取得可信线上接口文档或负责人确认精确路由、身份和响应/失败合同;不读本机服务器代码充当线上依据。
> **2026-09-29 最终通关新增必办**:用户要求所有开发期临时冻结、跳过、忽略和验证替身路径在完整确认通关前放开为经评审的真实处理。已列[逐项清理清单](B3BatchMigration/M2/M2-最终通关前临时门控与忽略路径清理清单-2026-09-29.md);目前均未销账,`FishingStage` 闸仍须保持至 CP2B 完整评审及实施。每批新增绕行登记、每检查点更新日志;最终做静态重扫、实际运行与独立复核,清闲置实现。安全准入和租约保护不得直接解除。本次只更新文档。
> **2026-09-29 CP3A-C11 下一步**:Editor直开单点补审 PASS,主会话已核5/5 hash并裁决,只在 `SubBoostrap.cs/InternalEditorBoost.Init()` 完成最小修复。Unity CLI Loop Editor编译、CP3A/B01/31模块、KVGameLoadTests与ServiceHost双目标均绿;[10项交付hash](B3BatchMigration/M2/M2-CP3A-C11交付hash.json)已重核,待[原ZCode批末独立实施复核](B3BatchMigration/M2/M2-CP3A原ZCode批末独立实施复核提示词.md),CP3A未关闭。真实Editor直开场景及Player脚本编译仍无通过证据,`LoginStage` 闸保持。`PlayerKV*` 按用户裁定移植期间保留,整体移植完成后再处理命名;本机服务器代码不访问或修改。
> **2026-09-29 N1 命名待办(用户已定时点)**:`PlayerKV*` 并非 `PlayKV*`,但易与 PlayFab 混淆。已完成[只读影响盘点](B3BatchMigration/M2/M2-KV命名一致性只读盘点-2026-09-29.md):约127个类型、24个源码文件、16个测试工程及反射字符串。**移植期间暂时保留,待整体移植完成、闲置实现清理后再决定映射并独立完整评审实施**;历史审查hash不回写。`PlayFabUserService` 的 KV 职责抽离另列架构收尾,不混入当前改名。本机服务器代码不访问或修改。
> **2026-09-29 CP3A-C5 当前待办(覆盖下方旧快照)**:CP3A主批前审、裁决、五文件接线和合成/Editor/ServiceHost首轮回归已完成;待原ZCode对[Editor直开入口单点补审](B3BatchMigration/M2/M2-CP3A-Editor直开入口最小补审-2026-09-29.md)出报告,先核5项hash再裁决,未审前不得改该入口。获批后修复并复测、封存CP3A交付hash、批末独立复核。CP2A仍欠真实Player脚本编译证据;CP2B先核线上路由/身份合同并完整评审,不开FishingStage;CP3其余业务、CP4旧Mgr停用、CP5闲置实现清理和流程图继续排队。本机服务器代码不访问或修改。单编码端、每检查点记日志;`http://s101.local:18080/`、仅 Unity CLI Loop、暂不打包、保留工作树。
> **2026-09-29 M2 CP2A-C12 下一步**:已审 `_cheatingScore` 单文件补审已编码并完成合成/Editor 回归;Unity CLI Loop Restricted 阻止不打包 Player 脚本编译,保留 Player 未验与 CP2A 待终审,不绕过安全规则、不自行打包。单编码端继续;CP2B/CP3 先只读完成完整方案与精确文件白名单,经独立评审及主会话裁决后再编码。每检查点更新日志,最终清闲置实现;固定 `http://s101.local:18080/`,只用 Unity CLI Loop,不用 UnitySkills,保留工作树。
> **2026-09-29 M2 CP2A-C11 下一步**:按[预复核主会话裁决](B3BatchMigration/M2/M2-CP2A独立实施预复核主会话裁决-2026-09-29.md)在已审单文件边界内修复 `_cheatingScore` 条件编译,并用 Unity CLI Loop 寻找不打包的真实 Player 脚本编译证据;如不可用则明确保持 Player 未验,CP2A 继续待终审。CP2B/CP3 并行端先只读补齐业务动作/依赖/文件归属矩阵与完整方案,独立评审和主会话裁决前不编码;[加速/双端裁决](B3BatchMigration/M2/M2-加速与双Agent并行方案主会话可行性裁决-2026-09-29.md)已落盘。每检查点更新日志,最终清闲置实现;正式地址固定 `http://s101.local:18080/`,只用 Unity CLI Loop,不用 UnitySkills,暂不打包,保留工作树。
> **2026-09-29 M2 CP2A-C9 实施中**:已按获批白名单接入正式登录/现存档/原handle/阶段闸及关闭,注销竞态再收紧;合成89组1962断言、ServiceHost 9组86断言通过,Unity CLI Loop Editor 0错误/269警告。[自验与原ZCode预复核输入](B3BatchMigration/M2/M2-CP2A实施自验与待复核边界-2026-09-29.md)已备。下一步取得真实 Player 编译证据并对既有 `_cheatingScore` 白名单外阻断先补审,再按报告逐条裁决。CP2A未关闭;未Play、未动正式账号、未打包,最终闲置实现清理仍未完成。
> **2026-09-29 M2 CP2A-C0**:原ZCode独立方案通过,主会话[37/37 hash核验及逐条裁决](B3BatchMigration/M2/M2-CP2A独立方案审查主会话裁决与实施边界-2026-09-29.md)完成;仅批准收窄后的12文件上限,排除新生命周期文件。下一步先合成红测再实施正式登录/原handle交接,仍须在FishingStage前停住;CP2B首场景及CP3–CP5未获批。本检查点未改生产代码。
> **2026-09-29 M2 CP2-D2**:用户确认首批仅101、102且已有KV档;首段只验正式登录/原handle交接,阻止跳场景。[CP2A完整候选方案](B3BatchMigration/M2/M2-CP2A正式登录与原句柄交接完整方案-待独立审查.md)、[原ZCode提示词](B3BatchMigration/M2/M2-CP2A原ZCode独立方案审查提示词.md)、[37项hash基线](B3BatchMigration/M2/M2-CP2A受审基线.json)已落盘并重算37/37一致。待原ZCode完整审查与主会话逐条裁决;CP2A未获编码批准,CP2B首场景及CP3–CP5开放。
> **2026-09-29 M2 CP2-D1**:首批账号策略已定为“仅已核准且已有 KV 档”。[只读设计输入](B3BatchMigration/M2/M2-CP2正式接线设计输入与新增阻断-2026-09-29.md)补出正常实例准入、首场景 Survey/Leaderboard 旧 PF 依赖和 Mail/Friend/AntiCheat/Club 路由;需明确 CP2 只验登录交接还是同批迁移首场景后,完成精确白名单/验收矩阵,交原 ZCode 完整审查并由主会话裁决。当前未获 CP2 生产编码批准。
> **2026-09-29 M2 CP1限定关闭**:原ZCode独立实施复核报告已落盘,主会话重核交付95/95 hash一致,并[逐项裁决](B3BatchMigration/M2/M2-CP1独立实施复核主会话裁决与限定关闭-2026-09-29.md);独立复跑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交付](B3BatchMigration/M2/M2-CP1实施交付与CP2输入-2026-09-29.md) · [原ZCode复核提示词](B3BatchMigration/M2/M2-CP1原ZCode独立实施复核提示词.md)。固定http://s101.local:18080/;不用UnitySkills,暂不打包。
### 以下为历史检查点(以上方为准)
> **2026-09-29 M2 CP1-1当前状态**:原ZCode修订2复审已核19/19 hash并逐项裁决,CP1已限定实施(Context+Coordinator共用加载、成功释放Guard后交接原handle、同步撤销);加载宿主首轮绿测84组1911断言,已记录红测及测试编译首败。正在补完并发/回归与Unity CLI Loop编译,尚未批末独立复核,CP1未关闭;CP2仅通过五类依赖盘点,仍待完整方案审查。见[主会话裁决](B3BatchMigration/M2/M2-修订2独立复审主会话裁决与CP1实施边界-2026-09-29.md)。正式地址http://s101.local:18080/,不用UnitySkills,暂不打包。
### 以下为历史检查点(以上方为准)
> **M2当前Todo(2026-09-29)**:
> - [x] 修订1独立审查报告受审hash 15/15核对,P2-1及三条P3逐项裁决;总路线接受,CP1–CP2暂不批准编码。[裁决](B3BatchMigration/M2/M2-修订1独立审查主会话裁决与新增阻断-2026-09-29.md)。
> - [x] 补查正式启动、登录、网络租约和31模块Player绑定阻断;落盘[修订2补审方案](B3BatchMigration/M2/M2-正式接线依赖补审方案-修订2-待评审.md)、[原ZCode提示词](B3BatchMigration/M2/M2-正式接线依赖补审提示词-修订2.md);受审基线19/19复算一致。
> - [ ] 原ZCode独立补审CP1最小原handle交接是否可独立实施及CP2前置范围;主会话核hash、逐项裁决后才能确定代码白名单。
> - [ ] 若批准,按检查点实施可复用的CP1/CP2、业务域调用替换、旧Mgr自动执行/直接SDK清零;每个检查点更新日志。最后凭证据清除闲置接口和无用代码,输出最终流程图。当前无M2生产代码批准。
> **M2当前待办(2026-09-29)**:[修订1完整方案](B3BatchMigration/M2/M2-先移植后优化完整方案-修订1-待独立审查.md)及[15项hash基线](B3BatchMigration/M2/M2-先移植后优化受审基线-修订1.json)已准备;请原ZCode按[提示词](B3BatchMigration/M2/M2-先移植后优化独立方案审查提示词-修订1.md)裁决总体路线与CP1–CP2可实施性。主会话收到报告后核hash、逐条裁决、补足白名单,获批才编码。已发现正式受控加载Guard与可写KVMgr冲突;不悄悄绕过Guard。后续按业务域连续迁移,完成后单独评估Guard优化并输出最终流程图。
> **最新迁移顺序(2026-09-29)**:先修订并完整评审“旧存档能力→KVMgr/调用方”的逐项迁移方案;实施阶段保持现有Guard检查与返回语义,按业务域验证,仅做必要KV合同适配;旧Mgr自动执行/直接SDK清零另列验收。迁移稳定后再决定是否需要Guard归属/目录/生命周期优化,不与迁移混做。旧R1先归位建议已撤回;M2代码尚未批准。见[策略](B3BatchMigration/M2/M2-管理器同生态位替代策略-2026-09-29.md)。
> **当前唯一有效状态(2026-09-29,B02修订2四入口限定关闭,M2合并设计底稿进行中)**:原ZCode独立实施复核PASS;主会话重算44/44交付hash一致,逐条裁决六项和唯一P3,澄清审核者独立复跑实际38组497断言,见[关闭裁决](B3BatchMigration/B02/B02-四入口实施复核裁决与限定关闭.md)。KVMgr已接管原四个固定handle KV入口;旧PF方法、Instance/自动生命周期、其余业务调用、正式默认KV、直接SDK仍未迁移。M2当前只读重扫224候选/81文件,并形成[调用矩阵](B3BatchMigration/M2/M2-当前调用矩阵-待核证.json)和[设计底稿](B3BatchMigration/M2/M2-旧方法与调用方合并设计底稿.md);发现正式固定句柄交接与31模块Player绑定尚缺。**下一步在主会话侧**:补全业务上游、Owner交接和白名单,完成一份合并方案送原ZCode评审;未获批前不改下一段生产代码。固定http://s101.local:18080/,Unity CLI Loop,不用UnitySkills、不打包。
> **M2复审后当前执行序列**:原ZCode接受层级纠偏但未批准底稿编码;主会话[逐项裁决与R0–R6修复Todo](B3BatchMigration/M2/M2-架构复审裁决与修复顺序-2026-09-29.md)已落盘,含当前/目标图。R0完成,R1完整方案待做,随后一次独立方案审查与裁决;不新增第二套guard,不以224语法候选拆224项审批。
> **同生态位目标补充**:用户要求KVMgr完整接管PlayFabMgr对外存档能力。[成员去向与顺序](B3BatchMigration/M2/M2-管理器同生态位替代策略-2026-09-29.md)已纳入R1输入;不能机械复制PF合档/生命周期/SDK发送,旧`null/void/bool`不足以承载KV失败与Unknown。现有最低保护随替换保持,长期恢复等正式启用前收尾。
## 本轮待办:101完整业务包与最小修正
- [x] P2-α-A/B/C/D限定关闭,原101完整业务包方案已评审裁决。
- [x] 101真实登录与55键加载成功;当前手动接管登录配置已恢复。
- [x] 定位界面不可见、活动不可用但历史引导指针残留;用户不需要完成不存在入口的药水引导。
- [x] 排除只放宽钓鱼门方案:AddIndex(true)会误完成残留引导;完成源头延后恢复的两文件最小方案及19项hash。
- [x] 独立方案审查PASS;主会话19/19 hash及逐项裁决完成,两文件实施获批。
- [x] 原会话closed、许可退役;实际Init红测→两文件修正→约定回归与双编译全部通过。
- [x] 新进程55088/v3真实101登录;引导指针为空但原存档保持,092018Z动作前快照/cache及无待存核验完成。
- [x] 动作前快照→用户唯一一次抛竿/收鱼/收下→正常退出→新进程恢复55/55匹配;药水引导原存档保持。
- [x] 两许可归档、15claim保留,合并实施交付与复核提示词落盘。
- [x] 独立实施复核PASS→主会话120/120 hash/长度核对、七项及P3逐条裁决→本101业务包限定关闭。
- [x] 下一包候选完整方案与提示词、受审基线已准备:单账号连续普通钓鱼,7个运行文件边界,保留会话许可及重启式重登。
- [x] 流程续裁决完成,转向B/C批量迁移;调用分类及B01整批方案/提示词已准备。
- [x] B01已完成方案审查、实施和独立复核,主会话限定关闭。
- [x] B02修订2总体路线及四入口范围经原ZCode审查;实施复核PASS,主会话44/44 hash与逐条裁决完成,四入口限定关闭。见[关闭裁决](B3BatchMigration/B02/B02-四入口实施复核裁决与限定关闭.md)。
- [ ] M2旧方法/调用方合并设计:当前224候选/81文件只读重扫已完成,[矩阵](B3BatchMigration/M2/M2-当前调用矩阵-待核证.json)与[底稿](B3BatchMigration/M2/M2-旧方法与调用方合并设计底稿.md)已落盘;需补齐固定Owner正式交接、业务上游和可审白名单,再交原ZCode完整方案审查,未批准下一段生产代码。
- [ ] M2层级纠偏:按[复审裁决与依赖图](B3BatchMigration/M2/M2-架构复审裁决与修复顺序-2026-09-29.md)归位KVMgr、保留现有单一guard并明确存储模块归属;纳入同一完整方案审查,不另起小批、不先改B02封存源码。
- [ ] 全量迁移政策、26模块外键/5未定位键、4B3B/C、StorageError/L7、完整4C/4D/G4仍开放。
### 以下为历史检查点(以最上方为准)
> **当前唯一有效状态(2026-09-28,P2-α-B已正式关闭)**:独立实施复核接受,主会话1334/1334 hash一致,当前绿测DLL与交付hash/495616字节一致;八项已逐条裁决,唯一P3的VT/FF/NBSP负例已在原测试覆盖,无需补代码或重跑。见[关闭裁决](P2AlphaNullCompatibility/B5-实施复核裁决与关闭.md)。两类历史空态兼容已关闭,原101/102本地样本均Valid;不等于101真实启用或整体迁移完成。复核报告“先构建后复跑”的过程偏差已说明,原证据保持。**下一步在主会话侧,处理整体P2-α剩余范围与产品政策**,见[剩余迁移条件与下一步清单](P2-alpha剩余迁移条件与下一步清单-2026-09-28.md);不重复A/B复审,不自动导入101/覆盖102。4C2、P2-α-A/B均限定关闭;4B3B/C、完整P2-α/4C/4D/G4及最终平台验收仍未完成。本轮仅文档/hash,无Unity运行/正式接口/代码修改/打包。固定http://s101.local:18080/及Unity CLI Loop。
### 以下为历史检查点(以最上方为准)
> **2026-09-28运行准备更新**:第四次授权仍有效。69744因缺本地API覆盖配置,在登录前固定地址门停止,无扣费;用户明确要求修改登录地址,已仅设置EventApiURL=http://s101.local:18080/并核验。许可归档,9个claimed保留。新进程44848已加载完成,等待用户启动CLI Loop;最新备份024346Z与023420Z全部45键相同,付费次数仍为0。
> **当前最新(2026-09-28)**:用户已授权第四次真实运行,主会话已开始准备,不再等待运行授权。修复源码3项hash核对一致;新备份023420Z与第三次结束后的102全部45键相同(体力393、金币215288)。用户要求重启后,4948已正常退出,新Unity进程69744重新打开并加载中,待CLI连接;尚未创建许可/进入Play/扣费。目标:一次自然收鱼、收下返回主页、正常退出、新进程恢复;失败不自动重试。
### 以下为前次状态(以最上方为准)
> **当前最新(2026-09-24)**:第三次真实运行奖励服务器侧全链确认;面板点击穿透+监听缺失双缺陷已红绿修复。待用户授权第四次真实运行验证完整闭环。见[第三次尝试记录](阶段4C2第三次真实尝试与奖励确认记录-2026-09-24.md)、[面板修复裁决与实施记录](阶段4C2奖励面板点击穿透修复裁决与实施记录-2026-09-24.md)。
## 当前有效状态:奖励服务器侧闭环成功、面板UI已修复;待第四次真实运行(2026-09-24)
- [x] run 29520:门通过→扣费确认→ending段(controller修复生效)→confirmed→presented;对账鱼档/gold+1643/战令仅3键变化。
- [x] 面板双缺陷(P1监听未注册+点击穿透)独立审查裁决并红绿修复;45组171断言、双编译0错误、diff两处。
- [ ] **下一步(需用户授权)**:第四次真实运行完整闭环(抛竿→收线→收下→返回主页)+新进程恢复验证。
- [ ] 完整4C2验收、独立实施复核;4C/完整4C/G4未关闭。
### 以下为历史快照(以上方为准)
## 当前有效状态:收线取消缺陷已修复并验证;待用户授权真实收鱼闭环运行(2026-09-24)
- [x] 诊断补充实施(四项验收);第二次真实尝试(门通过、扣费确认、收线误取消实证)。
- [x] controller disabled缺陷修复:独立审查(10/10 hash、P2×1/P3×4采纳)→守卫一行+验证两组→红绿证据→45组171断言全绿→双编译0错误→diff最小。
- [ ] **下一步(需用户授权)**:新进程+新备份真实收鱼闭环(拉杆→收鱼→奖励保存→新进程恢复);不自动连续付费、不补发。
- [ ] 完整4C2验收、独立实施复核;4C/完整4C/G4未关闭。
### 以下为历史快照(以上方为准)
## 当前有效状态:第二次真实尝试门通过、扣费确认,收线18秒被controller disabled取消(2026-09-24)
新进程62216一次真实抛竿:合并门通过(上次拦截为随机鱼差异,诊断消息未触发)、扣费票据确认(413→403/112→122)、战斗18秒后 `FishingUpdateSys.OnDisable→CancelReward` 把瞬时禁用当取消退出。对账仅两键、无奖励、不补发;许可已退役。
- [x] 诊断补充审查裁决与限定实施(diff仅51c51、27断言、SERVICE_HOST exit0、Editor 0错误)。
- [x] 第二次真实尝试全流程(三备份/新进程/v3许可/precast/一次抛竿/对账归档)。
- [ ] **当前缺陷**:controller disabled误取消(禁用源未定位)——先方案评审(区分瞬时禁用与真实退出),裁决后编码回归。
- [ ] 修复验证后申请新真实运行授权;完成真实收鱼奖励闭环、新进程恢复、最终独立实施复核;4C2/完整4C/G4未关闭。
### 以下为历史快照(以上方为准)
## 当前有效状态:4C2扣费前诊断补充已实施,四项验收通过;待用户授权下一次真实运行(2026-09-24)
[独立审查](阶段4C2扣费前拦截诊断方案独立审查-2026-09-24.md)18/18 hash一致、无P1;[裁决与实施批准](阶段4C2扣费前拦截诊断审查裁决与实施批准-2026-09-24.md)逐条接受并实施完成。
- [x] 独立审查、主会话18/18 hash复核与逐条裁决(P2×2/P3×4全部采纳)。
- [x] 生产唯一改动FishingBehaviorB.cs:51补六字段(null显式"null");slice/shim同步(P2-2)。
- [x] 四项验收:raw diff仅51c51(混合行尾保留)、ConsumeControlTests 27断言、SERVICE_HOST exit0/0错误、uloop Editor编译0错误。证据KVFishingRewardTests/diagnostic-impl/。
- [ ] **下一步(需用户授权)**:新Unity进程+新备份+一次真实抛竿,读六字段判定七条件中哪项触发;不自动连续付费、不重导102、不删claimed。
- [ ] 诊断结果归因:自然命中→保留原门并归档;实现错误→另按已审范围评审修复。
- [ ] 真实收鱼奖励/新进程恢复及最终独立实施复核未完成;4C2/完整4C/G4未关闭。
本轮无正式服访问、无KV写、未动许可与claimed。保留PF域名解析错误、StorageError根因未定及默认非Editor历史编译错误。固定http://s101.local:18080/,Unity CLI Loop,不用UnitySkills、不打包。
### 以下为历史快照(以上方为准)
## 当前有效状态:4C2首次尝试扣费前被拦截,待最小诊断方案审查(2026-09-24)
[真实尝试记录](阶段4C2首次真实尝试与扣费前拦截记录-2026-09-24.md):新进程42620,用户只操作一次,在原“普通付费鱼”合并门停止,尚未进入新增奖励准入。动作前后102全部45键相同,体力393、energyRM112,未扣费/收鱼/发奖;不自动补跑。本轮未改生产源码。
- [x] 原方案及引导补充完整评审裁决、限定实施;奖励43组168、4C1本轮19组81离线通过。
- [x] 新进程登录、实时前置观察;登录跨日3键按原源码单独归因,动作前基线已冻结。
- [x] 一次真实操作、失败自动关闭、独立服务器对账;许可归档、6个claimed保留,playing=false/ready=false/无permit。
- [ ] 当前责任评审侧:审查[一处拒绝信息补充方案](阶段4C2扣费前拦截诊断最小方案-待评审-2026-09-24.md),使用[审查提示词](其他AI审查提示词-4C2扣费前拦截诊断-2026-09-24.md)。只拟补六字段,不改变准入;未编码。
- [ ] 主会话核hash并逐条裁决后,完成诊断再决定下一次运行范围。当前消息不足以判定具体条件,不称已定位根因。
- [ ] 真实收鱼奖励/新进程恢复及最终独立实施复核尚未完成;4C2/完整4C/G4未关闭。
本轮独立备份工具6登录+6Get、Set/Delete=0;游戏已有4次登录保存受理,不能称游戏只读。保留3条PF域名解析错误、此前StorageError根因未定及默认非Editor历史编译错误。固定http://s101.local:18080/,Unity CLI Loop,不用UnitySkills、不打包。
### 以下为历史快照(以上方为准)
## 当前有效状态:4C2已限定实施并补验;引导准入补充方案待评审(2026-09-24)
原4C2独立方案审查已完成319项hash核对、九结论与四P3逐条裁决,并按7旧文件+2新Editor源码实施。当前不是“原方案待评审”,也不是“4C2已完成”。详见[实施进展与准入阻塞](阶段4C2实施进展与准入阻塞-2026-09-24.md)。
- [x] v3一次费用+奖励接线,最终鱼档/主档保存、原票据确认后展示及重入/取消保护。
- [x] 奖励固定25组85断言、原公式四组对照、当前消费入口27/控制器9断言;既有4C1、4B2、B3A、装备、加载、退出回归通过。
- [x] Editor最终0错误269警告,SERVICE_HOST通过;默认非Editor历史_cheatingScore错误仍未解决。
- [ ] C1/C2仍有原展示红测、Map Schema、实景生命周期、完整准入/配置漂移补验;不宣称全部验收通过。
- [ ] **当前评审侧**:审查[引导准入最小补充方案](阶段4C2引导准入最小补充方案-待评审-2026-09-24.md),使用[独立评审提示词](其他AI审查提示词-4C2引导准入补充方案-2026-09-24.md)。原门要求11组引导全部完成,真实102缺7个特殊技能组,被实际预检拒绝。
- [ ] 主会话收到报告后核hash、逐条裁决,才改准入、完成补验并进入真实一次收鱼/保存/新进程恢复;C3/C4和最终实施复核未完成。
只读备份20260924T084836Z:101空、102仍45键,与上一轮逐值相同;本轮有登录/Get、无KV写、无游戏运行许可或新消费。Unity空闲、Enabled/Ready=false、5个claimed保留。File.Replace沙箱访问拒绝的离线回归经批准沙箱外通过;另一次Unity StorageError复跑通过但根因未定,见报告,不抹去首败。
固定http://s101.local:18080/,Unity CLI Loop,不用UnitySkills、不打包。不改存档完成引导、不重导102、不删claimed、不自动重试收费。4C1保持关闭,4C2/完整4C/G4未关闭。
### 以下为历史快照(以最上方当前状态为准)
## 当前有效状态:4C2方案审查已裁决,限定实施与固定测试进行中(2026-09-24)
独立方案审查九项结论和四条P3已逐条接受,编码前319/319受审hash一致,5项预期缺失核实,7旧源码快照保留。详见[裁决与实施记录](阶段4C2方案审查裁决与实施记录-2026-09-24.md)。当前责任在主会话。
- [x] C0:完整评审裁决、白名单及基线冻结。
- [x] C1已实现:v3独立奖励动作、三段同步票据捕获、鱼数量最终保存、主档最终保存、原票据确认后展示及取消保护。
- [x] 初轮固定验证:Unity 16组37断言通过;v3许可12项通过;未破纪录鱼漏存及面板重复OnShow红测已保存。
- [ ] C1/C2仍进行:真实数据公式/事件与实际控制流补验、重复面板修复绿测、既有回归及最终编译。初轮结果不代表全部验收。
- [ ] C3:新备份/真实运行准入、一次真实UI收鱼及奖励保存、新进程恢复,尚未执行。
- [ ] C4:完整交付与独立实施复核,尚未完成。4C2/完整4C/G4未关闭。
本轮尚未启用真实运行许可、未发生新真实消费。固定http://s101.local:18080/;Unity CLI Loop,不用UnitySkills,不打包。不重导102原45键,不删claimed,不自动重复扣费或补发。
### 以下为历史快照(以最上方当前状态为准)
## 当前有效状态:4C1已关闭;4C2最小方案完成,待独立方案评审(2026-09-24)
用户已要求准备拉杆收鱼及奖励保存的最小方案、完整评审后实施。[4C2完整方案](阶段4C2拉杆收鱼与奖励保存最小方案-待评审-2026-09-24.md)及[评审提示词](其他AI审查提示词-4C2拉杆收鱼与奖励保存方案-2026-09-24.md)已落盘。
- [x] 追踪真实拉杆→PerfectStrikeCount→FishEnd→奖励面板→次数/金币/鱼种/任务保存,确认未破纪录鱼数量可能漏存的现有缺口。
- [x] 最小方案:复用原公式,S1/S2/S3同步段记录,不跨await捕获;最终鱼种和主档保存;v3一次完整动作,旧许可不开放领奖。
- [x] 19条GetFishCount配置及历史102数据离线核查、明确活动/引导/额外奖励准入、7旧源码白名单、12项验收和C0~C4检查点、自审与受审hash。
- [ ] **当前评审侧**:新增《阶段4C2拉杆收鱼与奖励保存方案独立审查-2026-09-24.md》,核hash并回答提示词九项;不改共享文档。
- [ ] **随后主会话**:核hash→逐条裁决→通过后限定实施及真实一次新消费/奖励/重启恢复;若P1/P2或白名单变化先修订方案。
当前仅完成设计,未写4C2源码、未运行测试或Unity、未发正式请求、未启用许可。4C1不需再复审;4C2/完整4C/G4未完成。新run要用新备份和真实服务时间通过准入,不能把旧13次/393体力当作当前保证。
固定http://s101.local:18080/,Unity CLI Loop,不用UnitySkills,暂不打包;沿用101/102授权,不重导102原45键、不删claimed、不伪造鱼获或自动重复消费。
### 以下为历史快照(以最上方当前状态为准)
## 当前有效状态:限定4C1正式关闭,下一步由主会话准备后续方案(2026-09-24)
[独立实施复核](阶段4C1普通钓鱼消费确认实施独立复核-2026-09-24.md)接受交付;主会话172项受审hash全部一致,八项回答及四条P3已[逐条裁决并关闭](阶段4C1实施复核裁决与关闭-2026-09-24.md)。无阻塞项,无需再次复审本期。
- [x] 4C1完整方案评审、限定实施、19组81断言及实际入口27断言、既有回归和交付归档。
- [x] 102一次真实UI抛竿扣费403→393、累计消耗102→112,原最终票据确认后可拉杆;新进程新缓存恢复、正常退出Error=0、最终45键与消费后逐值相同。
- [x] 独立实施复核、主会话核hash、Q1~Q8及P3-1~4裁决,限定4C1正式关闭。
- [ ] **主会话下一步**:按最小改动优先准备拉杆收鱼/奖励保存的候选最小方案;完整评审和裁决后才实施,当前无下一期编码批准。
- [ ] 完整捕鱼奖励、转盘、连续消费、热换号、全B/C、P2-α、身份/外围、G4及最终包仍未完成。
保留边界:首跑退出有两条关联错误,单条件修复经实际OnDisable红绿回归接受,未第二次真实收费验证;Editor在游戏closed后被工具超时强杀,不算Editor优雅退出通过;默认非Editor既有_cheatingScore编译错误仍开放。恢复run未再次消费,但有正常登录同值保存受理,不能写游戏全程只读或总Set=0。
本次关闭无源码修改、无Unity重跑、无正式请求。许可保持归档、claimed保留、102原45键不重导。固定http://s101.local:18080/,Unity CLI Loop,不用UnitySkills,暂不打包。关闭仅覆盖一次扣费到可拉杆及重启恢复,不开放普通用户。
### 以下为历史快照(以最上方当前状态为准)
## 当前有效状态:4C1限定实施与真实恢复完成,待独立实施复核(2026-09-24)
[实施交付与验收](阶段4C1普通钓鱼消费确认实施交付与验收-2026-09-24.md)已落盘。仅普通收费抛竿到可拉杆:102体力403→393、累计消耗102→112;原主档/战令最终票据Confirmed。新进程41828、新缓存恢复393/112、消费成就112与两任务10,正常退出Error=0;最终45键与消费后逐值相同,101仍空。
- [x] C0:独立方案34hash一致,8结论及4P3逐项裁决,25源码快照。
- [x] C1/C2:4旧源码最小接线+固定测试host;最终19组81断言、实际消费入口27断言、许可和既有B2/B3A/Unity加载/装备/退出回归通过。
- [x] C3:一次真实UI消费→可拉杆(未拉杆发奖)→服务器两键对账→新进程恢复→正常退出→最终45键一致。许可归档,5个claimed保留,Unity空闲。
- [x] C4作者交付:代码自审、完整证据及[独立实施复核提示词](其他AI审查提示词-4C1实施独立复核-2026-09-24.md)、KVFishingConsumeTests/implementation-review-hashes.json。
- [ ] **当前评审侧**:实施独立复核;重点裁定首跑正常退出误触发Fault/重复Quit空引用的单条件修复证据,以及Editor进程退出工具自动强杀的限制。
- [ ] 主会话收到报告后核hash、逐项裁决,才能关闭4C1;当前不重复扣费、不先开下一消费分期。
必须保留的限制:首跑正常Quit出现两条关联错误,已通过实际OnDisable红绿回归修复(19组81通过),未第二次收费重跑;新进程恢复与正常退出零错误。旧Editor在游戏closed后被CLI正常关闭超时自动强杀,不算Editor优雅退出通过。默认非Editor编译的原有_cheatingScore错误前后相同,未越界修;Editor/SERVICE_HOST编译通过。详见交付报告§5。
正式地址http://s101.local:18080/;Unity CLI Loop,不用UnitySkills、未打包。102原45键不得重导;本轮只改两键、无鱼获奖励。R1保持关闭;完整4C/捕鱼奖励/转盘/热换号/G4/身份外围与最终包仍未完成。
### 以下为历史快照(当前以本节为准)
## 当前有效状态:R1已关闭;4C1普通钓鱼消费确认方案待独立审查(2026-09-24)
本会话已完成[4C1完整方案](阶段4C1普通钓鱼消费确认方案-待评审-2026-09-24.md):一次普通收费抛竿扣体力、原动作最终存档确认、开放拉杆、正常退出与新进程恢复。首轮不点击拉杆结算鱼获,不开放转盘或热换号。范围选择沿用用户最小改动/真实游戏优先要求及本轮“本会话继续”的指令。
- [x] R1关闭复验56项核hash与9项裁决,保持关闭。
- [x] 4C1同步消费/恢复计时/任务事件写入矩阵、动作与生命周期合同、最终原票据规则、失败边界、方法白名单和10项验收设计完成。
- [x] 自审核对FishingUpdateSys.Start自动抛竿及CastBait的await/Tween继续点;补入方案,不把直接调用消费当真实UI验收。
- [x] [独立审查提示词](其他AI审查提示词-4C1普通钓鱼消费确认-2026-09-24.md)及KVFishingConsumeDesign/plan-review-hashes.json已准备。
- [ ] **当前评审侧**:独立审查4C1方案,重点同key中间替代/最终原票据、事件副作用、部分提交和真实run边界;新增指定报告,不修改共享文档。
- [ ] 主会话收到审查后核hash/逐条裁决;通过后才限定编码、合成回归和真实102消费验证。
当前没有4C1代码、真实消费或新的正式请求;没有启动Unity。原45键不能重导,claimed保留。全B/C、转盘、鱼获发奖、4C整体、G4、身份/外围和最终包保持未完成。固定http://s101.local:18080/,Unity CLI Loop,不用UnitySkills,暂不打包。
### 以下为历史快照(当前以本节为准)
## 当前有效状态:R1关闭复验已裁决;进入4C1范围与方案准备(2026-09-24)
[R1关闭复验](阶段4R1关闭复验-2026-09-24.md)已读完,主会话重算原56项hash全部一致,9项意见已逐条接受,无新增P1/P2。R1保持关闭,不再重复实施或复审。详见[复验裁决与后续最小范围](阶段4R1复验裁决与后续最小范围-2026-09-24.md)。
- [x] R1复验报告核hash、逐项裁决及历史证据保留。
- [x] 下一步源码范围核查:捕鱼与转盘是两个立即保存调用方;捕鱼不等待确认且待发体力副本可能与newData冲突。
- [ ] 主会话完成4C1普通钓鱼最小消费方案:恢复计时/事件副作用写入矩阵、原动作票据、失败合同、精确白名单与测试矩阵。当前材料是范围核查,不是完整实施方案。
- [ ] 4C1完整方案独立评审→逐项裁决→限定实施。当前未批准编码,也未开放消费;无需评审侧再次检查R1。
候选优先普通钓鱼,沿用单账号/重启式重登/最少改动;已向用户提供范围选择,未收到新选择时按此候选准备。全B/C热换号、转盘、4C整体、P2-α、身份/外围、G4和最终包仍未完成。本轮无游戏代码修改、无服务器请求、未启动Unity。正式地址http://s101.local:18080/,Unity CLI Loop,不用UnitySkills,暂不打包。
### 以下为历史快照(当前以本节为准)
## 当前有效状态:R1正式关闭,两处运行报错修复并验证(2026-09-24)
[独立实施复核](阶段4最小真实玩法闭环R1实施独立复核-2026-09-24.md)的210项基线一致,五项回答及P2-1/P3-1/P3-2已逐条裁决;见[修复验收与关闭裁决](阶段4R1报错修复验收与关闭裁决-2026-09-24.md)。
- [x] 建筑缺键默认恢复为字符串0;原getter正常读取,不新增服务器键。
- [x] Editor KV测试模式正常退出不再自动重进;排水Ready后自动停止Play,保留claimed。普通退出行为保持。
- [x] 4B2全量75组、B3A全量13组、真实QuitAct条件测试、Unity M01/B2-20/装备链及许可均通过;编译0错误。
- [x] 新Unity101820真实登录102,建筑数据/等级0、装备30003与主要货币一致,正常退出自动结束Play,无原两类错误。
- [x] 前后只读对账:101仍空、102原45键逐值完全相同;许可归档,三个claimed保留,Unity已正常退出。
- [x] R1最小单账号真实存档闭环关闭;不必再重复上一轮R1实施复核。
- [ ] 整体4B3/G4、完整B/C热换号、4C、P2-α存量档专项、身份/外围及最终包仍未完成;下一步先依当前“最小改动、先跑起来”目标收敛后续范围,完整方案评审后编码。
本轮生产修复只有Schema一个默认值及QuitAct一个Editor模式分支。建筑修订有独立批准,退出补充由主会话编码前完整评审,二者审批来源有区别。签到关闭回调测试辅助边界保留。退出CLI await超时和一次不支持命令的工具错误已如实记录;闭环成功依赖独立事件/状态/对账证据,不把工具异常抹去。
固定http://s101.local:18080/;Unity CLI Loop、不用UnitySkills、未打包。无活动permit,102禁止重复导入,下次运行必须新进程。
### 以下为历史快照(当前以本节为准)
## 当前有效状态:102真实装备与新进程恢复通过;R1待实施复核(2026-09-24)
[102兼容独立审查](阶段4最小真实玩法闭环102数据与cdTime兼容独立审查-2026-09-24.md)已完成92项hash核对及[逐条裁决](阶段4最小真实玩法闭环102兼容审查裁决与实施批准-2026-09-24.md)。本轮业务源码仅Advert单字段解码兼容;102原45键导入及真实核心闭环通过,未改原数据、排行榜或经济算法。
- [x] cdTime显式null兼容;专项16、4B2离线75组、Unity M04/B2-20/B3A、装备链9组及许可测试通过。
- [x] 102原档45键一次Set初始化,导入前空基线/真实服务器时间Schema/导入后逐键矩阵通过。禁止再次运行导入。
- [x] 真实登录→鱼竿界面装备20001至30003→原票据Confirmed→服务器Get确认→正常QuitStage关闭。
- [x] 正常退出Unity54200→新进程120896、新缓存(登录前不存在)恢复30003→再次正常关闭。最终服务器值与首次装备后完全一致,101仍空。
- [ ] **当前评审侧**:依据[102真实运行记录及末尾提示词](阶段4最小真实玩法闭环102真实运行记录-2026-09-24.md)开展R1实施复核,同时裁定建筑字段缺键默认值的单方法最小修订建议。该修订尚未编码。
- [ ] 主会话收到复核后核hash/逐条裁决,修复已批准问题并验证,再正式关闭R1;整体4B3/G4、4C、热换号和P2-α仍未完成。
真实运行发现排行榜在缺InfiniteBuildingData时遇到null,已定位Schema默认值与旧业务默认0不一致;不能因装备闭环通过忽略。签到弹窗通过已有关闭回调移除、未领奖;鱼竿操作使用实际UI点击。详细限制和首次失败证据均保留。
最终playing=false、Ready=false,permit已归档,两个进程claimed保留;不再有活动运行许可。服务器仍45键,实际变化3键,主要货币未变。CLI重启连接问题已经解决,无需用户再操作服务。固定http://s101.local:18080/;Unity CLI Loop,不用UnitySkills,未打包。
### 以下为历史快照(当前以本节为准)
## 当前有效状态:R1最小接线已编写与初验,真实闭环未完成(2026-09-24)
R1原方案已完整审查并逐条裁决,见[实施批准](阶段4最小真实玩法闭环方案审查裁决与实施批准-2026-09-24.md)。本轮已编写白名单接线:10个旧源码增加152行/删除2行,新增3源码及meta;不是全量业务重构。B3A四入口保持原始字节。
**实际阻塞:101/102现有KV均为空,且M24对象缺登录期注册。** 用户已允许沿用两账号;已只读备份,没有KV写入、自动PF迁移或造档。M24最小注册补丁尚未执行,具体补丁和独立审查提示词见[实施进度与最小补充审查](阶段4最小真实玩法闭环-实施进度与最小补充审查-2026-09-24.md)。
- [x] R1-Review/C0:70项hash核对、九合同及2P2/3P3裁决、源码快照、账号授权、现有KV备份。
- [x] R1-C1/C2已做部分:白名单接线、许可15断言、默认服务双条件各8组73断言、4A/4B1/4B2/4B3A离线回归及Unity既有固定用例通过。
- [ ] R1-C1/C2剩余:M24最小注册差异独立审查→主会话裁决/实施;新装备链专用验证仍缺(动态脚本被CLI Restricted拦截,未执行,不绕过)。
- [ ] R1-数据来源:101/102 KV均0键;等待完整KV备份来源,或用户选择先只读检查同账号PF档,再列实际导入key/摘要/恢复范围。账号许可无需重复询问。
- [ ] R1-C3:真实UI装备、全部原票据Confirmed、Unity重启/新缓存恢复、独立实施复核及关闭,均未完成。
最终Unity编译0错误、270警告(完整原输出保留,新R1文件无警告);未启用运行许可、未PlayMode、不打包。成功正式请求仅2登录+2Get,Set/Delete=0。责任:评审侧审M24具体差异;数据来源等待用户选择;主会话负责裁决、实施和后续验证。4B1/4B2/4B3A已关闭;整体4B3/G4、4C、热换号及P2-α真实迁移仍未完成。正式地址http://s101.local:18080/,Unity CLI Loop,不用UnitySkills。
### 以下为历史快照(当前以本节为准)
## 当前有效状态:4B3A已关闭;最小真实玩法闭环R1方案待独立审查(2026-09-24)
4B3A独立复核接受、无P1/P2;主会话320项hash一致,19项验收及三条P3均已裁决,见[关闭裁决](阶段4B3A实施复核裁决与关闭-2026-09-24.md)。无需再复审A,历史证据保留。
用户已确认优先真实游戏内单账号闭环,重启游戏后重登,游戏内换号留后续。已完成[最小接入R1方案](阶段4最小真实玩法闭环方案-待评审-2026-09-24.md),评审提示词在该文件§7;[源码核查](阶段4最小真实玩法闭环-范围与接线核查-2026-09-24.md)保留设计依据。代表操作为装备已拥有鱼竿,实际保存整个NewPlayerDataDic;复用正常UserService API会话、4A Bridge及4B2 Schema/Transaction,暂不改B2验证工厂或全面改写81文件。
### 当前todoItem与责任
- [x] B3A-19:独立复核、核hash、逐条裁决与正式关闭。
- [x] R1-D0:用户目标及单账号重启限制确认,真实装备/启动/加载/退出调用链核查。
- [x] R1-D1:一次合并接入方案、精确白名单、8项验收、限定自审及受审hash;同文§7含独立评审提示词。
- [ ] **当前外部评审侧**:审R1范围调整和白名单实施合同,新增《阶段4最小真实玩法闭环方案独立审查-2026-09-24.md》;随后主会话核hash逐条裁决。
- [ ] R1实施/真实Unity闭环;编码须评审通过,真实写之前须确认专用账号、全档fixture及备份/恢复范围。没有这些信息仍可先审方案。
- [ ] 原B/C完整热换号/业务隔离、4C、P2-α、身份、tickets、4D/G4、外围和最终包保持未完成。KVSync/3C间歇问题保持开放。
4B1/4B2/4B3A已关闭,4B3整体及G4未通过。R1是待审设计,未编码,未启动真实游戏/正式请求。正式地址http://s101.local:18080/;Unity CLI Loop,不用UnitySkills,暂不打包。新开发依据完整方案评审结果;无需评审的检查点自动推进。
### 以下为历史快照(当前以本节为准)
## 当前有效状态:4B3A已关闭;最小真实玩法闭环方案准备(2026-09-24)
[独立实施复核](阶段4B3A独立实施复核-2026-09-24.md)接受交付、无P1/P2;主会话重算320项hash全部一致,逐条裁决B3A-01~19及三条新P3,见[关闭裁决](阶段4B3A实施复核裁决与关闭-2026-09-24.md)。PlayFabMgr精确剥离新增块后与原始快照字节完全一致,不归一换行。A无需再复审;历史测试与审查证据保留。
用户最新优先级:真实游戏先跑通一条“登录→加载→修改→保存→重登恢复”链路,最小改动、少改业务逻辑。已开始[范围与接线核查](阶段4最小真实玩法闭环-范围与接线核查-2026-09-24.md),代表操作建议装备已拥有鱼竿;实际保存整个NewPlayerDataDic,不能当成独立key替换。原B/C先做范围收敛,不默认逐业务全面重构;新完整接入方案尚未评审,不能直接开kv开关。
### 当前todoItem与责任
- [x] 4B3A-C0~C4:设计裁决、实现、自验、独立实施复核、320项hash及关闭裁决。
- [x] B3A-19:正式关闭;三P3裁决为分析.cs避开工程扫描树、原始快照不归一换行、最终包补链接证据。
- [x] 最小路径准备:用户明确真实游戏闭环;已追踪装备入口→核心数据→统一facade及受控加载限制。
- [ ] **主会话继续完整接入设计**:启动顺序与真实31对象加载、固定句柄发布与统一保存、退出/重登及测试数据边界;用户已确认单账号运行、重启式重登,游戏内换号留后续。
- [ ] 合并方案独立评审→主会话裁决→限定实现与真实游戏验收;B/C当前不获编码批准。
- [ ] KVSync StorageError、3C L7根因定位;P2-α真实档专项与产品确认;4C、身份、tickets、4D/G4及外围迁移与最终包。
4B1/4B2/4B3A已关闭,4B3整体与G4未完成。真实玩法KV尚未接通。正式地址http://s101.local:18080/,Unity CLI Loop,不用UnitySkills,暂不打包。本轮仅核查与文档裁决,无生产代码变更或正式服访问;不因关闭流程重复开发/回归A。
### 以下为历史快照(当前以本节为准)
## 当前有效状态:4B3A实现与自验完成,待独立实施复核(2026-09-24)
4B3分期与A方案独立审查双PASS,主会话已核对39项材料+2101项源码hash,逐条裁决九项合同和四条P3并[批准限定A实施](阶段4B3分期与4B3A方案审查裁决与实施批准-2026-09-24.md)。检查点0~3及检查点4主会话交付部分已完成,见[交付矩阵](阶段4B3A交付与验收矩阵-2026-09-24.md)、[限定自审](阶段4B3A限定代码自审-2026-09-24.md)与[实施记录](阶段4B3A实施记录-2026-09-24.md)。
改动内容:PlayFabMgr新增固定句柄Read/Write/Flush/Wait四入口,新增键读取三态结果及两个Editor验证文件。2101项原源码仅PlayFabMgr变化,去掉新增块后旧PF字节完全一致;31业务模块、User/Agg/Context/Owner/Guard、旧工程和场景未改。其余新增文件是测试、验证日志与审查文档;没有接通普通玩法保存。
验证:新入口三个条件各13组544断言;Unity新入口34断言、B2-20真实31对象双epoch83断言,均恢复成功,编译0错误0警告;4B2离线75组1713断言、关闭故障21断言、服务双条件各8组73断言,4A/4B1及旧核心回归最终通过。**KVSync首轮85/86、重跑86/86,根因未定;旧3C L7历史问题仍开放。** NetworkTransport沿用旧依赖targets仅构建通过,未运行正式代理。
### 当前todoItem与责任
- [x] B3-Review:设计受审hash核对、逐条裁决及A实施批准。
- [x] B3A-C0~C3:四入口/键结果/限定Editor宿主、故障竞争测试、Unity及全量回归。
- [x] B3A-C4作者部分:范围/hash、限定自审、交付矩阵、送审提示词、每检查点日志。
- [ ] **B3A-19:外部独立实施复核→主会话核hash/逐条裁决→必要修复→A正式关闭。** 当前待办在外部评审侧,按[实施复核提示词](其他AI审查提示词-4B3A实施-2026-09-24.md)落盘报告;审核者不修改共享状态。
- [ ] B3B/B3C各自完整方案及独立评审,未批准编码。A关闭且无需复审后自动进入B完整方案准备,不再询问是否继续。
- [ ] KVSync StorageError、3C L7根因定位;P2-α真实档专项独立审查与用户产品确认;4C、身份、tickets有界历史、4D/G4启用门。
**4B1/4B2已关闭;4B3A已实现但未关闭,整个4B3/4B/G4未通过。** 正式地址固定http://s101.local:18080/;本轮正式请求0,Unity仅CLI Loop,不用UnitySkills,无PlayMode、打包或Git提交。封板见[交付hash](KVSaveRouteTests/checkpoint4-delivery-hashes.json),机器状态见[当前todoItem](阶段4B3当前TodoItem-2026-09-24.json)。
### 以下为历史快照(当前以本节为准)
## 当前有效状态:4B2已关闭;4B3分期+4B3A方案待独立审查(2026-09-24)
4B2主会话221项hash核对、B2逐条裁决和关闭已完成,见[关闭裁决](阶段4B2实施复核裁决与关闭-2026-09-24.md),无需重做。现在交付[4B3分期+4B3A完整方案](阶段4B3分期与4B3A固定存档入口方案-待评审-2026-09-24.md)、[调用事实附件](阶段4B3调用事实与分期附件-2026-09-24.md)、[受审基线](阶段4B3方案受审基线-2026-09-24.json)和[外部审查提示词](其他AI审查提示词-4B3分期与4B3A方案-2026-09-24.md)。
拟分期:A=既有PlayFabMgr显式固定句柄入口和结构化键读取;B=逐业务回调/可变内存归属;C=加载权限发布与生命周期。**本次只申请分期和A的独立审查,B/C尚未完成各自完整设计,不把它们当获批实施。** A预计只改PlayFabMgr新增块,不重写31模块、不开新会话框架、不改旧PF区域或B2私有权限。223个语法调用/81文件是事实台账,名称匹配上游仍是候选,不能称全业务隔离完成。
### 下一步责任与自动推进
当前待办在外部评审侧:按上述提示词将《阶段4B3分期与4B3A方案独立审查-2026-09-24.md》落盘,分别结论A(分期)/B(A完整方案)。随后主会话核对39项受审材料、2101项源hash、7项应不存在路径,逐条裁决,再按结果推进。审核者不修改共享状态。
用户最新授权:**当前工作完成且无需复审时,主会话直接进入下一步,不再询问是否继续。** 必要设计/差异评审与独立实施复核仍保留;先把完整可审材料准备好再交接,不凭“继续”跳过未完成的方案评审。
### 当前todoItem
- [x] 4B2独立实施复核及主会话关闭,历史受审材料保留。
- [x] B3-D0/D1:上下文、五种条件语法盘点、关键副作用链核查与源hash。
- [x] B3-D2/D3:分期+4B3A完整合同、精确白名单、19组验收、作者自审、提示词及受审封板。
- [ ] B3-Review:外部独立审查分期和A→主会话核hash/逐条裁决。
- [ ] B3A-C0~C4:裁决后才可实施、验证、独立实施复核并关闭;目前没有新增生产/测试实现。
- [ ] B3B/B3C:各自完整方案、独立评审、裁决和实施;全部关闭才称4B3完成。
- [ ] KVSync StorageError、3C L7:两项间歇失败根因未定,首败及重跑均保留。
- [ ] P2-α真实档专项独立审查+用户产品确认;4C、tickets有界历史、身份及4D正式启用门。
**4B1/4B2已关闭;4B3未编码、未关闭;整个4B/G4未通过。** 本轮只改文档和只读源码分析工具,没有游戏代码变更、正式服访问、PlayMode、打包、Git提交。正式地址固定http://s101.local:18080/;Unity操作仅Unity CLI Loop,不用UnitySkills。过程见[设计检查点](阶段4B3设计检查点记录-2026-09-24.md),机器状态见[当前todoItem](阶段4B3当前TodoItem-2026-09-24.json)。
### 以下为历史快照(当前以本节为准)
## 当前有效状态:4B2正式关闭,4B3方案准备(2026-09-24)
[独立实施复核](阶段4B2独立实施复核-2026-09-24.md)接受交付、无P1/P2;主会话重算221项hash全部一致,已逐条裁决B2-01~22、四项已知事项及三条P3,见[关闭裁决](阶段4B2实施复核裁决与关闭-2026-09-24.md)。B2-22完成,4B2正式关闭。
完成范围:31模块严格解码、全量Reset/Replace、受控登录/拒写/401/退出隔离。独立离线75组/1715断言,服务宿主两个平台条件各8组73断言,Unity完整31对象/双epoch/83断言及编译0错误;作者原1713与Unity总995证据保留。主会话确认离线+2来自并发发行用例的条件分支,本轮没有重跑全套测试或修改生产/测试代码。
**4B1、4B2已关闭;4B3仅方案准备,尚未批准编码;整个4B/G4未通过。** KVSync StorageError和3C L7间歇失败分别保留首败/重跑证据,根因未定;不将审查者“负载相关”的判断当确定结论。P2-α真实档专项独立审查与用户产品确认、消费/身份/tickets/场景启用门保持。
### 当前todoItem
- [x] B2-C0~C4:设计裁决、Lease/Registry、31模块、受控服务和验证交付。
- [x] B2-22:独立实施复核+主会话221项hash复核+逐条裁决+4B2关闭。
- [ ] B3-D0:已完成[设计准备与候选扫描](阶段4B3设计准备与边界-2026-09-24.md)(234行/84文件含注释及定义);继续逐调用追踪、归属与失败合同,完整4B3方案尚未形成。
- [ ] B3-D1:外部完整方案审查→主会话核hash/逐条裁决→才可限定编码。
- [ ] KVSync-StorageError:85/86→86/86,根因未定,待独立定位。
- [ ] Stage3C-L7:7/8→8/8,复合失败断言根因未定,待独立定位。
- [ ] P2-α:真实存量档兼容/迁移/备份/失败退出/人工恢复专项与用户产品确认。
- [ ] 4C、tickets有界历史、身份专项、4D及G4:尚未通过,不启用正式玩法。
正式地址固定http://s101.local:18080/;本轮无正式服访问、无PlayMode、无打包、无Git提交。Unity操作仅用Unity CLI Loop,不使用UnitySkills。每检查点更新开发日志;审核者无需修改共享文档。机器可读状态见[当前todoItem](阶段4B2当前TodoItem-2026-09-24.json)。
### 以下为历史快照(当前以本节为准)
## 当前有效状态:4B2实现与自验完成,待独立实施复核(2026-09-23)
D1–D5方案审查均已裁决。检查点2的31组模块、检查点3的受控服务编排/拒写门/退出接线已实现,检查点4主会话验证完成。见[交付与验收矩阵](阶段4B2交付与验收矩阵-2026-09-23.md)、[限定自审](阶段4B2限定代码自审-2026-09-23.md)及[实施记录](阶段4B2实施记录-2026-09-23.md)。
证据:4B2离线75组/1713断言;关闭故障独立进程3组21断言;两个平台条件的真实服务源码宿主各8组73断言;Unity19局部用例+完整31对象事务共995断言,最终83条B2-20通过且恢复全局;Unity0错误/新KV0警告。原4B1全23组等回归最终通过。**原KVSync首次85/86、重跑86/86,根因未定仍待查;旧NetworkTransport只构建,未启动正式服转发代理。**
下一步交外部AI按[实施复核提示词](其他AI审查提示词-4B2实施-2026-09-23.md)独立复核;随后主会话核对最终hash、逐条裁决与关闭。当前没有新的4B2独立实施复核报告,不把设计审查或作者自验当作关闭依据。
**4B1已关闭;4B2未关闭;4B3未启动;G4未通过。** P2-α真实存量档兼容/迁移专项与用户产品确认仍是正式启用硬前置。正式地址固定http://s101.local:18080/;本次无正式服请求,使用Unity CLI Loop,不用UnitySkills,暂不打包。
### 当前todoItem
- [x] 核对D4/D5受审23项hash、逐项裁决并合入正式版3;保留原受审材料。
- [x] 检查点1:Lease/Registry先行、4B1全量回归。
- [x] 检查点2:31/31模块codec、全字段空态与深复制;D1–D5专项验证;全部Reset后Replace事务。
- [x] 检查点3:User/Agg受控入口、PF默认与拒写隔离、当前/迟到401、退出与十秒/五秒观察、失败错误保留。
- [x] 检查点4主会话部分:真实模块Unity验证、离线/服务替身回归、范围/hash、自审和送审提示词。
- [ ] 外部独立实施复核→主会话核hash/逐条裁决→必要修复→4B2正式关闭(B2-22)。
- [ ] 原KVSync间歇StorageError根因定位;失败证据已保留,不在本轮擅改3A禁改源码。
- [ ] P2-α正式启用门:真实档兼容/迁移/备份/失败退出/人工恢复专项独立审查与用户产品确认。
- [ ] 4B2关闭后再推进4B3方案评审;当前不编码4B3、不启动玩法、不打包。
### 以下为历史快照(当前以本节为准)
## 历史过程待办(当前状态以顶部todoItem为准)
- [x] 2026-09-23接手检查点4:当时未找到4A复核报告,10项hash一致并保持待复核;该历史状态现由检查点5关闭裁决覆盖。
- [x] 读取外部3C最终验收报告,对相同源码版本复核并记录R1–R5。
- [x] 更正主会话过早PASS报告;保留历史测试与外部审查原文。
- [x] 完成存档调用盘点、阶段4分期、4A设计和待审实施任务书。
- [x] 生成《其他AI审查提示词-3C补验收与4A方案-2026-09-23.md》。
- [x] 用户指定外部AI分别复裁3C R1–R5和审查4A设计,A/B均通过。
- [x] 主会话核对四份基线hash、采纳六项P3并落盘裁决;批准限定3C修复,4A编码仍等待前置。
- [x] 主会话实施3C R1–R5限定修复、故障替身补测及限定源码自审。
- [x] 最终离线8/8、正式正常路径/清理通过、42/86/29回归、Unity编译、hash边界与脱敏验证;逐行证据已落盘。
- [x] 用户指定外部AI接受3C补修复;主会话核对hash并逐条裁决,3C/G3通过。
- [x] 4A开工依赖核对:发现3个旧测试csproj需添加独立结果类型Compile引用,最小差异方案及提示词已落盘。
- [x] 外部AI补审PASS,主会话已裁决并批准4A实施;采纳KVLiveTests仅构建验证。
- [x] 实施Owner安全读取接口和会话桥接,18组合成测试、A1–A12本轮验证及限定自审完成。
- [x] 42/86/29、Review、3C离线8/8、KVLiveTests仅构建、Unity 0错误/0警告;hash、边界、脱敏证据落盘。
- [x] 用户指定外部AI复核4A实现;主会话核对10项交付及14项范围hash,逐条裁决A1–A12/P3,4A关闭。见《阶段4A实施复核裁决与关闭-2026-09-23.md》。
- [x] 编制《阶段4B分期与4B1登录存档准备方案-待评审-2026-09-23.md》、外部审查提示词和受审基线;该初稿现已独立审查并裁决实施,原受审正文保留。
- [x] 外部AI独立评审4B分期与4B1方案双PASS;18项受审hash一致,主会话逐条裁决P3-A/B/C并批准白名单内4B1。
- [x] 新增LoginContext/PrepareResult及meta、新离线测试宿主;23组合成测试及B1-01~B1-16技术矩阵完成。
- [x] 4A18、42/86/29、Review、3C离线8、KVLiveTests仅构建、Unity0错误/新模块0警告;68项既有hash未变、限定自审及脱敏证据落盘。
- [x] 用户指定外部AI独立复核4B1实施;主会话核对6项交付及68项范围hash、逐条裁决三条P3和B1-01~B1-16,4B1正式关闭。见《阶段4B1实施复核裁决与关闭-2026-09-23.md》。
- [x] 读取已落盘4B2方案初稿及外部审查提示词,记录当前方案SHA256;用户澄清当前需要审查提示词,并非通知4B2评审完成。
- [x] 取得原初稿作者自审性质报告,两项受审hash一致;主会话逐条裁决5P1/5P2/5P3,接受退回,不批准实施。
- [x] 完成4B2修订2主方案、字段与31组模块合同、精确文件边界、受控入口/单会话借用/关闭/副作用方案及新提示词,原初稿和审查保留。
- [x] 将4B1实施复核P3-1'发布顺序、P3-2'CleanupFailed/OriginalError双检查及关闭失败屏障纳入修订2及验收;P3-3'保留历史失败证据,无修复项。
- [x] 修订2外部审查通过;主会话123项hash核对一致,逐条裁决2P2/5P3,落盘限定实施批准。P2-α设为正式启用硬前置。
- [x] 实施检查点1:Lease/Registry与关闭竞争先行;新增19组、原4B1全23组、Unity编译与KVLive仅build通过,证据见《阶段4B2实施记录》。
- [x] 保存P2-β ClubService开工副本/hash;检查点2发现AD格式及FootPrint位宽合同差异,完成具体补审方案/提示词/基线。
- [x] 外部差异审查D1/D2均通过、无P1/P2;主会话14项hash一致,逐项裁决D1/D2与三条P3,见《阶段4B2检查点2字段差异审查裁决》。
- [x] 按P3-3生成合并D1/D2的《阶段4B2字段与模块加载合同-正式版》,保留原受审附件及hash;实施记录追加前同hash存档。
- [ ] 按正式附件继续检查点2全部字段codec/31模块空态与测试,再执行检查点3编排/guard/Quit、检查点4真实模块Unity验证/完整回归/独立实施复核;D1/D2已批准,无需重复送审,不重做检查点1。
- [x] D2显式unchecked及注释、完整ulong字段和双字段Reset已实现;Unity真实对象覆盖2^31/2^32/UInt64.MaxValue及同对象高位→缺失归零。仅此局部验证,不等于4B2验收。
- [x] 检查点2首批:19槽核心codec、有界诊断、D1/D2模块纯入口;30组离线、原4B1全23组、Unity真实M08/M23 28断言及编译通过,见《阶段4B2检查点2首批实现与证据》。
- [ ] D3:M21/M22/M24非Nullable struct与null空态冲突,外部按《阶段4B2检查点2值类型空态差异补审方案》审查后主会话逐条裁决;不修改这些模块来代替评审,不重审D1/D2。
- [ ] P2-α正式启用前置:真实PF存量档兼容性盘点及迁移/备份/失败退出/人工恢复方案另行独立审查、用户产品确认;显式纳入旧AD被PF静默跳过的坏槽条目(P3-1),不得把本次受控实施授权当作真实拒档/迁移授权。
- [ ] P3-1:后续完整保留测试输出/退出码;KVSyncTests偶发失败再现时保留首轮失败并独立定位,根因当前未定。
- [ ] 后续4B2业务加载/初始化副作用及4B3普通存档/延后回调捕获分别详审;禁止把4B1准备成功当作游戏启用门。
- [ ] 后续分别评审4B加载与普通存档、4C消费流程、身份专项和Unity场景验收。
下方阶段门保留为目标和历史;3C补修复、4A及4B1已正式闭环,4B2检查点1完成、检查点2首批已验证而D3空态差异待补审,4B3未启动;各子阶段通过不能代替完整G4。
## 阶段4门(G4:涂游登录与玩法存档切换)
- [x] 阶段3C最终验收通过,G3关闭([最终验收](阶段3C最终验收-2026-09-23.md):复跑离线7/7、回归42/86/29、hash一致、Unity 0错误、正式run双账号清理无Unknown)。
- [ ] 主会话编制阶段4方案:UserService/Owner生产桥接、await登录→Get→初始化→Done、失败不进游戏不写空档、退出/换号/授权过期时序、PlayFabMgr入口替换、非AGG/编辑器路径、hex假设盘点、立即同步true兼容适配。
- [ ] 其他AI独立方案审查;用户裁决后实施。
- [ ] G4验收:专用账号正常进入游戏且存档读写走自建KV;改进度重登可恢复;失败不报Done不写空档;立即写失败无重复消费;编译与登录回归通过。
- [ ] 遗留专项(不阻塞阶段4启动):人工解锁/强制恢复独立评审;4xx降级差异裁决(证据已有);tickets有界历史评估;真机/最终包验收留最后。
阶段4评审通过前不得直接改游戏入口。
## 历史:阶段3C通过(2026-09-23)
## 当前3C文档门(已完成)
- [x] 本会话完成3C组合/限定联调/诊断导出方案。
- [x] 落盘实施任务书、验收矩阵、方案审查清单和其他AI审查提示词。
- [x] 用户将方案交给其他AI,生成`阶段3C独立方案审查-2026-09-23.md`。
- [x] 本会话裁决全部审查发现;无P1/P2,F1–F6全部采纳。
- [x] 实施任务书已改为“已批准实施”,由本会话开发3C。
- [x] 完成独立测试宿主的离线、安全、正式服、回归和Unity验收。
- [x] 完成阶段3C限定范围代码审查和证据归档。
- [ ] 阶段4游戏接线开始前完成独立方案评审与开发边界裁决。
阶段3C限定技术验收已通过;正式fixture已清理,无Unknown遗留。下一步不得直接改游戏入口。
## 历史:3B终审闭环与当时下一步(2026-09-22)
- [x] 用户另开的外部开发AI读取接手提示词,独立核对并保留候选实现。
- [x] 外部开发AI重新完成29/42/86、Unity验证和任务书§7正式交付。
- [x] 本会话完成文档终审;8项交付哈希一致,阶段3B正式验收通过。
- [x] 本会话已编制3C方案、验收矩阵和实施边界;后续实施分工由2026-09-23顶部清单覆盖。
说明:此前内部子Agent形成候选修复的流程纠错仍保留;最终通过依据是外部开发AI检查点8的独立核对、重新取证和正式交付。
## 最新裁决:3B审查闭环(2026-09-22)
- [x] 主会话逐文件审查和关键交错复跑;R1排队Refresh关闭异常已交开发AI修复并独立复核。
- [x] 3B 29/29、3A 86/86、阶段2 42/42、Unity编译0错误;最终hash一致。
- [x] 按已评审范围实施3C限定正式服联调与诊断导出,不接游戏存档入口。
- [ ] 3C后另行评审游戏接线、PlayFab读写替换、SDK删除、真机和最终包。
证据见[阶段3B主会话代码审查](阶段3B主会话代码审查-2026-09-22.md)。
## 历史待审清单:3B曾待发布任务者审查(现已完成)
- [x] 3B实施交付(含主会话接手检查点6收尾修复与全量复验:28/42/86测试、Unity强制重编0错误、hash更新),见[实施记录](阶段3B实施记录-2026-09-22.md)。
- [x] 发布任务者按[审查清单](阶段3B审查清单-2026-09-22.md)完成终审;阶段3B已通过,3C仍须先做方案评审。
- [x] 服务端4xx只读核查([核查报告](服务端4xx写入可能性核查-2026-09-22.md)):当前版本4xx均在写入前产生;客户端本批不改动,非200仍保守MayHaveCommitted;如据证据降级4xx须另立差异裁决。
- [x] 3C纳入诊断导出:只读导出身份、序号、状态和摘要,不导出Cookie或真实值。
- [ ] 3C之后独立恢复专项评审:人工解锁/强制恢复不与诊断导出绑定、不提供简单“继续写入”按钮,须明确操作者、备份、远端核对和风险确认。
- [x] 用户裁决(2026-09-22):①两条收紧策略正式追认、定性“用户后续确认”;②授权仅事实一致性文档修复;③3B交付后统一审查;④4xx核查/诊断导出/恢复专项排布如上。全文见[接手入口](接手入口.md)顶部。
## 历史进度:阶段3A已验收、当时下一步3B(2026-09-22)
两条收紧策略属**用户后续确认**:方案评审后用户明确继续,2026-09-22正式追认。**3A缓存状态与磁盘层已实现并通过验收**:主测试86项、独立13组/127断言通过,C盘Unity编译0错误/274已有警告,新增模块0警告。独立审查路径P2已修复闭环,无剩余确认阻塞。先读[3A验收报告](阶段3A缓存状态与磁盘验收-2026-09-22.md)和[独立代码审查](阶段3A独立代码审查-2026-09-22.md)。
整个阶段3尚未完成。下一步按已批准方案实现**3B固定会话owner与串行网络同步器**,再验收3C;无需重复索取同一方案或101/102授权。本批3A无正式服访问,不改游戏存档入口或SDK,未打包。正式API仍为 **http://s101.local:18080/**。HTTP/票据/异步Close/真实Cookie测试留3B,游戏存档切换留阶段4。
下方“待用户确认”“方案尚未编码”等为先前时点;本条和开发日志末尾为当前状态。阶段2证据继续有效,最小登录平台/人工/最终包待验收保留。
## 最新阶段结论:阶段2独立KV适配已验收(2026-09-22)
先读[阶段2验收报告](阶段2独立KV验收-2026-09-22.md)及[独立代码审查与补充终审](阶段2独立KV代码审查-2026-09-22.md)。独立Get/Set/Delete已实现,42项契约测试、正式s101的16项联调检查通过,101/102专用测试key均已删除并读回确认,原业务KV前后相同。Unity编译0错误/274已有警告。JSON沿用Json.NET扩展语法的兼容边界已明确裁决,非标准JSON严格校验;本批无剩余确认阻塞。
正式API固定 **http://s101.local:18080/**。当前Editor已Stop Play;联调是生产源码.NET宿主,不冒充Unity游戏存档/真机通过。下一步是**阶段3缓存与可靠同步的完整方案评审**,尚未编码;游戏存档仍走PlayFab,生产会话桥接、存档切换、俱乐部扩展和SDK删除未放行,打包留最后。最小登录平台/UI网络、主动推送、人工玩法/完整存档及最终包待验收继续保留。
本条覆盖下方历史“阶段2尚未实现”“KV全部暂停”“最后PlayMode”等当前状态说法;历史证据保留。实施前边界见[阶段2启动裁决](阶段确认与阶段2启动裁决-2026-09-22.md),每步见开发日志。
### 阶段2已完成任务
- [x] 核对最小登录阻塞项及当前审查源码一致性。
- [x] 复核服务端Get/Set/Delete契约,完成固定测试会话与错误处理方案评审。
- [x] 实现独立PlayerKVModels / PlayerKVClient,42项KVContractTests通过。
- [x] 101/102专用key写读删、覆盖、隔离、重新登录持久化及清理验收,16项联调通过。
- [x] Unity编译0错误/274警告、限定独立review及阶段2验收记录。
### 阶段3设计与小阶段验收
- [x] 完整方案已明确固定会话桥接合同、每账号/环境缓存隔离、读取失败禁止建空档;尚未实现。
- [x] 完成dirty版本/单通道写入、401/退出/换号和未知结果保留的方案自审及限定独立复审。
- [x] 落盘完整设计、3A/3B/3C文件边界和验收门。
- [x] 独立方案评审R1–R4闭环;备份措辞修正。
- [x] 用户确认两条收紧策略和完整方案,已执行3A;定性“用户后续确认”,2026-09-22正式追认。
- [x] 3A:三个纯状态/磁盘模块、86测试、独立127断言及Unity编译通过;路径P2闭环。
- [ ] 3B:固定账号owner、串行HTTP、立即票据、取消及Close准入,按已批准方案编码和验收。
- [x] 3B工作方式切换:主会话已完成实施任务书和审查清单;由另一AI实现/自测,主会话最终审查。
- [ ] 实施AI按《阶段3B实施任务书-2026-09-22.md》交付,不得自行进入3C。
- [ ] 主会话按《阶段3B审查清单-2026-09-22.md》逐项复核并给出3B裁决。
- [ ] 3C:组合故障/重启及限定专用key联调、独立review后才标记整个G3通过。
### 最小登录已完成和保留验收(历史证据继续有效)
最新证据:[本轮执行结果](最小登录收尾执行结果-2026-09-22.md)。独立复审、P2修复和可执行自动化通过;平台/UI网络、人工玩法及最终包仍有专项待验收,先补验收,不重复开发。
- [x] 正式API固定 http://s101.local:18080/;现有数字身份、Cookie与SignalR直连实现核对。
- [x] 正常101登录、非法ID失败后更正重试、同号重登,前轮真实Unity通过。
- [x] 真实QuitStage退出及101→102→101,旧身份清空、Cookie轮换/清空、旧Hub释放。
- [x] S4实际登录等待中退出、旧重试按钮、成功延迟中退出,均无旧身份/场景回流。
- [x] 初始化未完成时快速101→102→101,修复后最终三轮错误0。
- [x] Unity实际Hub首连、Test=OK和释放;raw探测/替身证据另列。
- [x] 首页战令预览与社交页打开;101核心字段前后相同,原已报告活动/战令阻塞异常未复现。
- [x] 9月21日前轮四文件方案/编译0错误271警告/自审证据保留;9月22日最新修复编译、独立复审与运行证据见本轮执行结果。
- [x] 真实HTTP401/连接中断/15秒超时及恢复:生产源码外部宿主通过;见《网络故障验收结果-2026-09-22.md》。
- [ ] Unity完整登录UI的真实HTTP故障恢复:Restricted禁止动态创建网络对象,外部宿主结果不能替代。
- [x] 真实WebSocket断流自动重连:生产RTService+项目SignalR DLL宿主通过,重连前后Test=OK、negotiate=0、释放后连接0。
- [ ] Unity/最终平台实际自动重连与服务器业务推送;外部宿主及Test RPC不替代。
- [ ] 最终统一打包后验收:真实渠道SDK迟到回调/退出/换号及真机。按用户最新安排延后,不作为当前Editor验收的阻塞项;现在不打包、不索要APK。
- [ ] 必要钓鱼玩法、完整游戏存档隔离与用户进度核对;核心字段抽查不能替代全部存档。
- [x] 新独立复审已完成:九文件逐项核对,发现两处现存P2;见《最小登录独立复审-2026-09-22.md》。
- [x] P2整改收尾:GetUI旧续体、声音Init/Release交错及实际Stage已Stop窗口完成最小修复;58项定向测试、修复后独立复审、Unity最终三轮错误0/Hub Test=OK。
当前只放行独立KV适配;暂停完整俱乐部迁移、游戏存档切换、删除PlayFab SDK。外围未提交改动保留,未经逐差异评审不整批回退;不自动提交或发布。
---
# 历史客户端迁移 TODO:PlayFab → KV 读写适配
## 用户最新范围裁决:先完成最小登录
当前只推进最小登录、Cookie、失败/退出换号、SignalR必要生命周期和首页自动GetSelfClub最小兼容。俱乐部完整业务与KV实现移至后续,不能继续作为本阶段自动扩展项。已有外围代码保留为待单独归档/评审改动,尚未从工作区剥离,不整批回退。
执行范围以[当前阶段范围裁决-仅最小登录](当前阶段范围裁决-仅最小登录.md)为准;下方历史进度保留,但不代表当前继续开发授权范围。
## 最新执行结果:F1/F2/F3整改(覆盖下方历史待办)
- [x] F3退出入口先注销再等待Hub,非注销保持;4组实际QuitAct+替身依赖测试通过。
- [x] F1列明11个俱乐部本人请求、创建缓存及成员UI身份修正;目标ID保留并验证。
- [x] F2创建/退出失败保留状态、过期响应无副作用;创建code1不当新建成功扣费。
- [x] Review整改:批量拒绝code4、签到在途/日期防重与UI等待刷新。
- [x] ClubRegression31项、认证31项、RT生命周期测试、2079源码编译及独立复审通过。
- [ ] Unity场景、真实渠道SDK、实际网络时序组合验收。
- [ ] 继续A剩余:体力捐赠donateId、聊天及SocialClubJoined其他旧身份逐项分类迁移。
- [ ] B独立KV适配及生产桥接专项评审;C/D保持前置验收门。
## 项目补充审查原始待办(历史,整改结果见顶部)
- [x] 对照当前源码确认项目补充审查F1/F2/F3。
- [ ] F3/P1:先评审注销时身份失效时点,再修复等待Hub释放前仍可登录/处理HTTP的窗口,保留非注销退出语义。
- [ ] F3验收:阻塞Stop期间旧HTTP200/401、API登录、渠道回调无副作用;释放异常可完成必要清理。
- [ ] F1/P1:ClubService剩余11个本人ID与缓存映射分类并修正,目标ID单独溯源。
- [ ] F2/P1:CreateClub/QuitClub失败和旧响应不得清空本地状态或发布成功事件。
- [ ] 上述修复完成后独立review及专项验收;当前完整退出安全/业务隔离不通过,C/D不放行。
更新:2026-09-21。当前接手先读《接手入口.md》《开发状态.md》《后续实现方案.md》《审查记录.md》。登录优先已落实;接口身份修正与独立KV适配可并行准备,集成仍按阶段验收。
## 最新执行调整:先完成最小登录
用户随后要求“优先完成最小登陆的逻辑,后续可以一步一步替换”,以此为当前优先级。下方KV阶段保留作后续队列,不继续越过当前目标实施。
- [x] 完成独立最小登录方案评审,见《最小登录实施裁决.md》。
- [x] 新增S101AccountSession:十进制涂游ID、严格登录响应、独立Cookie与账号切换隔离。
- [x] 新增Unity菜单 Tools/Debug/S101 Minimal Login,可输入101/102验证。
- [x] 22项本地合约测试通过;新增运行/编辑器脚本使用Unity2022.3引用与netstandard2.1编译通过。
- [x] 101/102实际登录成功,Cookie授权的playerdata/Get均返回200;没有写入或删除KV。
- [ ] 在Unity界面实际打开窗口验证交互;全项目导入/编译未作为本次通过项。
- [x] 主登录入口等待涂游 ID 的 API 认证;HTTP 与 SignalR 共用 Cookie,API 失败返回 Api。
- [x] 25 项合约/会话绑定测试;HotUpdate 2079 个源文件使用现有 Unity 引用编译通过;101/102 实际 manager 授权 GET 通过。
- [x] 用户于2026-09-17确认Unity实际可登录。
- [ ] API失败重试、退出换号及SignalR首连/重连专项验收。
- [x] 登录后礼包/战令异常与GetSelfClub身份修复代码及隔离回归通过。
- [ ] 用户复测上述报错修复。
- [ ] 后续接入 KV 初始化,再逐步替换剩余 PlayFab 功能。
范围说明:主流程的 API 认证已接入,PlayFab 存档初始化仍保留;完整游戏登录与 SignalR 运行验收待执行。新增验收见《主流程最小认证验收.md》。
本清单取代此前“认证与SignalR优先”的顺序。技术细节见[详细修改方案](客户端迁移详细修改方案.md)、[KV复核](KV更新复核.md)。已核查基线为客户端f40a816cc、服务端858fe7c/KV提交a3d3faa,实施前重新检查版本。
## 最小登录收尾补充(2026-09-21)
- [x] 31项认证/HTTP自动测试、RT生命周期模拟测试、活动回归及2079源码编译通过。
- [x] 101/102正式服直连WebSocket握手及Test=OK,无negotiate。
- [x] 独立代码review初审问题修复,详见最小登录收尾代码审查.md。
- [ ] Unity首页/钓鱼场景复测、真实SDK换号、实际断网重连专项验收。
## 阶段与验收规则
- 状态:待开始 → 进行中 → 待验收 → 验收通过;阻塞需记录具体缺口。
- 每阶段修改前完整评审并记录裁决和开发边界;本清单不表示尚未确认的存档策略已获批准。
- 前一阶段验收通过才进入下一阶段;代码完成不等于验收通过。
- KV需要Cookie:独立联调使用专用测试账号执行最小account/Login取得会话,无需先重构完整游戏登录。
- 最终目标仍包含涂游登录、游戏KV、SignalR及完整SDK移除。
## 并行任务A:接口身份与会话生命周期
状态:已完成登录/GetSelfClub局部修正及独立审查;其余实现待开始。对应《后续实现方案.md》A及审查P1。
- [x] 新登录与GetSelfClub使用ApiPlayerId。
- [x] 独立agent审查、状态/方案/验证入口落盘。
- [ ] 盘点全部本人/目标玩家ID、缓存映射、聊天载荷及十六进制假设。
- [ ] 完成具体文件边界与身份/生命周期方案评审。
- [ ] 修正ClubService及其他新API剩余身份混用;保留旧PlayFab调用身份。
- [x] HTTP manager旧响应/旧401按版本过滤;GetSelfClub调用者同步保护。其他业务调用者仍需逐项审计。
- [ ] 明确HttpClient/Cookie所有权、换号取消与退出释放,供KV生产绑定使用。
- [x] 修正SignalR首连绑定、订阅释放和可等待的旧连接停止;源码与替身Hub测试通过,Unity场景验收仍待执行。
- [ ] 本人/目标玩家/未授权/101切102/迟到响应及实时消息专项验收。
## 阶段1:确认 PlayFab 存档到 KV 的映射(最高优先级)
状态:历史G1评审通过(2026-09-16,见《阶段1验收.md》);接手时仍需复核最新契约/工作区。
- [x] 确认Get/Set/Delete源码、DTO、MySQL表及Cookie身份来源。
- [x] 确认身份使用涂游ID、正式地址为http://s101.local:18080/。
- [x] 检查最新版本与工作区差异,固定评审基线。
- [x] 列出全部UserData调用及key来源,区分固定/动态key、JSON字符串值。
- [x] 映射登录InfoResultPayload.UserData到Get全量读取;本人GetUserData到Get指定keys。
- [x] 映射UpdateUserData及SyncDataImmidiate到Set;核实删除调用,存在则映射Delete。
- [x] 单列他人Public UserData读取,不能迁入本人KV接口。
- [x] 核对key/value格式、128字符键限制、remoteStore=false与旧缓存处理。
- [x] 对无LastUpdated时的恢复规则、冲突处理和有限并发保证记录明确裁决;不能伪造远端时间。
- [x] 确认Set/Delete空HTTP200为成功,Get失败不能当空存档。
- [x] 记录精确开发边界:适配层、兼容入口、必要调用修正;暂不删除整个SDK。
### 验收门 G1
- [x] 每个存档调用明确归属本人KV、他人资料、仅本地或其他能力,无遗漏。
- [x] 接口/模型/错误/缓存/身份差异均有明确处理规则。
- [x] 存档策略与并发保证已有评审裁决;未决项阻止对应实现。
- [x] 阶段验收记录通过,解锁阶段2。
## 阶段2:独立 KV 读写适配层
状态:生产适配未实现;已有未完成测试骨架。前置G1已通过,继续开发前处理独立审查结论。
- [ ] 新增无PlayFab依赖的DTO与KV客户端,支持Get/Set/Delete。
- [ ] 明确API基址与Cookie会话,区分HTTP、授权、网络、解析错误。
- [ ] 测试宿主以专用涂游测试ID取得Cookie,保留现有正式玩法入口。
- [ ] 确认部署包含KV接口且MySQL迁移生效;不自动执行生产迁移。
- [ ] 补充响应解析、空正文成功、缺失key与失败分类测试。
### 验收门 G2
- [ ] 新增→读→覆盖→读→删除→读通过,仅操作独立测试key。
- [ ] 全量读、指定key、不存在key、空字典、空字符串符合契约。
- [ ] 无Cookie不能访问;两个测试账号同名key互不影响。
- [ ] 重新登录后仍可从服务器读到已写数据,排除本地内存假阳性。
- [ ] Unity编译及测试通过,真实持久化结果留证,并清理本次测试key。
## 阶段3:缓存与同步可靠性
状态:3A已验收;3B/3C未实现。G2已通过,整个G3尚未通过。
- [ ] 按环境+涂游ID持久化云端基线及待写记录,排除旧PlayFab缓存混用。
- [ ] 替换固定缓冲桶,串行发送独立快照;成功按序号确认、失败保留。
- [ ] 普通同步、立即同步和删除共用顺序规则。
- [ ] 实现G1裁决的恢复/冲突策略及暂停恢复、退出保存、换号隔离。
- [ ] 先用测试宿主验证,不提前切换生产登录链路。
### 验收门 G3
- [ ] 发送v1期间产生v2,v2不丢;51个以上key无静默丢失。
- [ ] 断网重启、超时未知结果按规则恢复,冲突不自动覆盖。
- [ ] remoteStore=false不上传,空值/缺失/删除可区分。
- [ ] 旧账号迟到回调不修改新账号,不同服务器缓存隔离。
- [ ] 缓存损坏/写失败明确报错或恢复,不当作新存档。
- [ ] 验收记录明确跨设备并发和延迟提交的保证边界。
## 阶段4:涂游登录与玩法存档切换
状态:待开始。前置:G3通过,资料来源及调用者变更方案完整评审。
- [ ] 涂游ID直接作为UserId/playerId,替换PlayFab身份转换。
- [ ] 确定昵称/头像/历史时间等来源,不用未恢复默认值覆盖服务器。
- [ ] await业务登录→Get→初始化玩法→Done;失败不继续进入游戏。
- [ ] 同批切换PlayFabMgr内部与登录数据类型,保留MonoBehaviour/meta及业务兼容入口。
- [ ] 捕鱼/转盘立即写失败不报成功,重试不重复扣减。
- [ ] 核对非AGG/编辑器入口及邀请码、问卷、随机种子的hex假设。
- [ ] 完成退出/换号/授权过期/事件时序;不得让未迁移功能拿新ID调用旧PlayFab。
### 验收门 G4
- [ ] 专用账号正常进入游戏,代表性存档读写走自建KV。
- [ ] 修改进度后重登可恢复,排除本地缓存影响。
- [ ] 登录/KV失败不报Done、不写空默认档。
- [ ] 捕鱼/转盘失败恢复无重复消费、无虚假成功。
- [ ] 支持的渠道与编辑器路径编译及登录回归通过。
## 阶段5:SignalR 与外围功能迁移
状态:待开始,直连选项子集已修改。前置:G4通过,各替代接口已确认。
- [x] RTService加入SkipNegotiation=true和WebSockets,保留Cookie及自动重连。
- [x] 实际DLL属性检查通过;尚不代表Unity编译或运行验收。
- [ ] 实测Hub直连、消息、重连;修正首连订阅及重复登录订阅问题。
- [ ] 迁移好友/玩家资料,明确缺失字段处理。
- [ ] 为普通/地区榜、公告、票据匹配确认替代契约并实现。
- [ ] 清理EntityKey、他人Public UserData及工具中的旧身份依赖。
### 验收门 G5
- [ ] 无negotiate、Test返回OK,首次及重连消息无遗漏/重复。
- [ ] 每项保留功能有实际替代且回归通过,不用空结果或静默禁用过关。
- [ ] 全部SDK运行调用已有可核查的替代/移除结果。
## 阶段6:删除 SDK 与最终验收
状态:待开始。前置:G5通过。
- [ ] 删除SDK和异步包,清理manifest/lock、asmdef、裁剪和热更新引用。
- [ ] 由Unity重新生成项目及派生构建产物。
- [ ] 区分兼容字段名/MonoBehaviour类名与真正SDK依赖。
- [ ] 执行脚本编译、相关测试、热更新构建和完整联调。
### 验收门 G6
- [ ] 无PlayFab运行/编译依赖。
- [ ] 涂游登录、KV持久化、SignalR及保留玩法端到端通过。
- [ ] 差异、结果、环境及剩余限制完整记录。
## 每阶段验收记录
保存为本目录“阶段N验收.md”,包含:评审裁决与边界、源码版本与环境、脱敏测试账号、修改文件、用例操作/预期/实际/证据、失败与阻塞、测试数据清理结果、最终验收结论。
**当前下一步:G1历史验收已通过;依据独立审查,并行推进A接口身份盘点/方案及阶段2独立KV协议适配。生产会话绑定先完成专项评审;阶段3/4集成须先通过前置验收。**
- [x] D3受审10项hash/逐条裁决及M21/M22/M24实现和125条真实对象验证。
- [ ] 完成剩余检查点2模块、全量事务验证,再按顺序推进3/4。