# 阶段3C实施记录 > 最新终审:用户指定外部AI复核接受,无新P1/P2;主会话核对版本并裁决R1–R5/F2关闭,3C/G3通过。见[终审裁决](3C补修复终审裁决与4A准入-2026-09-23.md)。下方“待外部复核”等表述为当时状态,最新结论以本注为准。 > 2026-09-23补修复更新:R1–R5已修复并完成本轮技术验证;外部实施复核待完成。最新证据见[补修复交付与逐项证据](阶段3C补修复交付与逐项证据-2026-09-23.md),源码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 `模式;无参数/非法参数不访问网络并返回非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新改动或最终打包。这些不得由本记录推断为已完成。