feat(distribution_manager): 在处理成功后添加短暂等待,确保清理操作完成
feat(message_manager): 简化清除未读消息逻辑,移除冗余注释 feat(action_manager): 移除自动清空未读消息的逻辑,改为手动处理 feat(plan_executor): 扩展回复类动作的分类,包含 respond 动作
This commit is contained in:
@@ -436,11 +436,7 @@ class MessageManager:
|
||||
logger.error(f"清除未读消息时发生错误: {e}")
|
||||
|
||||
async def clear_stream_unread_messages(self, stream_id: str):
|
||||
"""清除指定聊天流的所有未读消息
|
||||
|
||||
此方法会标记剩余的未读消息为已读(移到历史),作为兜底保护。
|
||||
正常情况下,action_manager 应该已经标记了所有消息,这里只是确保没有遗漏。
|
||||
"""
|
||||
"""清除指定聊天流的所有未读消息"""
|
||||
try:
|
||||
chat_manager = get_chat_manager()
|
||||
chat_stream = await chat_manager.get_stream(stream_id)
|
||||
@@ -453,9 +449,7 @@ class MessageManager:
|
||||
unread_count = len(context.unread_messages)
|
||||
|
||||
# 如果还有未读消息,说明 action_manager 可能遗漏了,标记它们
|
||||
if unread_count > 0:
|
||||
logger.debug(f"🧹 [兜底清理] stream={stream_id[:8]}, 发现 {unread_count} 条剩余未读消息,标记为已读")
|
||||
|
||||
if unread_count > 0:
|
||||
# 获取所有未读消息的 ID
|
||||
message_ids = [msg.message_id for msg in context.unread_messages]
|
||||
|
||||
@@ -463,9 +457,8 @@ class MessageManager:
|
||||
success = chat_stream.context_manager.mark_messages_as_read(message_ids)
|
||||
|
||||
if success:
|
||||
logger.debug(f"✅ [兜底清理] stream={stream_id[:8]}, 成功标记 {unread_count} 条消息为已读")
|
||||
logger.debug(f"✅ stream={stream_id[:8]}, 成功标记 {unread_count} 条消息为已读")
|
||||
else:
|
||||
logger.warning(f"⚠️ [兜底清理] stream={stream_id[:8]}, 标记失败,直接清空")
|
||||
context.unread_messages.clear()
|
||||
else:
|
||||
logger.debug(f"流 {stream_id[:8]} 没有剩余未读消息,无需清理")
|
||||
|
||||
Reference in New Issue
Block a user