Files
ft/CodexOutput/upserver/阶段4C1普通钓鱼消费确认实施交付与验收-2026-09-24.md

60 lines
7.5 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.
# 阶段4C1普通钓鱼消费确认:实施交付与验收记录
日期:2026-09-24。状态:**限定实施、核心真实消费与新进程恢复已完成,待独立实施复核;4C1尚未正式关闭。首次退出的修复证据和工具限制需明确裁决。**
## 1. 本次改变什么
仅在Editor专用KV运行模式中,把一次普通收费抛竿接到已有本地保存和服务器确认:原ReduceEnergy调用一次、消费事件一次、用原整档序列化保存,等待本动作每个key的最终原票据Confirmed后才开放拉杆。重复调用、失效对象、Unknown/401/存储失败等不能自动重扣。原PF路径保持。新增v2消费许可;旧v1许可仍只用于装备/恢复。
修改4个既有源码:FishingBehaviorB、PlayerData、UserService.KVGameplayLoop、Editor/KVGameplayLoopSetup;新增一个固定Editor合成验证host及meta。没有修改任务/活动/经济公式、底层Owner/Coordinator/Schema、场景、SDK或服务器。源码变化计数及25快照对照见KVFishingConsumeTests/scope-diff.json;较大的新增文件是故障与订阅测试,不是新增业务框架。
## 2. 审批及界限
[完整方案](阶段4C1普通钓鱼消费确认方案-待评审-2026-09-24.md)、[独立审查](阶段4C1普通钓鱼消费确认方案独立审查-2026-09-24.md)及[逐项裁决/检查点记录](阶段4C1方案审查裁决与实施记录-2026-09-24.md)。34项hash一致、8结论/4P3接受;25源码快照保留。仅一次普通收费抛竿到可拉杆,未点击拉杆,不含鱼获/发奖/转盘/热换号,不打包。
## 3. 验收证据与限制
| 验收 | 结果与证据(KVFishingConsumeTests/下) |
|---|---|
| C1-01 旧缺陷 | legacy-red-retry.log:实际旧方法2项红测;permit-red-retry.log:旧许可4/8失败 |
| C1-02 真实扣费/序列化 | 固定host直接调用真实PlayerData/ReduceEnergy/原序列化/Schema;19组81断言中的真实PlayerData分支;真实服务器19槽仅3/9变化,ad消费成就更新 |
| C1-03 恢复 | 满上限跨阈值、低于阈值、等待期间真实CoRecoveryEnergy到期tick写入;未复制恢复算法。离线夹具手动驱动到期tick,不宣称实跑出现自然恢复;实际403→393始终高于MaxEnergy50 |
| C1-04 最终原票据 | 本动作多key、同key重复、localOnly、中间/最终Superseded;真实main#4与BattlePass#3 hash和服务器逐键对账相符 |
| C1-05 控制流 | control-source-tests-retry.log 27断言;编译实际三个消费/guard方法,视觉/保存边界为spy;真实点击后审计Confirmed→ready,屏幕可拉杆。未逐个加载每条动画资源来复现所有回调 |
| C1-06 故障/退出 | 19组81断言包括Unknown、401、存储失败、部分提交、超时、取消、Tween中断、正常AutoKill及实际OnDisable完成后取消。首跑正常退出有两条关联错误,修复与红绿证据保留;不宣称首跑零错误 |
| C1-07 许可/边界 | 新许可8例、旧许可15断言、控制流不支持分支拒绝;消费v2只占用一次动作,恢复已用v1,无第二次消费 |
| C1-08 同步订阅 | 真实Achievement、BattlePass、MiniBP、LuckyGame、LuckMagic的订阅/原Save纳入固定host;当前Tables的FishingEvent/TriggerPack均无ConsumeEnergy激活记录;实跑活动scope/sentry快照一致,仅主档/战令变化 |
| C1-09 回归 | B2 75组1716、B3A 13组544;Unity M01等168、B2-20 83、装备9组28;退出Editor10组35/SERVICE_HOST10组30。Editor编译0错误270警告,SERVICE_HOST完整HotUpdate编译exit0。默认非Editor前后同一CS0103原有错误,不计编译通过 |
| C1-10 实跑恢复 | 129848一次消费及对账、新进程41828无旧缓存恢复393/112/任务10、正常Quit及最终45键逐值一致;首次退出有已修复错误,见§5,不冒称完整首跑零错误 |
合成最终固定host:KVGameplayLoopTests/fishing-fixed-runs/20260924T075803_7affe913e6b04553ac6cf0bd5b674152/result.json。所有故障测试使用.invalid替身,不转发正式请求。夹具固定反射目标仅用于无Awake的PF实例、Tween编辑模式初始化门、合成活动窗口及状态恢复;不能将这些测试表述成真实UI全流程。
## 4. 真实账号102发生的变化
Unity129848,Run目录KVGameplayLoopTests/runs/129848_639258318484354090。
- 一次扣费:energy403→393;energyRM102→112;配置倍率索引4/费用10,MaxEnergy50。
- 主档19槽其余17槽不变;ad中ConsumeEnergy102→112,日序114→266。金币213645、珍珠445、钻石100、鱼竿30003保持。
- BattlePassRecordTask每日10003、每周20001各0→10,其他内容保持。
- 102仍45键,仅上述2键变化,其余43键逐值相同;101仍0键。
- 最终原票据key/sequence/valueHash与只读Get逐值匹配;无领奖、补档、重导、删除claimed或第二次扣费。
首个CLI瞬时Click命中按钮但未触发UIButton的自定义短按流:该流要求Down/Up时间差>0。确认仍主界面且无动作写入后,用CLI LongPress命令0.15秒模拟一次短按(低于0.5秒阈值),触发唯一消费。这是输入工具的适配,不调用消费方法冒充UI。
## 5. 首跑问题与未决条件
1. 完成消费后正常Quit先销毁Fishing对象,原CancelFishing因Ready仍为true而Fault,导致额外ExitKVGameplayLoopAsync和并发SwitchStage空引用。主会话编码前裁决仅收窄CancelFishing为Ready且未Continued才Fault,保持Cancelled和配额;红测失败后19组81断言绿。保留real-final-errors.json。修复未通过第二次真实扣费重跑,交独立复核判断证据是否充分。
2. 游戏已正常closed/排水/停止Play后,uloop launch --quit的10秒超时自动降级强制结束旧编辑器。保留工具日志;不称编辑器优雅退出通过。新进程恢复验证不依赖旧缓存。
3. 新进程41828 CLI连接曾需恢复,之后已连通。登录前run/claim不存在;使用v1许可登录恢复393/112/成就112/任务10,未再次抛竿。正常Quit后playing=false、ready=false、error=null,Console Error=0;最终服务器101空、102的45键与消费后逐值相同。两份permit已归档,5个claimed全部保留,Unity空闲。
4. 默认非Editor编译原FishingChallengeManager.cs:72的_cheatingScore错误前后相同,未越界修复;本期不打包。
## 6. 下一步
主会话实施与归档已完成。评审侧按《其他AI审查提示词-4C1实施独立复核-2026-09-24.md》及implementation-review-hashes.json核对,逐项裁决上述测试覆盖、首跑退出修复和编辑器关闭限制;只新增独立实施复核报告。随后由主会话核hash/逐项裁决,才能正式关闭4C1。整体4C、完整捕鱼奖励闭环、G4、身份/外围与最终包仍未完成。
## 7. 最终检查点3/4交付补记
恢复证据:recovery-fresh-cache.json、recovery-values.json、recovery-after-quit-state.json、recovery-final-errors.json、recovery-final-diff.json;新run为41828_639258336171434448。两次业务进程不同Owner、新缓存。消费后及恢复后的每个服务器值一致,未重扣、未重导。显式工具请求共6登录+6Get,Set/Delete=0;游戏运行本身的HTTP数量未单独计数,不能写总Set=0(真实消费当然已提交)。
检查点4作者自审:4个旧源码变更均在白名单;21个其他检查点0源码快照字节未变,新增host及meta仅Editor固定验证;正式地址未改、不使用UnitySkills、未打包。保留所有红测/夹具首次失败/CLI错误,不删除证据。独立实施复核仍是关闭条件,当前未创建或替代独立评审结论。