agent-Specialization/modules/sub_agent
JOJO e29ccb318e fix(multi-agent): 修复情况2主消息池派发链路
修复多智能体模式下主智能体空闲时收不到子智能体输出推送的一系列 bug:

1. poll_multi_agent_notifications 死锁:原实现先等所有 running 实例
   退出再 drain 消息池,导致 ask_master 在 await 期间永远等不到主对话
   回答。改为池优先:pool 有消息立即派发,不管 running 状态。

2. _dispatch_multi_agent_idle_messages 缺 import:调用
   inject_multi_agent_master_message 但文件顶部从未导入,NameError
   被外层 except 吞掉,task 永远建不起来。

3. dispatch 内调试日志引用 rec 错位:dispatch_ma_idle_sender_user_message
   被放到 create_chat_task 之前,触发 UnboundLocalError,task 同样建不起来。

4. session_data['auto_user_message_payload'] / preceding_user_notices
   payload 漏写 auto_message_type:前端 isMultiAgentMessage() 只认
   auto_message_type.startsWith('multi_agent_'),空字符串走 fallback
   通知渲染。

5. dispatch 第①步重复持久化:对包含 last 的全部消息都调
   inject_multi_agent_master_message 落盘,之后 task 又在 handle_task_with_sender
   再 add_conversation,导致历史里出现两条相同 user 消息(前一条多智能体渲染,
   后一条通知渲染)。前置 N-1 条只持久化一次,最后一条交给后续 task 自己持久化。

6. last 赋值时机错位:last_emit_payload 在 last=parsed_messages[-1] 之前引用,
   UnboundLocalError 再次吃掉后续链路。

7. handle_task_with_sender 多智能体分支漏写 visibility='chat':
   _user_message_ui_defaults('sub_agent') 默认 visibility='compact',
   透传到落盘 metadata 后,前端从后端加载历史时走通知渲染分支。显式
   user_message_metadata['visibility']='chat' 强制走多智能体专用渲染。
2026-07-13 20:05:02 +08:00
..
__init__.py fix(sub_agent): export TERMINAL_STATUSES in package __init__ 2026-06-20 12:15:18 +08:00
creation.py fix(multi-agent): 跨事件循环问答、线程安全取消、任务结束汇报格式、工具参数可选 2026-07-12 15:09:16 +08:00
manager.py fix(multi-agent): 修复情况2主消息池派发链路 2026-07-13 20:05:02 +08:00
prompts.py feat(multi_agent): 提取prompt、恢复任务、优化侧边栏与sleep工具 2026-07-13 14:01:48 +08:00
state.py fix(multi-agent): 修复情况2主消息池派发链路 2026-07-13 20:05:02 +08:00
stats.py refactor(sub_agent): 子智能体从 Node.js 子进程改为主进程内 Python 协程 2026-06-20 00:26:45 +08:00
task.py fix(multi-agent): 修复情况2主消息池派发链路 2026-07-13 20:05:02 +08:00
toolkit.py fix(multi-agent): 跨事件循环问答、线程安全取消、任务结束汇报格式、工具参数可选 2026-07-12 15:09:16 +08:00
tools.py refactor(sub_agent): 子智能体从 Node.js 子进程改为主进程内 Python 协程 2026-06-20 00:26:45 +08:00