4.9 KiB
R1报错修复裁决与最小实施方案
检查点0:依据与逐项裁决(编码前)
用户要求“如果可以修复,请修复掉”,范围为已定位的两处错误。主会话重新核对R1受审210项全部一致;独立复核报告SHA256为520C61DC28CCA763BAE400CF154C7FC28B2CA71F5A0F67159D38A8E0F42B5A63。
| 项 | 裁决 |
|---|---|
| 复核①Advert修订 | 接受,保持不动。 |
| 复核②45键初始化 | 接受,不重导、不补写建筑字段,不写101/PF源档。 |
| 复核③核心装备/恢复 | 接受原证据,但会话closed不等于退出场景流程无异常,新增退出问题须修复验证。 |
| P2-1建筑缺键 | 接受已获独立批准的单方法修订,DecodePlayer默认null改为字符串0;原字符串不变,显式null仍拒绝,Reset清空合同保持。 |
| P3-1签到辅助 | 接受,继续披露现有关闭回调辅助,不称无辅助UI全流程。 |
| P3-2完整B3A | 接受,跑--all三个探针,不以单探针代替。 |
退出自动重进的完整补充方案与主会话评审
此项是复核报告之后新定位的问题,不冒称已由独立评审批准。用户已明确要求修复;主会话本节完成方法级方案、边界和验证评审,再按原R1已有QuitAct白名单实施。无需新建生命周期框架,也不扩大为热换号。
根因:QuitAct.OnStarted在清理结束后Invoke(Unload,2秒),旧QuitStage.RequestNextAct无条件载入PreBoot,同进程Claim必然重入。选择在QuitAct.OnStarted的既有清理及base.OnStarted之后、安排Unload之前,加UNITY_EDITOR && !SERVICE_HOST且PlayerKVGameplayLoop.Enabled的窄分支:记录需重启提示;ShutdownRegistry.Process.Status为Ready才结束Editor PlayMode;任何其他状态保留当前进程与排水任务,不安排Unload,不进入PreBoot。普通Editor/Player/SERVICE_HOST仍执行原Invoke。
方案逐点评审:
- 执行点位于StartAsync已完成既有释放/有界观察之后,不提前跳过资源清理;Ready才Stop,Pending/Failed不得用域重载掩盖未完成排水。
- 阻止的是当前测试模式自动重进,保留Claim的CreateNew、claimed文件及只运行一次合同;不删标记、不吞重复文件异常、不重新认证。
- 不修改QuitStage及其所有普通调用方;不改Bootstrap,不改默认游戏退出行为。
- 模式分支不发任何存档/HTTP请求;不会产生补偿写或覆盖玩家值。
- 已审建筑修订与本修订相互独立;测试分别证明根因,再联合验证真实登录/正常退出后不会第二次Bootstrap。
- 失败边界:若排水未完成,记录状态并停留退出阶段,保留Registry,不把停止准入当作已关闭。不得为了测试通过强制释放任务。
主会话评审结论:方案完整,批准最小实施。生产改动仅DecodePlayer一默认值和QuitAct.OnStarted一个Editor分支。测试允许更新既有PlayerSchemaTests、固定M01验证host及KVGameplayLoopTests专项工具;不修改getter/排行榜算法/存档/服务器/SDK/场景。
检查点与验收
- 测试先行:缺键0与真实Replace后InfiniteBuildingLevel读取;存在字符串/空串原样、显式null拒绝、旧字段不泄漏、Reset仍清空。退出测试直接编译真实QuitAct,覆盖测试模式Ready停止、Pending/Failed等不自动重进/不停止、普通模式原2秒Unload。
- 最小补丁与回归:4B2全量、Unity M01/B2-20、B3A --all、装备链与许可;编译无新增错误。保存首败。
- 新进程102真实登录回归,观察排行榜NRE不再出现,正常QuitStage后等待超过原2秒,验证无PreBoot重进/claimed异常,正确停止Play,保留原数据/标记。需要重新启用已批准102许可,不重新导入或执行装备/消费。检查点更新日志。
本方案完成用户修复请求,不由此自动开放整个4B3/G4、4C、热换号或打包。
2026-09-24 R1报错修复检查点3及关闭
- 新进程101820_639258292892095408真实102登录成功,缺键建筑及等级均0;装备/等级/主要货币保持。登录与正常退出阶段原两类异常均未出现。
- 正常QuitStage于06:51:45Z closed,Registry Ready后自动停止Play;没有手动Stop。06:53:55只读Hierarchy确认editor状态。三个claimed保留、permit归档,最后CLI正常退出Unity。
- 前后backups/20260924T064749Z至20260924T065309Z:101空,102原45字符串全相同,不新增建筑key。本轮自然同值写1次,不能当作HTTP计数。
- 工具限制:退出脚本跨Play停止的await未返回并180秒超时;误用Editor未注册的get-project-info产生单独工具错误。完整证据保存、未清Console。关闭成功由事件、Ready日志、非运行Hierarchy及对账证明。
- 独立复核P2-1/P3-1/P3-2处理完成,R1正式关闭;签到关闭回调辅助边界仍披露,完整4B3/G4等未完成。详见《阶段4R1报错修复验收与关闭裁决-2026-09-24.md》。