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

101 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 阶段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 <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. 必跑命令
方案审查通过后,实施记录必须列出实际命令和退出码:
```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最终通过。