# 阶段3C实施任务书:组合验证、限定联调与诊断导出 > 2026-09-23补修复更新:R1–R5已修复并完成本轮技术验证;外部实施复核待完成。最新证据见[补修复交付与逐项证据](阶段3C补修复交付与逐项证据-2026-09-23.md),源码hash见KVStage3CTests/repair-final-source-hashes.json。下方为修复前历史记录(含旧final-source-hashes.json),不能替代新证据,也不代表3C/G3已经重新最终通过。 日期:2026-09-23。状态:**原实施与初次审查已交付;同版本新增R1–R5待补修复/验收及外部复裁。** 最新依据为《阶段3C复核更正与补验收-2026-09-23.md》,本任务书历史检查点不代表当前全部通过。 ## 1. 前置门 开始编码前必须全部满足: 1. 用户确认的高层设计已记录。 2. 其他AI完成对《阶段3C组合与限定联调方案-2026-09-23.md》的独立审查。 3. 主会话逐条裁决审查意见并将本文件状态改为“已批准实施”。 4. 不存在未关闭的P1/P2方案问题。 以上四项均已满足:独立审查无P1/P2,F1–F6已全部采纳并落盘。 ## 2. 允许文件 只允许新增: - `CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj` - `CodexOutput/upserver/KVStage3CTests/Program.cs` - `CodexOutput/upserver/KVStage3CTests/`下本任务证据文件。 - `CodexOutput/upserver/阶段3C实施记录-2026-09-23.md` 不允许修改生产源码、既有测试、包、asmdef、服务器代码或游戏入口。发现接口缺口时停止并回到差异评审。 ## 3. 实施顺序 ### 检查点1:项目骨架和安全门 - 显式链接阶段2/3A/3B及S101AccountSession源码,不使用通配符。 - 实现显式`--offline`、`--live-s101`、`--cleanup `模式。 - 无参数或非法参数必须不访问网络并以非0退出。 - 固定API、账号、run目录和manifest schema;默认无网络。 - 先实现manifest验证和路径约束,再实现任何请求。 ### 检查点2:离线组合与子进程 - 实现O1–O4。 - 所有子进程有超时、退出码和独立日志。 - 验证文件锁释放、pending恢复、Unknown和RecoveryRequired策略。 ### 检查点3:脱敏诊断 - 关闭Owner后读取不可变诊断快照。 - 使用专用DTO,只输出方案允许字段。 - Owner关闭前从票据、`WaitForTicketAsync`和`FlushAsync`结果累计票据状态;不从`Inspect()`推断票据历史。 - 添加禁止字段扫描和测试key哈希验证。 ### 检查点4:受限转发Handler - 先实现请求路径和manifest key白名单测试。 - 无keys的Get改写为manifest key;Set/Delete含任一越界key就在网络前整体拒绝;Set空data按no-op放行。 - H2直接断言Handler内部转发计数为0;完整Owner链检查必须使用一次性run目录,并预期计数0及Unknown冻结。 - 禁重定向、禁重试、固定Cookie归属;不打印正文和值。 ### 检查点5:限定正式服 - manifest先行、双账号碰撞预检。 - 执行L1/L2正常路径。 - finally按L3清理并用双新会话读回。 - 任一Unknown按L4停止并保留manifest,不把cleanup结果改写为通过。 ### 检查点6:回归和交付 - 复跑阶段2 42、3A 86、3B 29。 - Unity CLI Loop编译。 - 生成源码hash和实施记录。 - 停止开发,交主会话代码审查;不进入阶段4。 ## 4. 必跑命令 方案审查通过后,实施记录必须列出实际命令和退出码: ```powershell dotnet run --project C:/projects/ft/CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj -- --offline dotnet run --project C:/projects/ft/CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj -- --live-s101 dotnet run --project C:/projects/ft/CodexOutput/upserver/KVContractTests/KVContractTests.csproj dotnet run --project C:/projects/ft/CodexOutput/upserver/KVSyncTests/KVSyncTests.csproj dotnet run --project C:/projects/ft/CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csproj uloop compile --project-path C:/projects/ft/Client --wait-for-domain-reload true ``` `--cleanup`只在manifest遗留或清理补救时运行,不能预先伪造成功证据。 ## 5. 实施交付格式 完成时只报告: - 新增/修改文件及完整SHA256。 - 离线用例分组、数量、命令、退出码。 - 正式服manifest文件名、前缀、账号、断言数量、Unknown状态和清理结果;不报告测试值。 - 脱敏诊断字段扫描结果。 - 阶段2/3A/3B回归和Unity编译结果。 - synthetic、live和未执行项的明确区分。 - 已知限制、任何偏离、遗留manifest和清理命令。 实施者不得自行宣布阶段3C或整个阶段3最终通过。