agent-Specialization/server/tasks
JOJO 99f4d3d1dd fix(server): 对话级主任务门闸,修复并发主任务交叉写入对话历史
事故:socketio 用户任务(不在 task_manager 注册)与完成通知轮询器
派发的通知任务并发写入共享 conversation_history,产生 assistant 乱序段,
导致 Kimi API 400(tool_call_id is not found)与通知永久丢失。

- 新增 server/main_task_gate.py:对话级主任务门闸(单写者不变量,
  一个 WebTerminal 同一时刻只允许一个主聊天任务)
- process_message_task 作为唯一入口获取/认领门闸,拿不到即拒绝;
  通知链 token 经 session_data 移交,失败释放并回滚通知标记;
  _run_chat_task finally 兜底释放防泄漏
- execute_tool_calls 改守护包装(try/finally 复位 _tool_loop_active),
  杜绝并发交错导致标志卡死
- build_messages 增加孤儿 tool 消息剥离防御层(止血,不替代门闸)
- AGENTS.md 新增 §12 记录门闸架构与改代码硬约束
2026-08-12 18:01:32 +08:00
..
__init__.py refactor(server,modules,utils,frontend): split oversized modules into packages and fix regressions 2026-06-20 15:54:48 +08:00
api.py feat(chat): 输入栏附件系统增强——粘贴图片、文件附加、图片灯箱与文件预览联动 2026-08-11 17:16:56 +08:00
helpers.py fix(multi-agent): 修复情况2主消息池派发链路 2026-07-13 20:05:02 +08:00
media.py feat(chat): 输入栏附件系统增强——粘贴图片、文件附加、图片灯箱与文件预览联动 2026-08-11 17:16:56 +08:00
models.py fix(server): 对话级主任务门闸,修复并发主任务交叉写入对话历史 2026-08-12 18:01:32 +08:00
skills.py fix(skills): skill 文件读取等待同步窗口,避免并发全量同步误判不存在 2026-08-02 00:00:41 +08:00