Files
ft/CodexOutput/upserver/最小登录收尾执行结果-2026-09-22.md

56 lines
5.4 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.
# 最小登录收尾执行结果
2026-09-22。用户要求执行独立审查和自动化验收,当前不打包。正式 API **http://s101.local:18080/**;目标仅 C:/projects/ft/Client,工具 Unity CLI Loop 2.2.0。
## 本轮结论
**独立审查、已发现缺口的最小修复及可执行自动化验证已完成。** 实际 Unity 最终快速101→102→101三轮运行时Error均为0,核心进度前后相同,实际Hub Test=OK;网络故障在外部真实传输宿主通过。尚未覆盖的Unity完整UI网络故障、主动业务推送、人工玩法/完整存档及最终包验收仍单列,不等于整个项目迁移完成。
## 独立发现、修复与复审
独立任务逐项审查前两轮九文件,未确认新增P0/P1,发现两项现存P2:GetUI独立异步续体在退出后仍操作旧对象/新容器;SoundMgr/SoundService初始化晚完成可在Release后重建订阅/资源。实际方法提取宿主先保存正常4项通过、退出安全4项失败(退出1)。
方案:《独立复审P2修复方案-2026-09-22.md》;实施前完整裁决:《P2实施裁决-2026-09-22.md》。四个生产文件的本轮边界:
| 文件 | 修复 |
|---|---|
| FishingAct.cs | GetUI/NewEnterMap及直接子方法OnCameraSpeedEvent捕获原容器/登录令牌,等待后检查对象、取消和容器替换 |
| SoundService.cs | 初始化版本失效、局部句柄所有权、成功移交、失败回滚及重复Init/Release |
| SoundMgr.cs | 初始化版本/原容器检查,局部音频/订阅清理,成功移交;重复地址只加载一次,避免覆盖句柄 |
| FishingStage.cs | 真实快速回归新增复现Stop已清订阅但对象仍活/令牌未取消;Stop首行置stopping,启动/进度/既有旧异常过滤同步检查 |
Stage失败证据保存在 **p2-before-stage-stop/**。没有通过重建已销毁订阅容器继续旧阶段,也没有无条件吞掉当前阶段异常。未改变玩法规则、正式地址、身份映射、存档机制或框架DLL。
四文件**修复后独立复审通过**,58项实际方法提取定向测试全部通过:正常4、原失败回归4、扩展41、Stage边界9。覆盖每个资源引用只释放一次、旧任务不释放新一代资源、失败回滚、重复初始化/退出及原正常行为。证据《最小登录独立复审-2026-09-22.md》、ReviewLifecycleTests/fixed-*.log/json。SoundExitTests/P2-Latest.log与MapExitTests/P2-Latest.log也通过。
这些是生产方法+依赖替身测试;不是每个Addressables细粒度时序的真实Unity复现,也不证明全项目所有UI异步路径安全。
## Unity实际最终回归
| 项目 | 结果/证据 |
|---|---|
| 快速101→102→101 | p2-final-reentry-run.log退出0,三轮错误0,原始错误日志p2-progress-*-errors.json |
| 退出会话隔离 | p2-progress-102-exit.json / p2-progress-101-exit.json,旧身份清空、Cookie替换且新Count0、SessionVersion推进、旧Hub断开 |
| 核心进度抽查 | p2-progress-101-before.json / p2-progress-101-after.json完全相同;不替代完整游戏存档核对 |
| 实际Hub | p2-final-hub.json:101、Connected=true、Test=OK |
| 正式地址和最终状态 | p2-final-state.json:FishingStage、101/InternalId2、Authorized=true,http://s101.local:18080/ |
| 确认载入新代码 | p2-compiled-assembly.json / p2-final-loaded-version.json,HotUpdate MVID一致,编译产物含stopping字段 |
| 最终日志 | p2-final-errors.json:Error=0;p2-final-warnings.json:Warning=161,未宣称零警告 |
本轮完整编译 p2-unity-compile.json 为0错误/274警告。Stage补丁首次等待域重载超时90秒;工具可响应后重试编译 p2-stage-stop-compile-retry.json 成功,0错误/0本次警告(增量/无新警告,不表示全项目警告清零)。未运行uloop fix、删除锁或清Library。
## 真实网络故障:通过,但证据层级独立
《网络故障验收结果-2026-09-22.md》:实际生产认证/manager/RTService源码+项目SignalR DLL8.0.8.0在net9.0宿主运行,loopback代理固定转发s101。401、真实连接中断、生产15秒超时均分类正确、不保留授权;恢复后102真实登录与Cookie授权Get成功。已有WebSocket底层断开并拒绝重连3秒后自动恢复,前后Test=OK,2次upgrade/0次negotiate;释放后连接0、无晚重连。
Unity Restricted阻止测试构造器中的网络类型,未提权或绕过,因此**外部宿主通过不能标作Unity完整登录UI或Mono/最终平台通过**。代理已停止,未改整机网络/DNS、防火墙或D盘Unity。Test RPC不是主动业务推送。
## 剩余项及交接
1. Unity完整UI的HTTP失败/超时恢复、Unity/最终平台自动重连:现有生产传输证据已补,平台/UI部分仍需受支持的受控环境或最终包验证。
2. 安全可触发的服务端主动业务推送及重连后订阅验证;不制造会员/奖励/资产事件。
3. 用户人工完成一次必要钓鱼体验并核对账号原进度;完整道具/任务存档不能只由核心字段抽查替代。
4. 真实渠道SDK退出/换号/迟到回调及真机,按用户安排**最后统一打包确认**,当前不索要APK。
独立审查待办已关闭,本轮发现的P2和Stage停止窗口已修复且复审/回归通过。后续以剩余验收为主,发现具体问题才追加方案和编码。KV、俱乐部扩展与SDK删除继续暂停;没有提交、推送或发布,现有外围差异保留。Editor最后保持PlayMode、101/FishingStage,供人工复测。