# 阶段4B2实施记录 ## 检查点0:版本与批准 - 123项受审hash全部一致;外部修订2通过、无P1;P2-α/β及P3五项裁决见《阶段4B2修订2审查裁决与实施批准-2026-09-23.md》。 - P2-α明确真实存量档兼容性与迁移方案/用户产品确认是正式启用前置,当前仅合成受控加载。 - 批准§9顺序实施,检查点1先行;采用方案已允许的类型合并组织以保留旧4B1测试项目不变。没有批准正式游戏Done、真实存档写入或打包。 ## 检查点1:Lease/Registry与4B1回归完成 实现范围:仅修改`PlayerKVLoginContext.cs`(元数据快照、一次性内部Lease发行、关闭先排水借用者),新增`PlayerKVShutdownRegistry.cs`及meta、新宿主`KVGameLoadTests`。Lease/能力/元数据类型按已审许可合并在Context文件,原23组测试源码和项目均未改动。Capability目前仅是检查点1的替身传输能力,完整依赖证明待检查点3,不能视作已经交付完整受控入口。 关闭合同:同步撤销准入、同一Close任务、忽略取消的请求仍排水,Lease失败不继续释放Bridge/session;Registry跨调用者保留未完成/失败任务和资源owner,不提供清空/强行重开。观察时限1000~15000毫秒、非法Input;超时不取消实际工作,等待期间新登记故障能立即唤醒观察者。 本轮限定自审修正:保留失败owner;避免等待所有任务才暴露单个故障;发送准入增加同步撤销检查;拒绝循环DelegatingHandler时不能递归Dispose该图,先拒绝、由工厂解环清理。最后一项有新增测试,最终共19组。测试源直接链接生产Context/Registry,没有复制实现。 | 验证 | 最终结果及证据(均在KVGameLoadTests目录) | |---|---| | 原4B1全量原宿主 | 23组/0失败/278断言,`checkpoint1-4B1-final2.log`及exit.json,run `20260923114135_9b8f40b6952546a98d88e76a01e339f4` | | 新Lease/Registry | 19组/0失败/205断言,`checkpoint1-final2.log`及exit.json,run `20260923114134_050e9e9b6a8d4ab2a1309f462d40b7ed` | | Unity CLI Loop最终编译 | Success=true、0错误、271条其他文件警告、PlayerKV相关0警告,`checkpoint1-unity-final2.log`及exit.json | | 首轮Unity编译 | 0错误/274条其他文件警告,`checkpoint1-unity-compile.log`保留;不以增量重编警告数量减少宣称修复旧警告 | | KVLiveTests | 仅build,初轮及最终证据单列;不运行正式服fixture | | 范围核查 | 原123项中122项保持,仅获准修改的Context变化;原4B1测试、ClubService与两份受审方案未变。具体hash见`checkpoint1-source-hashes.json` | 新测试覆盖:唯一认证/同Cookie/元数据、只发一个Lease、关闭前后准入、路由和真实Handler拒绝、循环Handler拒绝、active排水、取消重入、Dispose失败、24次发行/关闭竞争、工厂重入撤销、过期200隐藏、401证据/重定向拒绝、超时后真实排水、永久故障屏障、其他工作未完时故障立即返回、新故障唤醒既有观察者、等待期间新登记、观察取消/无效输入、同进程Registry。401目前只是Lease证据,尚不是检查点3的真实服务401接线验证。 并发测试中的附加断言取决于Lease是否赢得发行竞争,故历史16/18/19组的断言总数不可直接对比;每轮保留run及每组断言,不把数量差异当失败或覆盖率增加。最初恢复依赖因用户NuGet.Config读取权限失败,原输出`checkpoint1-restore.*`保留;经审批仅用已有离线NuGet配置恢复成功,见`checkpoint1-restore-elevated.*`,没有安装额外依赖。 Unity版本2022.3.62f2c1,uloop2.2.0,DataPath=C:/projects/ft/Client/Assets;运行前只读检查IsPlaying=False。未进入PlayMode、未请求正式服、未打包、未提交Git。编译原始日志含本机路径,属于本地原始证据,不宣称是脱敏业务日志。 P2-β基线副本:`KVGameLoadTests/baseline/ClubService.cs.txt`,SHA256 `70908AC672CB3F9BEC07D714469847637A3CA4BF841016C0F85B4319597618AD`;M14尚未修改,未来仍需相对本副本单列最小diff。 ## 检查点2:源码映射发现两处合同冲突,待差异补审 对照M08发现旧`AD`实际为枚举→三段字符串字典,受审附件误写同顶层成就对象JSON;M23要求保持UInt64但现有字段/枚举为Int32。已形成[差异补审方案](阶段4B2检查点2字段差异补审方案-2026-09-23.md)及[外部提示词](其他AI审查提示词-4B2检查点2字段差异-2026-09-23.md),包含明确修订/边界/测试。原审查已通过事实保持,两项新语义尚未批准,不能在实现时静默改变。 本轮没有新增Schema/业务模块代码,不声称M01–M31已通过。下一步外部只审D1/D2→主会话核对新增差异基线、逐条裁决→继续检查点2;3/4按顺序保留。检查点1无需重复开发,最后整阶段回归仍执行;4B2未关闭、4B3未启动、G4未通过。