2.4 KiB
2.4 KiB
阶段3C限定范围代码审查
2026-09-23补修复更新:R1–R5已修复并完成本轮技术验证;外部实施复核待完成。最新证据见补修复交付与逐项证据,源码hash见KVStage3CTests/repair-final-source-hashes.json。下方为修复前历史记录(含旧final-source-hashes.json),不能替代新证据,也不代表3C/G3已经重新最终通过。
更正(同日后续核对):本会话下方“无遗留P1/P2/P3、可结束3C”结论撤回。相同版本新增发现见《阶段3C复核更正与补验收-2026-09-23.md》R1–R5;历史执行结果与原分析保留供追溯,当前需要补修复/验收并外部复裁。
日期:2026-09-23。审查范围:KVStage3CTests.csproj、Program.cs、阶段3C运行证据及生产hash;不审查历史外围改动。
结论
PASS。 未发现遗留P1/P2/P3代码问题。阶段3C限定技术验收通过,可以结束3C;不得据此进入游戏接线或PlayFab/SDK删除。
审查发现与处置
- 已修复:首轮run根目录定位错误以及普通manifest读取误用cleanup门;修复后离线7/7。
- 已修复:正式账号用例失败后通用包装器可能继续下一账号;现遇Unknown或101失败立即停止新增写入。
- 已修复:正式Owner异常路径可能晚释放;现使用
finally等待CloseAsync()。 - 已补齐:O6分别模拟服务端观察基线/目标,重开后都保持Unknown且变更请求计数不增加。
- 已补齐:O8验证有效主档优先于损坏bak;票据计数在Owner关闭前收集并写入脱敏诊断。
安全核对
- 正式目标逐项固定为scheme=
http、host=s101.local、port=18080和三个playerdata路径。 - manifest先行、key集合不可扩大;越界Set/Delete在内部转发计数增加前拒绝。
- 正式run无Unknown,精确清理完成并由两次新会话确认;无遗留fixture。
- diagnostic/result/log完整key命中0,禁止字段扫描0。
- 生产源码未修改;7个KV生产文件hash与既有基线一致。
验证
- Stage3C:offline 7/7,live 3/3。
- 回归:42/42、86/86、29/29。
- Unity CLI Loop:0错误、0警告。
- 最终正式run:
20260923064047_9bdd12b8c3c64a6b855887bd91e2d33d,Completed=true、HadUnknownWrite=false。
后续边界
阶段4开始前必须另行完成游戏接线方案评审。PlayFab读写替换、SDK删除、真机与最终包仍未授权实施。