# 不可用药水引导修正:裁决与实施记录 2026-09-28,主会话。独立方案审查通过,无P1/P2。主会话于2026-09-28T08:58:34.5804905Z核对19项SHA256及长度,19/19一致。 ## 裁决与批准 | 审查项 | 裁决 | |---|---| | 1 Init处延后恢复 | 接受;在现有存档取出后、原恢复循环前处理。 | | 2 存档/isUpdate保持 | 接受;只保留该组到新字典并continue,不改进度、不清其他指针、不额外Save。 | | 3 GetEvent与异常 | 接受;仅只读GetEvent(4,5)严格=-1,查询失败走原恢复并告警。 | | 4 其他路径边界 | 接受;仅Editor非SERVICE_HOST、KV Enabled/Ready、EventPotion01有效未完成节点。 | | 5 回调误改风险 | 接受已核实风险;选择源头延后方案,不删除钓鱼门。报告“唯一正确选择”限定为本次已比较的三个选项,不推成一般架构结论。 | | 6 红绿与回归 | 接受;实际Init与AddIndex/GuideNextEvent,覆盖无活动/有活动/异常/节点及原奖励消费回归。 | | 7 退出与闭环 | 接受;先确认现会话已退出drain并退役permit,再改代码;后续完整闭环连续执行。 | P3-1接受:实际检查节点panelName恰为EventPotionPanel,新增节点不匹配负例。P3-2接受:活动类型4/子类型5使用具名常量或同处明确语义注释。 批准仅修改DataCenter.GuideData.cs与UserService.KVFishingRewardValidation.cs,允许本目录记录命令/测试/运行证据。不改配置、钓鱼费用/奖励逻辑、存档数据、claimed,不打包。实施以完整方案为准;不额外安排实施前复核。 ## 检查点0 实际CLI已见68504的playing=false/ready=false/Error=null;事件记录在08:35:55.4493751Z已closed,未新增fishing事件。没有为了满足步骤再发QuitStage;接下来核cache和最终服务器快照,退役当前许可。退出是谁触发的不作推断,不把本轮只读检查写成主会话执行了退出。 ## 检查点1:有效红测与生产修正 085931Z最终快照与082052Z的101全部55键一致;permit已归档,全部claimed保留。红测前两次因夹具静态PF赋值次序、原异步库Edit Mode上下文缺失提前失败,不计目标红测;预加载改同步完成,夹具临时补齐/恢复原上下文与runner,未改DLL或Init加载流程。guide-red-result3.json在实际Init完成且无异步异常后,明确失败于不可用药水指针为空断言;目标红测成立。随后按合同仅增加Init分支和私有只读判断,活动4/5具名,异常告警并原恢复。待全绿验收。 ## 检查点2:限定实现与回归通过 奖励固定验证55组243断言全绿(原45组171+新增10组72);消费19组81断言;M09/M10/M12的12断言;B2-20真实31模块双epoch的83断言及restored=true全部通过。Editor编译0错误(272历史警告),SERVICE_HOST编译exit0/0错误。本轮测试均mock,formalRequests=0。17项非修改焦点hash仍与原清单一致;仅两项批准源码变化,生产增加30行左右、既有逻辑不重排。新hash见guide-implementation-hashes.json。测试环境前两次失败记录保留,不冒充红测;有效红测为result3,绿测为guide-green-result.json。 新增实际Init测试临时补齐原异步库Edit Mode上下文,结束恢复上下文/runner/资源定义/容器;没有修改第三方DLL或真实配置文件。生产不改默认PF/非Editor/SERVICE_HOST行为。后续新进程101实际闭环仍待执行,未宣布整体关闭。 ## 检查点3:真实验证准备,等待正常退出 固定回归后CLI核对playing/enabled/ready=false、error/run=null、permitExists=false;清理成功。09:15:22Z对68504发正常CloseMainWindow且返回true;再次查进程仍在,日志止于关闭请求前,不强杀、不启动第二实例,已请用户查看退出/保存对话框。091527Z新备份10155键/10245键均与085931Z逐值一致;准备新v3脚本但尚未执行。 本轮备份工具共两轮(085931Z、091527Z),应用层合计4登录+4Get,工具Set/Delete=0;隔离测试formalRequests=0。实际钓鱼次数仍0,尚无新运行许可/新claim。原13个claim全部保留。下一步仍在主会话,先等旧进程确实退出再launch;用户启动CLI后核环境与最新基线再进入Play。若时间跨日或有外部操作,应刷新备份而非盲用091527Z。无需新增内部实施复核。 检查点3续:用户确认正常关闭后,主会话检查68504不存在,再经uloop launch启动项目,新进程55088(本地17:16:38)。加载完成,待用户启动CLI Loop;尚无新许可/Play/实际收鱼。 ## 检查点4:真实登录与动作前基线通过 用户确认CLI已启动,19/19实施hash一致,新进程55088空闲、固定API核对正确;091527Z距当前仅3分钟,未跨日,使用该基线建立既有v3。09:19:17Z claim,09:19:26Z ready;首轮采样尚未完成登录,不误报失败。随后实际IsLogin=true、101/InternalId2/kv-loop/API正确、level62、gold36550472、Energy7305;药水GetEvent=-1、curDefine/curGroup/curSaveData均null,存档EventPotion01|4|False。没有GuideSaveDataNew写入审计。 092018Z动作前55键完整快照,GuideSaveDataNew原值保持,所有55键与cache.baseline一致,pending=0/activeBatch=null/unknownBatch=null,无fishing事件,accepted4。相对091527Z仅MonthlySignEvent(签到index6→7、日序3→4)、NewPlayerDataDic(体力7275→7305/登录统计)、ShopPackBuyCount(日序270→271)变化;正常签到路径与截图吻合,非钓鱼奖励/非补发,操作人已请用户确认。两次截图先每日赠礼后主页x5,AI未模拟UI输入。 用户表示已可甩杆;已交用户一次普通抛竿/拉杆/收鱼,成功停奖励页先不收下,失败停止不重试。当前仍活动Play及v3,不能直接Stop/重进。后续奖励快照、收下、正常退出、新进程恢复及最终复核未完成。此次新增一轮只读备份工具2登录+2Get/Set0/Delete0(含102附带观测);游戏写入另计。 检查点4续:09:21:37Z用户实际抛竿通过原门,fishing-energy-applied为7305−5=7300,consume-confirmed票据sequence6及consume-ready已记录;09:21:39Z strike完成(写0),当前战斗中。实际尝试计1,不允许第二次自动尝试。 ## 检查点5:唯一一次真实收鱼与奖励落库 09:21:54Z fish10231 reward-confirmed(主档sequence12、Map_5_102 sequence11)及presented各1;用户报告已点击收下,主会话明确不再抛竿。奖励页停留截图未采集,不能补造;以原审计确认+用户收下说明+实际主页截图+服务器全量对账作为已获得证据,最终复核说明此偏差。092245Z快照与092018Z仅NewPlayerDataDic/Map_5_102两键变化;金币36550472→36552317(+1845)、体力7305→7300(−5)、energyRM7231→7236;鱼10231从6|0|54|0|False→6|9.23|54|5|False。GuideSaveDataNew及BattlePassRecordTask均保持,其他鱼不变。全55键cache相等,pending=0、active/unknown=null;consume/reward confirmed各1、presented1、fault0。实际三引导指针仍空,药水存档仍4/未完成。用户签到操作人尚未单独确认;签到+30及MonthlySignEvent变化已明确归因签到路径,未归入钓鱼收益。准备正常退出和新进程v1恢复。 ## 检查点6:正常退出与恢复准备 奖励后Unity Error=0。经QuitStage在09:23:42Z记录closed,CLI实际playing=false/Ready=false/Error=null,cache待存/active/unknown均空。092418Z退出后全量55键与092245Z全部一致;v3许可归档permit-retired-guide-live-55088.json,全部14个claim保留。以092418Z制作既有v1恢复准备脚本,仅准备未执行;09:24:39Z向旧编辑器发正常关闭请求,不强杀。恢复仅登录读取/正常退出,不再抛竿,需验证金币36552317、体力7300、鱼10231=6|9.23|54|5|False、药水原存档保持。 检查点6续:已确认55088完全退出,uloop launch启动恢复进程130200(本地17:25:00)。待用户启动CLI后执行prepare-guide-recovery-v1.cs.txt及只读恢复核验guide-recovered-values.cs.txt,不运行第二次钓鱼。 ## 检查点7:新进程恢复完成,交付待复核 恢复进程130200以v1登录101,09:28:49Z ready;guide-recovered-values.json为valuesPass=true、55键mismatches=[],实际金币36552317/体力7300/energyRM7236,鱼10231原值6|9.23|54|5|False及内存最大重量9.23/等级6一致,EventPotion01仍4/未完成且三个指针空。初次动态采样在启动阶段空引用,补GContext就绪判断;后续游戏Error0,非生产缺陷修复。 正常QuitStage在09:29:30Z closed,pending0/active与unknown为空。最终S3为092948Z,与S2 092418Z全部55键一致;两run最终cache与S3全部相等,10245键各轮观测一致。恢复run只有一次主档同值accepted,无钓鱼事件;v1许可已归档,根目录无permit,全部15claim保留。编辑器非Play,本包101停用协作窗口结束。 已编写合并实施交付与独立复核提示词,明确签到、提前收下缺奖励页截图、采样前置及请求统计偏差。下一步独立复核侧,仅复核本两文件及101业务包;主会话待核hash/逐项裁决后才能正式关闭,不继续新增开发或自封通过。