Files
ft/CodexOutput/upserver/其他AI接手提示词-阶段3B-R1与终验.md

41 lines
3.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.
# 外部开发AI接手提示词:阶段3B R1与正式交付
> **状态:已完成,作为历史交接记录保留。** 外部开发AI已按本提示词完成《阶段3B实施记录》检查点8;不要再次执行本提示词。当前入口转为3C方案与评审。
你是用户另开的独立开发AI会话。项目位于`C:/projects/ft`,Unity项目为`C:/projects/ft/Client`。正式API只能是`http://s101.local:18080/`。本任务只完成阶段3B候选改动核对与正式交付,不进入3C,不接游戏存档入口,不访问正式服,不删除PlayFab SDK,不打包、提交或发布。
## 必须先读
1. `C:/projects/ft/CodexOutput/upserver/阶段3B实施任务书-2026-09-22.md`
2. `C:/projects/ft/CodexOutput/upserver/阶段3B审查清单-2026-09-22.md`
3. `C:/projects/ft/CodexOutput/upserver/阶段3B主会话代码审查-2026-09-22.md`
4. `C:/projects/ft/CodexOutput/upserver/阶段3B实施记录-2026-09-22.md`
5. `C:/projects/ft/CodexOutput/upserver/阶段3缓存同步方案与评审-2026-09-22.md`
## 背景和流程边界
- 主会话初审复现R1:一个Flush占用dispatch、`RefreshAsync`排队、随后`CloseAsync`取消owner token时,原实现会把`OperationCanceledException`暴露给业务层,违反任务书§4结构化结果要求。
- 主会话错误地让内部子Agent写入了候选修复:`PlayerKVSessionOwner.RunRefreshAsync`捕获取消/网络/其他异常,并在3B测试中加入`queued-refresh-close-returns-structured-result`。候选工作区曾通过3B 29/29、3A 86/86、阶段2 42/42和Unity编译0错误。
- 用户明确要求实施者必须是本外部会话。你不能把候选测试结果直接当成自己的交付,必须独立检查源码、差异和测试。可以在确认正确后保留候选实现,也可以最小重做;不要为了制造差异而无意义改写。
- 工作区包含大量其他历史/并行改动。不得整理、批量回退或修改任务书禁止的文件。
## 你的任务
1. 核对当前`PlayerKVSessionOwner.cs`与`PlayerKVSyncCoordinator.cs`,确认R1触发路径和候选修复是否正确,操作租约是否在所有路径归还,等待者取消是否不会取消共享HTTP或产生未观察异常。
2. 若候选修复不完整,只在任务书授权文件内做最小修复;若已正确,明确记录“独立审查后保留现有候选实现”。
3. 核对并运行确定性交错测试`queued-refresh-close-returns-structured-result`,同时覆盖排队Flush关闭、重复Close、transport忽略取消、票据等待取消等既有关键路径。
4. 复跑:
- `dotnet run --project C:/projects/ft/CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csproj`
- `dotnet run --project C:/projects/ft/CodexOutput/upserver/KVSyncTests/KVSyncTests.csproj`
- `dotnet run --project C:/projects/ft/CodexOutput/upserver/KVContractTests/KVContractTests.csproj`
- `uloop compile --project-path C:/projects/ft/Client --wait-for-domain-reload true`
5. 更新你自己的实施记录和最终SHA256;不要改共享状态/TODO/README/接手入口,这些由主会话维护。
6. 严格按任务书§7交付:修改/新增文件及SHA256、测试数量/分组/命令/退出码、阶段2/3A与Unity结果、合成证据和未验收项、已知限制或偏离。
## 完成标准
- `RefreshAsync`在排队后被Owner关闭时返回结构化`Cancelled`,不向业务层抛异常。
- 操作租约可靠归还,`CloseAsync`不会因此永久等待,文件锁仅在实际操作收尾后释放。
- 3B、3A、阶段2测试及Unity编译全部通过。
- 未越过3B边界,且交付格式完整,供主会话独立终审。