# Unity CLI Loop 最小登录实际验收 ## 最新结论:第二轮验收收尾(2026-09-21 21:40) 先读[第二轮验收结果](最小登录收尾-第二轮验收结果.md)及[本轮限定自审](最小登录第二轮-限定代码审查.md)。本轮补齐真实Unity登录等待中退出、旧重试按钮、成功延迟中退出;快速101→102→101三轮错误0,Cookie/旧Hub释放通过,最终实际Hub Test=OK。测试发现问题后仅修复SoundService、FishingAct、FishingBehaviorB、FishingStage四文件,实施前均有方案裁决。编译0错误/271警告;新补丁只有主会话自审,尚无新独立复审。 101抽查的等级/金币/钻石/鱼竿前后相同,已打开战令预览及社交页;真实SDK/真机、HTTP故障、真实断网与业务推送、必要钓鱼玩法及完整存档仍待验收。正式API **http://s101.local:18080/**;Editor最后取证为PlayMode、101/FishingStage。下一步补验收条件,发现问题再评审编码;KV/俱乐部扩展/SDK删除暂停。下方较早状态均为历史,不能覆盖本条。 更新:2026-09-21 20:50。项目 C:/projects/ft/Client,Unity 2022.3.62f2c1,Unity CLI Loop 2.2.0。正式 API **http://s101.local:18080/**,Hub /gamehub。本文覆盖早期“Unity不可操作/仅待人工测试”的状态,历史证据保留。 ## 当前结论 本轮完成实际输入登录、非法ID失败后更正重试、同号退出再登录、101→102→101,以及退出身份/Cookie/旧Hub释放的**生产阶段入口集成验收**。最终四轮进入FishingStage后错误日志均为0;最后实际Unity Hub Test返回OK。已修复测试发现的五处缺陷并完成限定主会话自审。 本阶段尚不宣称全部验收通过:真实渠道SDK、完整游戏存档隔离、真实断网自动重连、登录网络竞态及玩法专项仍待验收。没有Git提交/发布。游戏仍依赖PlayFab。 ## 实际结果与边界 | 项目 | 结果 | 证据及限制 | |---|---|---| | S0 正常登录 | 通过 | `uloop-final-first101-state.json`:101/InternalId2/Authorized=true/FishingStage,运行地址正确。通过激活输入框与EventSystem点击登录。 | | S1 失败重试 | 本地非法ID与纠错通过 | `uloop-fixed-failure-state.json`、`uloop-fixed-failure2-state.json`:not-an-id两次失败均未授权;`uloop-fixed-corrected-state.json`:更正101成功。真实HTTP401、断网超时恢复未注入,不能视作已测。此测试在后续仅增加退出/Home延迟保护前执行,PF登录代码此后未变。 | | S2 同号重登 | 阶段集成通过 | `uloop-final-relogin101-exit/state/errors.json`。调用与渠道确认相同的QuitStage.Logout+SwitchStageAsync路径,再实际输入101。没有用停止PlayMode或清缓存代替注销。真实渠道按钮和SDK组合回调另待。 | | S3 101→102→101 | 认证身份/Cookie/Hub通过;完整存档隔离待验收 | `uloop-final-switch102-*`、`uloop-final-return101-*`:102/InternalId3,返回101/InternalId2。所有旧身份清空、旧Cookie容器替换且新容器Count0、旧manager会话版本增加、旧Hub断开。未比较全部游戏存档或执行跨账号写入。 | | S4 登录界面异步退出 | 离线回归通过,Unity竞态待验收 | LoginActTests覆盖等待/成功延迟/旧按钮和输入取消;本轮没有注入真实登录等待、SDK迟到回调、真实点击延迟竞态。 | | S5 SignalR | 实际首连、只读RPC、退出释放通过;断网待验收 | 三次退出WasConnected=true、OldHubConnected=false;`uloop-hub-test-result.json`:Connected=true、HubTest=OK。使用实际IRTService.Publish,服务端GameHub.Test只记日志并返回OK。不是服务器业务推送或真实断网恢复测试。源码保持SkipNegotiation=true+WebSockets;未抓包另行证明请求数量。 | | S6 首页/钓鱼 | 四次进入FishingStage无运行时错误;完整玩法待验收 | `uloop-final-*-errors.json`和`uloop-final-complete-errors.json`均0;最终Game截图留存。未逐个点击战令/礼包/俱乐部并抛竿,未验证完整存档保持。 | 所有退出结果均验证:OldUserAuthorized=false、OldInternalId=0、OldUserIdCleared/OldApiPlayerIdCleared=true、CookieJarReplaced=true、NewJarCount=0、SessionAdvanced=true、OldHubConnected=false。不输出Cookie/令牌。新容器的SessionVersion可以从头计数,不能用两个容器之间的数字大小判断退出是否成功。 ## 复现、修复与审查 完整实施前方案/补充评审:《Unity重登缺陷-方案与评审.md》。最终限定审查:《Unity重登修复-限定代码审查.md》。五个生产文件: 1. PFLoginAct:输入模式下失败重试可更正ID。 2. ActivitySentryManager:容器重建后重新注册活动类型。 3. QuitAct:退出取消任务后销毁常驻TimerMgr。 4. PlayFabMgr:注销后不再无凭据上传/出队,销毁时保存已有本地PlayerPrefs。 5. HomePanel.LastShowPanel:旧面板/旧容器延迟回调不再访问新会话。 早期失败证据没有隐藏:`uloop-reentry-error-stacks.json`、`uloop-fixed-relogin-errors.json`、`uloop-before-home-guard/uloop-final-relogin101-errors.json`。最终通过总日志:`uloop-final-reentry-run-03.log`,宿主退出码0。没有清控制台冒充通过;修复后停止/重进Play载入代码,失败轮和最终轮分开记录。 ## 验证 - 最新Unity编译:`uloop-home-repair-compile.json`,Success=true,0错误、271警告;不是0警告。 - LoginActTests、ExitTests、ReentryTests、LogoutStorageTests、HomeExitTests退出0,详见各目录Latest.log。后四类测试的SDK/引擎/容器依赖使用替身,实际生产文件或方法体来自当前源码。 - 五文件diff空白检查通过,源码校验和`uloop-repair-source-hashes.json`。 - 全程目标路径固定C盘,未操作D盘Editor。ULoop动态代码保持Restricted,不新增Input System或放宽权限。 - 未直接操作KV写删/会员/奖励/资产或清档;实际游戏登录会执行既有初始化、同步回调,不能声称这些Unity流程全部网络只读。 ## 接手与下一步 当前Editor保持PlayMode,账号101、FishingStage,Hub连接正常(20:50取证)。先确认实时状态,勿重复执行已通过流程或将留在PlayMode当作新的测试结果。 下一步优先补**受控验收**:S4真实时序与网络失败/恢复(需可控的请求延迟或故障注入),S6由用户确认账号状态并测试必要入口/抛竿,真实渠道SDK/真机换号退出。真实断网测试需限定到目标客户端,不能断开整台机器或影响D盘项目。发现缺陷才补专项评审并编码,不自动展开KV/俱乐部/SDK删除。 本轮新补丁已做主会话限定review,尚无新的独立agent复审;旧独立R1复审不自动覆盖这些补丁。