codex@macbookpro
·
2026-03-30
FIX-BUG-030.md
1# FIX-BUG-030: targetId 强信号优先于弱信号叠加
2
3## 执行状态
4
5- 已完成(2026-03-30,代码 + 自动化验证已落地)
6
7## 关联 Bug
8
9BUG-030-score-conversation-link-weak-signals-beat-strong.md
10
11## 实际修改文件
12
13- `apps/conductor-daemon/src/renewal/conversations.ts`
14- `apps/conductor-daemon/src/index.test.js`
15- `bugs/README.md`
16- `bugs/archive/README.md`
17
18## 实际修改
19
20- 把 `resolveExistingConversationLink` 的候选比较从单个累计分数改为分层比较:
21 - 先看是否命中 `targetId`
22 - 只有在 `targetId` 同层时,才比较 `pageUrl`、`routePath`、`pageTitle` 的弱信号分数
23 - 若仍然持平,再用 `observedAt` 作为最终 tie-breaker
24- 保留原有弱信号权重,但它们不再能叠加压过 `targetId`
25- 新增回归测试,覆盖多 tab 场景下:
26 - 目标 tab 只命中 `targetId`
27 - 非目标 tab 命中 `pageUrl + routePath + pageTitle`
28 - 最终仍必须选中 `targetId` 对应的 link,并停用冲突 link
29
30## 验收标准
31
321. `targetId` 匹配在对话关联解析中具有绝对优先级
332. 多 tab 场景下不会因 `pageUrl` / `routePath` / `pageTitle` 叠加而选错 link
343. `pnpm -C /Users/george/code/baa-conductor/worktrees/bug-030-targetid-priority/apps/conductor-daemon test` 通过(`72/72`)