Files
ft/CodexOutput/upserver/F1-F2-F3验收记录.md

41 lines
3.8 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.
# F1/F2/F3实现与验收记录
2026-09-21。依据《F1-F2-F3实施方案.md》及其追加评审。当前仅完成代码/离线验证,独立review结论另见《F1-F2-F3代码审查.md》。
## 变更
- F3:QuitAct在UI/配置清理和第一个await前按Logout标记注销,消费标记防重复;非注销保持。AGG先基类失效、后渠道退出。基类身份字段和PF凭据先清理,再通知HTTP会话更换,避免通知期间仍暴露旧InternalId。
- F1:ClubService 11个已列本人playerId请求改认证ApiPlayerId,创建自身缓存同步;每方法授权和会话检查,成员目标保持数字目标含义并验证;签到/系统消息发送数字本人ID。3个成员UI的本人判断同步修正。
- F2:CreateClub仅显式code0+有效clubInfo成功;code1已有会员不返回创建成功,避免UI重复扣费。QuitClub仅显式code0/1后清理,其他失败/非法/过期响应保留状态;HandleApply/Kickout将预先副作用移至成功之后。
## 本轮实际验证
- ExitTests:4组通过(注销/非注销×停止正常/抛错),使用实际QuitAct源,账号/Hub/引擎为替身;验证进入Hub等待前Logout已执行,异常继续清理、重复执行不重复注销。替身迟到回调不能证明真实SDK内部全局状态。
- ClubRegression:25用例通过,生成器每次从生产ClubService提取helper及Create/Quit/Demote/Promote/Kickout方法,模型亦从生产提取;传输/引擎为替身。覆盖无授权、失败/业务失败/非法和缺字段响应、成功、创建code1、成员目标、旧会话、Kickout失败无预扣。
- MinimalLoginTests:31项通过,实际认证会话/HTTP管理器源码;与ExitTests分开,不冒充真实QuitAct+SDK端到端。
- RealtimeTests:实际RTService源+替身Hub,既有生命周期测试通过。
- 最新2079运行时源文件和工程引用重新生成,Roslyn编译退出0。git diff --check通过。
- 本轮没有调用正式服写接口,未创建/退出俱乐部、未扣资产、未写KV;没有宣称Unity运行或AGG真机验收通过。
## 尚待完成
- 独立review及其问题整改后填写最终裁决。
- Unity UI、真实SDK、阻塞实际Hub时的真实HTTP/渠道回调组合场景复测。
- F1列明范围外:ClubService.SendHelpOthersEnergy的donateId、其他聊天/点赞/体力显示及SocialClubJoined等旧UserId引用仍要单独迁移。不能将本次11个请求修正写为全社交模块完成。
- KV生产会话桥接、存档切换、SDK删除没有实施,继续按原阶段门。
## 复跑
```powershell
$env:DOTNET_CLI_HOME='C:/projects/ft/CodexOutput/dotnet-home'
$env:APPDATA='C:/projects/ft/CodexOutput/dotnet-appdata'
dotnet run --project CodexOutput/upserver/ExitTests/ExitTests.csproj --verbosity quiet
python CodexOutput/upserver/ClubRegression/generate.py
dotnet run --project CodexOutput/upserver/ClubRegression/ClubRegression.csproj --verbosity quiet
```
### Review整改与复验
- R1:HandleApply空ID批量拒绝按服务器code4处理;空ID同意不发送;普通目标仍只接受code0。
- R2:签到新增会话内在途防重和完整日期成功防重;失败释放锁可重试,旧会话结果不发奖/写入。ClubSingin返回Task,SocialClubJoined等待完成再刷新CD,期间禁用按钮且旧会话不刷新UI。
- ClubRegression扩大为31用例,新增生产方法/模型提取覆盖上述分支,全部通过;2079源码最终重编译退出0。
- 仍未进行Unity实际按钮交互、真实SDK或会员/资产线上操作。独立agent正在复审本次整改。
## 最终裁决
独立agent复审通过:R1/R2已修复,本批源码无剩余已确认阻塞项,并独立重跑ClubRegression31项通过。F1/F2/F3列明范围的代码整改与离线验收完成;Unity/SDK实机场景仍待执行,不能标记为全社交迁移完成。开发状态与TODO已同步。