Files
ft/CodexOutput/upserver/阶段4C2第二次真实尝试与收线取消记录-2026-09-24.md

45 lines
5.1 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.
# 阶段4C2第二次真实尝试与收线取消记录
2026-09-24。主会话:接手会话(诊断补充实施后第一次真实运行)。用户授权"开始下一次真实尝试"。新进程62216,run `KVGameplayLoopTests/runs/62216_639258472117601499`。结论先行:**预消费合并门本次通过、扣费确认成功、战斗进行约18秒后在收线途中被"controller disabled"取消并退出——这是4C2实景生命周期的新缺陷,不是上一轮诊断所针对的门拦截。**
## 结果概要
- 上一轮诊断消息未触发:本次抽鱼为普通鱼,合并门(fishItem/IsGeneralFish/IsFree/IsRetry/IsDuel/IsPackItemFish/curFishData)全部通过,`fishing-reward-preflight`正常发出。
- 扣费一次并服务器确认:energy 413→403(上次尝试后体力自然恢复至413),energyRM 112→122,ad消费成就日266→267。动作前后仅 `NewPlayerDataDic`、`BattlePassRecordTask` 两键变化,无意外键,101仍空。
- 战斗:`fishing-consume-ready`(可拉杆)→`fishing-reward-segment`(战斗开始,line_battle_start_01)→用户真实收线约18秒,期间4次`fishing-reward-special-skill-check`全部通过(无invalid停止)。
- 11:54:00.766Z fault:**`Fishing reward cancelled: controller disabled`**,来源 `FishingUpdateSys.cs:3203 OnDisable → PlayerKVGameplayLoop.CancelReward(this,"controller disabled")`;随后closed、自动停止Play。用户视角:"还没收线就退出了"。
- 无奖励发放、无鱼获;按约束不补发/退款/重放。许可已退役 `KVFishingRewardTests/permit-retired-62216.json`,无活动permit.json;6个历史claimed+本进程claim保留。
## 执行过程
1. 初始备份20260924T114443Z(101空/102精确45键,只读6登录+6Get类工具请求;本轮工具累计login 6/get 6/set 0/delete 0——3次备份×2账号)。备份初次因工作目录落错位置,已完整迁移并校正summary路径,102.json内容与sha一致。
2. 旧Unity 42620经核对空闲(playing=false、无run、无permit)后CloseMainWindow正常退出(约45秒,无强杀)。
3. `uloop launch`新进程62216;CLI Loop服务自动在线。`PrepareFishingRewardPermit`首次因键名笔误被拒(键权限校验生效,符合设计),更正字面量后通过,v3许可激活。
4. Play Mode启动:loop enabled/ready,签到弹窗自行出现并关闭,控制台0错误;precast只读预检与上轮完全一致(frequency13、巡游-1、四组普通引导完成、七特技引导未完成、礼包/挑战关闭)。
5. 抛竿前备份20260924T115303Z冻结基线;用户手动抛竿一次。
6. 停止后备份20260924T115649Z对账(两键变化如上)。
## 证据
| 项 | 位置 |
|---|---|
| 审计时间线 | runs/62216_639258472117601499/events.jsonl(claim→ready→登录写→preflight→3×write→energy-applied→consume-confirmed→consume-ready→segment→4×skill-check→fault→closed) |
| 最终loop状态 | KVFishingRewardTests/diagnostic-impl/run62216-final-state.json(playing=false、error保留原文) |
| 控制台 | diagnostic-impl/run62216-console.json(fault后DOTween Transform销毁警告、FishingAct卸载、QuitStage unload警告均为退出拆除次序,非独立故障) |
| 运行摘要 | diagnostic-impl/run62216-summary.json |
| 备份 | backups/20260924T114443Z(初始/许可依据)、20260924T115303Z(动作前)、20260924T115649Z(停止后) |
| 取消源码 | Client/Assets/Scripts/GampPlay/FishingB/FishingUpdateSys.cs:3199-3204(`#if UNITY_EDITOR && !SERVICE_HOST`内OnDisable调用CancelReward) |
## 新缺陷初判(待完整评审后修复,本轮未改代码)
- 4C2把"FishingUpdateSys被禁用"接入奖励取消,本意是控制器销毁/放弃时保护票据流。但真实战斗中该组件在收线约18秒时被禁用(战斗技能/演出/对象切换的哪一环禁用了它尚未定位——战斗开始时未禁用,故障时刻与第4次special-skill-check同时),瞬时禁用被当作取消,导致已扣费战斗被中止。
- 该钩子属于4C2批准的7旧文件改动之一(FishingUpdateSys.cs.diff.txt),实景战斗生命周期正是此前记录中"留真实运行"的未验收部分;本次为首个真实战斗证据。
- 修复方向候选(需方案评审裁决,未编码):区分"瞬时禁用"与"真实退出/销毁"(如结合战斗状态、禁用时长或仅在动作生命周期结束时判定);或定位禁用源并确认是否本不应禁用。不得以放宽技能检查或跳过取消保护的方式修复。
- 上一轮门拦截问题随本次通过自然闭合为"随机鱼差异"假说支持(未再复现);诊断消息保留,供未来再次拦截时直接给出六字段。
## 边界
- 4C2/完整4C/G4未关闭;真实收鱼奖励闭环、新进程恢复、最终独立实施复核仍未完成。
- 本次消耗体力10点无奖励属已记录事实,不自动补跑、不补发;下一次真实运行仍需用户新授权。
- 保留:默认非Editor历史_cheatingScore编译错误、偶发StorageError根因未定、PF域名解析旧错误。本轮无UnitySkills使用、无打包、无KV工具写(set/delete=0)。