3.6 KiB
3.6 KiB
外部开发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,不打包、提交或发布。
必须先读
C:/projects/ft/CodexOutput/upserver/阶段3B实施任务书-2026-09-22.mdC:/projects/ft/CodexOutput/upserver/阶段3B审查清单-2026-09-22.mdC:/projects/ft/CodexOutput/upserver/阶段3B主会话代码审查-2026-09-22.mdC:/projects/ft/CodexOutput/upserver/阶段3B实施记录-2026-09-22.mdC:/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错误。 - 用户明确要求实施者必须是本外部会话。你不能把候选测试结果直接当成自己的交付,必须独立检查源码、差异和测试。可以在确认正确后保留候选实现,也可以最小重做;不要为了制造差异而无意义改写。
- 工作区包含大量其他历史/并行改动。不得整理、批量回退或修改任务书禁止的文件。
你的任务
- 核对当前
PlayerKVSessionOwner.cs与PlayerKVSyncCoordinator.cs,确认R1触发路径和候选修复是否正确,操作租约是否在所有路径归还,等待者取消是否不会取消共享HTTP或产生未观察异常。 - 若候选修复不完整,只在任务书授权文件内做最小修复;若已正确,明确记录“独立审查后保留现有候选实现”。
- 核对并运行确定性交错测试
queued-refresh-close-returns-structured-result,同时覆盖排队Flush关闭、重复Close、transport忽略取消、票据等待取消等既有关键路径。 - 复跑:
dotnet run --project C:/projects/ft/CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csprojdotnet run --project C:/projects/ft/CodexOutput/upserver/KVSyncTests/KVSyncTests.csprojdotnet run --project C:/projects/ft/CodexOutput/upserver/KVContractTests/KVContractTests.csprojuloop compile --project-path C:/projects/ft/Client --wait-for-domain-reload true
- 更新你自己的实施记录和最终SHA256;不要改共享状态/TODO/README/接手入口,这些由主会话维护。
- 严格按任务书§7交付:修改/新增文件及SHA256、测试数量/分组/命令/退出码、阶段2/3A与Unity结果、合成证据和未验收项、已知限制或偏离。
完成标准
RefreshAsync在排队后被Owner关闭时返回结构化Cancelled,不向业务层抛异常。- 操作租约可靠归还,
CloseAsync不会因此永久等待,文件锁仅在实际操作收尾后释放。 - 3B、3A、阶段2测试及Unity编译全部通过。
- 未越过3B边界,且交付格式完整,供主会话独立终审。