pipeline-service/pipeline_service
ymq b99fb4cc13 fix(isolation): 通用助手会话泄漏产线项目工具——5层修复
根因:
1. tool_registry 全局单例跨会话污染:产线会话注册的工具(如 list_projects)
   永久残留,后续通用会话把全部工具塞给 LLM
2. generic 会话 pipeline_id 空被无条件回退 DEFAULT_ABILITY_ID(sdlc_general),
   _execute_ability_tool 拿到产线能力包直接执行
3. _h_list_projects 对 space='general' 不过滤,列出所有产线全部项目
4. GENERAL_TOOLS 本身含项目管理工具,通用会话无条件拿到

修复(纵深防御,schema 层+执行层双保险):
- agent_loop_v2: ToolRegistry 改每 executor 独立实例(禁全局单例)
- agent_loop_v2: generic 会话跳过默认产线回退
- agent_loop_v2: _execute_ability_tool 对 generic 直接返回 None
- agent_loop_v2: _dispatch_sdlc_tool 对 generic 拒绝项目类工具(含别名归一)
- agent_loop_v2: generic 记忆只读 global 域、技能只检索 global 层
- sdlc_ability: _h_list_projects 对 general 空间拒绝列项目

配套:pipeline-core load_agent_config generic 时剔除 category=project 工具
2026-09-05 12:43:33 +08:00
..