Files
ft/CodexOutput/upserver/阶段4C2扣费前拦截诊断最小方案-待评审-2026-09-24.md

2.9 KiB
Raw Blame History

阶段4C2扣费前拦截诊断最小方案(待完整评审)

2026-09-24。仅补失败原因可观察性,未编码;不申请放宽准入,不申请第二次自动抛竿。

问题与已有证据

首次真实尝试在FishingBehaviorB.cs:49~51原普通付费门拒绝,先于新增PrepareFishingReward和扣费。随后正常Fault关闭,45键与动作前全同,收费0。当前合并消息缺少各谓词输入,无法断言具体原因,停止后原对象已不可读取。

唯一拟改动

仅Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs的现有Editor条件分支:保留整个if谓词、顺序及Stop调用;把固定错误字符串换为包含拒绝时字段的错误字符串。字段限定为fishItem?.ID、fishItem?.SubType、curFishData?.ID、IsFree、IsRetry、IsDuel。null明确写null。只读当前对象现有字段/属性,不调用选鱼/随机/存档/配置方法,不增加await、事件或第二个Fault。

既有Stop→Fault已将同一message写入events.jsonl及Console,因此复用原通道即可。不给日志另外新增框架、源码文件、动态反射、公共API;不新增单独审计写盘点,不记录账户凭据或整档。运行路径、时间由现有审计承担。

边界与验收

  • 仅在拒绝分支构造诊断文字,成功分支完全不变。原普通鱼/免费/重试/对战/礼包/缺数据拦截都保持;v1/v2/v3权限、票据、奖励算法、配置不变。
  • 完整评审及主会话裁决先于编码。当前补充轮批准两新文件,不据此默认为旧FishingBehaviorB增加新行为已经批准;本单独方案明确这一处旧文件差异。
  • 审查确认字段getter无副作用且空值安全;静态diff证明只有错误文字变化;Editor和SERVICE_HOST编译;利用既有消费入口提取测试核对拒绝仍先于扣费。无需为文本加通用测试框架。
  • 诊断补充本身不能算修复根因,更不能算4C2验收通过。若后来证据证明是不支持类型自然命中,应保留原门;若证据证明实现错误,另按已审范围定位与修复,不改概率/强制普通鱼或鱼HP。
  • 本方案不产生第二次游戏许可,不重导102、不删6个claimed、不重复付费、不补发。新的真实运行需先核对新进程、备份和实际操作范围,并向用户明确一次尝试。

请独立评审裁决

  1. 是否同意现有证据只能定位到合并门,尚不能确定具体谓词?
  2. 六个字段是否足够唯一解释当前七条件(SubType含礼包类型、null标记覆盖缺对象),且不需新增状态?
  3. 仅改变拒绝消息是否保持时序/副作用边界,是否有null/日志异常风险?
  4. 编译及既有入口验证是否足够,是否批准这一个文件、这一处修改?

请输出问题等级、可执行修订与明确允许/不允许实施结论。其余4C2实施复核与真实恢复尚未完成,本次不申请整体关闭。