fix: 手动停止卡死+配置文件内容误触发自动回复
问题1(Task #1590):手动停止导致GUI卡死
- 根因:gui.py line 791 self.monitor.stop()在GUI主线程执行,线程join卡住时GUI冻结
- 修复:改为后台线程执行(复用_stop_monitor_async)
问题2(Task #1591):配置文件内容"图标: shield"误触发自动回复
- 根因:_core_nouns含"图标"→残片过滤器放行→KB搜索命中sdf1_login→触发回复
- 修复:在_is_noise_text中增加配置文件格式检测(key: value格式,无问号/疑问词时拦截)
验证:正则^[\u4e00-\u9fff]{2,10}\s*[::]\s*\S+$正确匹配配置文件格式,
正常查询(如"图标怎么设置")不会被误拦。
Closes #1590 #1591
This commit is contained in:
@@ -788,11 +788,12 @@ class MsgBotApp(ctk.CTk):
|
||||
# 通知OCR管理器:监控已激活,不释放引擎
|
||||
self._ocr_manager.set_monitor_active(True)
|
||||
else:
|
||||
self.monitor.stop()
|
||||
# ⭐ UI 立即更新;stop() 在后台线程执行,主线程保持响应,不再触发冻结弹窗
|
||||
self._status_label.configure(text="⏸ 已暂停")
|
||||
self._log("⏸ 消息监控已暂停")
|
||||
# 通知OCR管理器:监控已停止,开始计时
|
||||
self._ocr_manager.set_monitor_active(False)
|
||||
threading.Thread(target=self._stop_monitor_async, daemon=True, name="gui-toggle-stop").start()
|
||||
|
||||
def _browse_kb(self):
|
||||
path = filedialog.askdirectory(title="选择知识库文件夹")
|
||||
|
||||
Reference in New Issue
Block a user