feat(chatter_manager): 清理 processing_message_id 以防止重复回复检测失效

feat(distribution_manager): 添加子任务跟踪和取消逻辑,优化流处理
feat(default_generator): 优化 respond 和 reply 模式下的消息处理逻辑
feat(affinity_chatter): 处理取消异常时清理 processing_message_id
feat(planner): 确保在规划流程取消时清理 processing_message_id
This commit is contained in:
Windpicker-owo
2025-11-10 17:12:20 +08:00
parent 861cc18e7d
commit aab3f19f10
5 changed files with 124 additions and 23 deletions

View File

@@ -145,13 +145,17 @@ class ChatterManager:
return result
except asyncio.CancelledError:
self.stats["failed_executions"] += 1
logger.info(f"{stream_id} 处理被取消,不清空未读消息")
logger.info(f"{stream_id} 处理被取消")
context.triggering_user_id = None # 清除触发用户ID
# 确保清理 processing_message_id 以防止重复回复检测失效
context.processing_message_id = None
raise
except Exception as e:
self.stats["failed_executions"] += 1
logger.error(f"处理流 {stream_id} 时发生错误: {e}")
context.triggering_user_id = None # 清除触发用户ID
# 确保清理 processing_message_id
context.processing_message_id = None
raise
finally:
# 清除触发用户ID所有情况下都需要