4.5 KiB
阶段3C实施记录
最新终审:用户指定外部AI复核接受,无新P1/P2;主会话核对版本并裁决R1–R5/F2关闭,3C/G3通过。见终审裁决。下方“待外部复核”等表述为当时状态,最新结论以本注为准。
2026-09-23补修复更新:R1–R5已修复并完成本轮技术验证;外部实施复核待完成。最新证据见补修复交付与逐项证据,源码hash见KVStage3CTests/repair-final-source-hashes.json。下方为修复前历史记录(含旧final-source-hashes.json),不能替代新证据,也不代表3C/G3已经重新最终通过。
更正(同日后续核对):下方为历史交付记录。7/7、3/3通过不代表矩阵完整;“运行时key集合不可扩大”“任一Unknown退出路径已安全闭环”等强保证需按《阶段3C复核更正与补验收-2026-09-23.md》R1–R5补修复和证据。本次复核未重新执行或修改历史run。
日期:2026-09-23。实施范围:独立KVStage3CTests测试宿主、运行证据和本记录。生产源码未修改,未接游戏入口,未删除PlayFab SDK,未打包。
1. 实现内容
- 新增显式
--offline、--live-s101、--cleanup <manifest>模式;无参数/非法参数不访问网络并返回非0。 - manifest在请求前原子落盘,固定API为
http://s101.local:18080/、账号为101/102、缓存根为本次run目录。 - 测试专用受限Handler把Owner无keys Get改写为manifest keys;Set/Delete越界在网络前整体拒绝;Set空data不转发。
- 离线组合覆盖Owner/3A/3B、真实子进程pending恢复、账号/API隔离、Busy锁、Unknown在服务端观察基线和目标两种情况下均不自动解除/重发、损坏主档与有效主档+坏bak。
- 测试宿主在Owner关闭前累计票据结果,关闭后通过
Inspect()构建专用脱敏DTO;manifest以外产物不含完整fixture key和值。 - 正式服仅走正常路径;碰撞预检后才允许写,任一Unknown立即停止后续账号写入;Owner异常路径保证Close。
2. 最终执行证据
| 门 | 命令/结果 |
|---|---|
| 构建 | dotnet build .../KVStage3CTests.csproj --nologo:0错误、0警告 |
| 参数门 | 无参数及--bad-mode:非0,未访问网络 |
| 离线 | dotnet run ... -- --offline:7/7分组通过,退出0 |
| 正式服 | dotnet run ... -- --live-s101:3/3分组通过,退出0 |
| 阶段2回归 | KVContractTests:42/42通过 |
| 3A回归 | KVSyncTests:86/86通过 |
| 3B回归 | KVSyncCoordinatorTests:29/29通过 |
| Unity | uloop compile --project-path C:/projects/ft/Client --wait-for-domain-reload true:Success=true,0错误、0警告 |
最终正式run:20260923064047_9bdd12b8c3c64a6b855887bd91e2d33d。账号101/102均登录匹配且不是新建账号;CollisionPreflight=true、HadUnknownWrite=false、Completed=true,两账号均进入CleanedAccounts。清理后每个账号由两个新登录会话分别过滤Get确认manifest keys不存在。
正式联调前曾有三次运行在login-preflight-101阶段因受限执行环境返回Network;这些manifest均为CollisionPreflight=false、CleanupAllowed=false、HadUnknownWrite=false,没有KV写入。解除网络沙箱后正式执行通过。
3. 脱敏与哈希
- 最新正式产物扫描:完整fixture key命中0;
Cookie|Token|fixture-|C:\\Users\\命中0。 - 完整fixture key只存在manifest和离线合成远端文件;result、diagnostic、log只保存摘要、数量、状态和错误类别。
- 生产7个KV文件的SHA256与阶段2/3A/3B既有正式基线完全一致;
S101AccountSession.cs本阶段未修改,当前SHA256为EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476。 - 最终完整hash见
KVStage3CTests/final-source-hashes.json。
4. 偏离与修正
- 首轮离线预检暴露测试宿主run根目录少一层、普通manifest读取误用cleanup校验;修正后重新执行7/7。
- 实施自审发现正式账号失败后可能继续下一账号,以及Owner异常路径缺少强制Close;终验前已收紧并重新执行离线、正式服与Unity编译。
- Unity首次因Editor/uLoop Server未就绪无法连接;启动匹配的Unity 2022.3.62f2c1并完成域重载后,最终CLI编译通过。
5. 未进入范围
未执行真机断电/平台文件系统、游戏存档入口接线、PlayFab读写替换、SDK删除、SignalR新改动或最终打包。这些不得由本记录推断为已完成。