fix: 基线消息不再写入跨轮去重记录,消除自我阻塞

根因:基线处理调用_add_to_recent_user_queries(item)将消息写入跨轮去重记录,
导致后续每轮OCR检测到相同消息时被自身匹配(100% Jaccard相似度)跳过。

修复:
- 移除基线处理中的_add_to_recent_user_queries调用(line 9321)
- if ts in seen: continue 处增加debug日志便于排查静默跳过

验证:剩余_add_to_recent_user_queries调用仅在消息被实际回复后触发,
不影响Task #1581双回复防护。

Closes #1589
This commit is contained in:
youpaishidifu
2026-08-24 15:36:06 +08:00
parent f1fa31b3bb
commit 06d58ee1c1
+2 -2
View File
@@ -9127,6 +9127,7 @@ class MessageMonitor:
logger.debug(f"[{platform}] 回复公共子串跳过: {ts[:50]}")
continue
if ts in seen:
logger.debug(f"[{platform}] seen去重跳过: {ts[:50]}")
continue
# 模糊匹配:OCR 输出每次微小差异(勖彐碎片、行首数字、尾部截断)
# 精确匹配命中不了 → 用 difflib 相似度去重
@@ -9317,8 +9318,7 @@ class MessageMonitor:
self._last_sig[platform] = ""
self._last_screenshot_hash.pop(platform, None)
self._last_new_msg_time[platform] = time.time()
# ⭐ 修复:基线消息加入跨轮去重记录,防止下一轮100%相同消息触发回复
self._add_to_recent_user_queries(item)
# ⭐ Task #1589: 基线消息不加入跨轮去重记录,否则下一轮自我阻塞
baseline_handled = True
continue # 基线轮不处理,跳到下一条