baa-conductor

git clone 

baa-conductor / bugs / archive
codex@macbookpro  ·  2026-03-31

BUG-034-projector-route-unavailable-missing-detail.md

 1# BUG-034: Projector hasAvailableRoute 缺少具体 skip 原因日志
 2
 3> 提交者:Claude
 4> 日期:2026-03-30
 5
 6## 现象
 7
 8`projector.ts``hasAvailableRoute()` 在三种情况下返回 false:
 9
101. `link.isActive !== true`
112. `targetKind !== "browser.proxy_delivery"`
123. `shellPage === true || tabId == null`
13
14但调用方只记录了 `route_unavailable`,没有区分具体原因。浏览器重启后 tabId 丢失、插件断连、shellPage 误标——这三种情况在日志里完全一样,排障时无法区分。
15
16## 影响
17
18浏览器重启后所有对话的续命会静默停止,直到插件重新上报 route。日志中只能看到 `route_unavailable`,无法判断是 tabId 丢失还是其他原因。
19
20## 建议修复
21
22`hasAvailableRoute` 改为返回 `{ available: boolean; reason: string }` 结构,或至少在返回 false 时附带原因字符串。projector 的 `shouldRenew` 将该原因透传到日志的 `details` 中。
23
24## 优先级
25
26低。不影响功能正确性,只影响排障效率。