Files
ft/CodexOutput/upserver/阶段3C实施任务书-2026-09-23.md

4.6 KiB
Raw Blame History

阶段3C实施任务书:组合验证、限定联调与诊断导出

2026-09-23补修复更新:R1–R5已修复并完成本轮技术验证;外部实施复核待完成。最新证据见补修复交付与逐项证据,源码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 <manifest>模式。
  • 无参数或非法参数必须不访问网络并以非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. 必跑命令

方案审查通过后,实施记录必须列出实际命令和退出码:

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最终通过。