Files
ft/CodexOutput/upserver/阶段4A实施复核裁决与关闭-2026-09-23.md

5.4 KiB
Raw Blame History

阶段4A实施复核裁决与关闭

日期:2026-09-23。依据:用户指令“复核完成,继续”、外部独立实施复核及交付矩阵。

裁决:接受4A实施,4A限定阶段关闭,无待修复P1/P2。下一步只进入4B方案准备和独立评审,不授权游戏接线编码或正式业务KV写入。完整G4尚未通过。

1. 版本与证据核对

  • 主会话本轮重新计算 KVGameBridgeTests/final-source-hashes.json 中10项SHA256,全部一致;scope-hash-check.json 中14项当前文件均与记录的after一致。
  • 外部报告的三份生产hash以省略形式展示并引用交付完整值;本轮以完整SHA256核对,无受审版本漂移:
文件 完整SHA256
PlayerKVSessionOwner.cs BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5
PlayerKVLocalReadResult.cs 9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF
PlayerKVGameSessionBridge.cs DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363
  • 已读取独立run 20260923081335_85da5c670ba7437396b57a153ce03ac6/result.json:18组全部通过、failures=0、报告内221断言;外部报告的226包含输出末尾5项脱敏检查,与原交付口径一致。
  • 独立Unity强制编译JSON为 Success=null,Message要求读取日志;后续Error日志为0条。只接受“强制编译调用后错误日志0条”,不将null写成Success=true。同一源码的原交付 unity-compile.json 明确Success=true、0错误/0警告,继续有效。
  • 42/86/29、Review、3C离线8/8、KVLiveTests仅构建等独立复跑结果采用外部报告的记录,本会话没有重跑,不冒充本会话实测。KVSyncTests首轮失败单列保留如下。

2. 外部发现逐条裁决

编号 裁决 理由、边界及后续
P3-1 偶发85/86 接受为非阻塞待查项;不接受“已证明预存在/已定位为时序问题”的强表述 外部记录一次失败且未保留用例名,随后三轮86/86。相关生产hash未变可证明未修改那些文件,不能证明失败根因或此前已发生。当前无可归因4A的缺陷证据,因此不阻塞4A;后续执行必须完整保留stdout/stderr和退出码,复发时保留首个失败证据并独立排查,不用重复成功覆盖失败记录。本轮不改测试或生产代码。
P3-2 Handle失效判定粒度 接受观察,不做形式统一补丁 Update/Delete/Read经Owner操作租约的TryEnter再次检查固定session/epoch,Flush同样经租约;Wait在桥接层做完整IsCurrent后委托等待。入口判断表面不同不能等同“旧写能通过”。4B使用固定句柄,并继续验证session/Cookie/epoch变化,不依赖只检查Revoked。
P3-3 isCurrent轻量约束 采纳,纳入4B设计合同 回调只能同步读取捕获身份/代际及撤销标志,不执行I/O、不触发登录/Close、不等待任务,不获取可能与关闭流程反向依赖的锁。不得同步等待自己的Close。后续接线按此审查。

3. A1–A12逐项裁决

以下采用交付矩阵、外部逐项复核、独立run及本轮hash核对;接受范围仅为独立层,不代表游戏场景已经切换。

编号 裁决 核验结果与限制
A1 接受 Ready合并快照、独立不可变字典、归属字段;独立run对应A1通过。
A2 接受 参数/认证/取消拒绝、初始Get中Close真实收尾;对应两组A2通过。
A3 接受 初始读取失败释放、Busy/Conflict/Unknown/StorageError不返回空档、清理失败阻塞、Unknown票据保留;对应各A3组通过。
A4 接受 旧传输忽略取消时新Owner仍等待,释放后MaxActive=1;组合组通过。
A5 接受 同号重开、重复Close、旧句柄撤销;对应A5通过。
A6 接受 旧句柄读写/Flush/Wait拒绝,不借102账号;组合组及外部代码复核支持。
A7 接受 排队Open取消不取消旧Close屏障,下一合法Open可完成。
A8 接受 在途Flush下读取、读后代际失效、失效优先、读重入Close租约排水;四组通过。
A9 接受 登录session销毁/换Cookie后的旧读写等待拒绝,桥接不拥有登录session;对应组通过。
A10 接受 Close不隐式Flush、pending保留重开、显式Flush确认;对应组通过。
A11 接受 替身实际传输、默认handler只构造检查、脱敏边界清楚;无正式服务调用,非抓包证明。
A12 接受并保留P3-1 外部回归及构建记录、同hash原Unity成功证据、边界记录相符;偶发失败原文保留,不宣称全部尝试均成功。

4. 开发边界与下一步

  • 本轮仅更新文档与裁决,不修改4A代码、测试、csproj或原复核报告;不以P3为由自行新增修复。
  • 4B先编制具体方案,按既有分工交用户指定外部AI独立审查,再由主会话逐条裁决,明确文件边界后编码。不创建子Agent代替外部审查。
  • 正式地址固定 http://s101.local:18080/,Unity只使用Unity CLI Loop,不使用UnitySkills,暂不打包。
  • 4C消费流程、身份专项、完整初始化副作用及回调隔离、tickets有界历史、正式场景测试数据授权仍有后续门;4A关闭不放行这些工作,也不授权PF/KV双写或自动迁移。