agent-Specialization/core/main_terminal_parts
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
..
context fix(server): 对话级主任务门闸,修复并发主任务交叉写入对话历史 2026-08-12 18:01:32 +08:00
tools_definition fix(tools): view_image 移除 svg 支持 2026-07-29 11:45:22 +08:00
__init__.py refactor: further split runner and tools mixins 2026-03-07 20:25:58 +08:00
commands.py refactor(naming): 移除代码中的第三方产品名 2026-07-28 18:43:03 +08:00
tools_definition.py refactor: split api_client, tool_result_formatter, tools_definition into sub-packages 2026-06-20 21:51:45 +08:00
tools_execution.py feat(chat): 新增本次工作编辑摘要卡片——工作段末尾显示合并diff,支持显示时机设置 2026-08-11 21:05:06 +08:00
tools_policy.py refactor(naming): 移除代码中的第三方产品名 2026-07-28 18:43:03 +08:00
tools_read.py feat(memory): 新增项目记忆检索工具 search_project_memory 2026-07-29 02:00:01 +08:00
tools.py refactor: further split runner and tools mixins 2026-03-07 20:25:58 +08:00