Files
ft/CodexOutput/upserver/阶段4B2实施记录-检查点2差异受审快照-2026-09-23.md

39 lines
4.9 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.
# 阶段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未通过。