← 返回博客
作者:BluffKing · · 更新
同类 Bug 排查
以认证错误后的导航为例,说明怎样找同类调用、保留豁免,并用共享实现和针对性验证修复重复模式。历史 33 处清扫不代表当前调用数量。
修复由重复模式造成的问题时,先找出所有同类调用,再逐个判断哪些需要同样修改。搜索扩大的是排查范围,不是无差别替换。
例子是认证失败后的导航。历史上的一次修复清扫了 20 个文件中的 33 个调用点(这是当时的范围,不是现在的调用数),最后收敛到 client-game/src/net/authRedirect.ts 的 redirectOnAuthError:401 先清理过期会话,再带着返回路径跳转登录;403 且错误码为 registration_required 时跳转注册;503、网络异常和其它错误返回 false,由调用方按普通错误处理,不清会话。调用方拿到 true 就返回,避免再弹通用错误,但加载状态仍要释放;已有特殊 403 处理的页面保留原有顺序。
豁免也是规则的一部分:启动时探测登录状态、登录表单的凭证错误,以及牌局中不能打断主流程的辅助请求,都不能套用同一跳转,helper 的注释记录了这些边界。修复说明可以留下一行可复查的范围,例如 Sibling-grep: checked auth-gated catch sites; boot probes and in-hand side-fetches excluded。这只是人工检查记录,不是机器证明;文字相同的调用业务含义可能不同,最后仍要在浏览器里复现具体故障和重要的错误路径。