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

4.9 KiB
Raw Blame History

阶段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。已形成差异补审方案及外部提示词,包含明确修订/边界/测试。原审查已通过事实保持,两项新语义尚未批准,不能在实现时静默改变。

本轮没有新增Schema/业务模块代码,不声称M01–M31已通过。下一步外部只审D1/D2→主会话核对新增差异基线、逐条裁决→继续检查点2;3/4按顺序保留。检查点1无需重复开发,最后整阶段回归仍执行;4B2未关闭、4B3未启动、G4未通过。