20 Commits

Author SHA1 Message Date
ymq
c8b44fe423 feat(flow_plan): 流程修订/定向重做机制(2026-09-17用户裁定:用户有权调整流程,并要求从流程任何一步按意见重做,或只给意见由agent判注入点)——revise_flow_plan:已confirmed计划提修订版(v+1 pending_confirm,确认前旧计划持续生效,确认时CAS换版旧版superseded+回调产线stage_reentry钩子);detect_reentry_stage:LLM按意见+阶段声明+产线进度摘要判注入点(对齐detect_flow_template判流先例,evidence进确认待办用户核对,错判确认门兜住,判不出诚实报错禁默认);_affected_stage_keys:注入阶段+deps依赖闭包下游;钩子失败不回滚确认,诚实上报+抛人工待办;新会话工具revise_flow_plan/detect_reentry_stage进FLOW_PLAN_TOOLS(三产线零改动继承);propose已确认时错误指引改指revise;models加reentry_stage/reentry_detect_note列 2026-09-18 00:05:42 +08:00
ymq
bb6bdf40fa feat(models): pipeline_user_secrets 表模型定义(2026-09-17) 2026-09-17 13:50:35 +08:00
ymq
5fe5c238ec feat(flow): 批2多流程模板机制+三机制修复——pipeline_flow_plans加base_flow_key列;flow_plan_capability:detect_flow_template(LLM判流,置信度+判据,失败不静默降级发人工)/propose_flow_plan支持flow_key+确认待办渲染判流结论/get_plan_flow_key供流转分支/_latest_plan_rec复用;agent_loop:_skip_trimmed_roles按base_flow_key解析阶段+human_task_qc检查对象不存在改cancel+fault冒泡(不再qc_reject计轮死循环,首医实测)+PM approve答结并入qc_reject(幻影角标,pbls实测);project_capability:pause_project不再删pending待办(暂停=可逆停摆,删待办致resume后QC死循环) 2026-09-15 15:01:27 +08:00
ymq
2c35abfdab feat(service): 产线流程裁剪机制层——pipeline_flow_plans表+flow_plan_capability(propose六项硬校验/confirm-reject CAS/plan_stage_enabled/create_sub_tasks PM拆解)+shared_ability聚合会话三工具(show_flow_template/propose_flow_plan/get_flow_plan);agent_loop _get_next_role跳段泛化(_skip_trimmed_roles线性链自动跳过被裁角色)+_pm_create_tasks extra_params(继承skip_generic_qc);capability_tools注册create_sub_tasks schema;init导出env.flow_plan_* 2026-09-11 12:58:26 +08:00
ymq
4d2b3aa848 feat(models): 孤儿表归籍——pipeline_agent_instances/agent_settings/project_agents 三表补models定义(此前m0002建表未进models,新库部署缺表);project_capability清除sd_conversations全部4处引用(死表,m0027 DROP);README表清单补归籍说明 2026-09-10 19:05:27 +08:00
ymq
b8a2aeadb7 fix(models): pipeline_conversations 孤儿表归籍本模块——补models定义(13列与活表逐列对齐,唯一写入方agent_loop_v2._save_turn)+README数据表登记;字段顺序含m0003补列session_id在尾;task_id/step_name/attachments/msg_type/org_id为预留列(活表395行实测零写入),保留定义与活表一致 2026-09-10 15:30:40 +08:00
ymq
e0efcfc7db feat(models): add 5 runtime table JSONs + pipeline_tasks retry_count/last_error 2026-09-08 15:24:31 +08:00
ymq
21c8c16daa feat(rag-access): 产线接入知识库——全角色按项目owner权限检索(rag_search/rag_kb_list)+PM建议入库待办闭环+统一API模式 2026-09-04 15:57:41 +08:00
ymq
cb0a87e65e fix(models): pipeline_pm_notices.fingerprint 64→255——缺口指纹含任务ID列表常超64字符,INSERT DataError(1406) 致编排告警丢失 2026-08-29 15:11:09 +08:00
ymq
d9827c391b fix(orchestration): 元景三问题根治——task_title归位+问题通道统一冒泡+依赖启动策略+确认去重
问题1(部署早于开发启动):
- _check_orchestration_gaps 重构为结构化缺口(kind/fingerprint/task_id/fix_ids)
- 缺口不再只打日志:派发后当场回给PM + 持久化pipeline_pm_notices注入PM下回合上下文
- 新增 update_task_deps 原语:PM核实缺口后补依赖(修正是LLM决策,代码只查漏)

问题2(env补齐后waiting不唤醒):
- _bubble_deploy_env_missing 从自建人工任务死胡同迁移到统一问题通道(raise_problem)
- owner在待办回答→resolve_problem自动唤醒任务→QA注入agent prompt,信息真正交给LLM

问题3(task_title错位+重复确认):
- SDL_ROLES task_title 各归其位(需求分析/架构设计/脚手架开发/部署测试/功能测试)
- 确认去重:同迭代已确认且非回退重做→跳过重复确认直接派发
- _create_next_task 单例阶段幂等:requirement/design复用同迭代任意活跃任务

机制增强:
- 依赖启动策略 params.dep_policy: all(默认)/any/at_least{n},纯函数_eval_deps_policy
- init.py poller 手写依赖求值收敛到同一纯函数(消除两处语义漂移)
2026-08-27 22:52:27 +08:00
ymq
d417772f42 feat: 项目owner+人类任务清单+bug验收+流转门禁
- check_project_owner: owner=created_by 统一校验
- human_task_capability: 派发/处理/QC/列表/计数/bug验收(复用pipeline_human_tasks)
- bug_flow: verified 分流(human报告→创建验收任务给报告人, agent→自动close)
- qc_review_run: human_task_qc 分支(检查对象=pipeline_human_tasks 结果)
- 流转门禁: agent/pm poller + start_next_iteration 检查未完成人类任务
- pipeline_human_tasks 加 project_id/iteration_id/bug_id/qc_status/qc_comment/title/description
2026-08-24 12:18:27 +08:00
ymq
c49bb1c756 feat: pipeline_human_tasks 加 project_id/iteration_id/bug_id/qc_status/qc_comment 字段(SDLC项目级人类任务) 2026-08-24 12:09:29 +08:00
ymq
834505fcfc feat: PM任务分解与编排——父子关系(parent_id)+依赖串行(depends_on)+任务树分层 2026-08-19 05:53:28 +08:00
ymq
3687270ca7 feat(task-capability): 任务状态机语义化迁移能力 + 通用审计原语
- task_capability.py: claim/submit/approve/reject/complete/mark_failed/retry/suspend/revive/set_task_state
  CAS 原子迁移(防并发/越权覆盖) + tenant 隔离 + record_audit 审计
  定位=状态机语义化操作层,CRUD 复用 storage.py,不遮蔽 storage/executor 同名函数
- audit.py: record_audit append-only 通用审计原语(支持 sor 复用避免嵌套连接)
- models/audit_log.json: 审计日志表(append-only, tenant 隔离)
- init.py: 注册 task_* + record_audit 到 ServerEnv
2026-08-16 23:39:05 +08:00
ymq
6707cabedc refactor(team-communication): 问题冒泡改为显式路由,规范移交 skill
规范(团队角色/问题类型/冒泡路径)移交 team-communication skill,由 LLM 读 skill 决策;
系统只固化通用问题工具,不读配置表、不存路径快照:
- communication.py: raise/resolve/escalate/list_for 显式路由,
  escalate 显式传 next_handler;current_handler_role/agentid 两列确定性过滤
- questions.py: 向后兼容层适配
- agent_loop.py: need_info/review_reject/fault_report 显式 first_handler_role
- sdlc_ability.py: escalate_question 显式转 customer
- models: 去 escalation_path/pos,加 current_handler_role/agentid
2026-08-16 22:08:00 +08:00
ymq
4f2c6da6cf feat(team-communication): 通用问题冒泡引擎(多agent感知)
- communication.py: raise/resolve/escalate/list_for,问题类型→冒泡路径,处理方=role+agentid
- questions.py: 向后兼容层,委托 communication
- agent_loop.py: 角色提问(need_info)/PM退回(review_reject)/故障(fault_report)走 raise_problem;
  _build_qna_section 按 handler 路由注入;PM approved 只答结 review_reject
- sdlc_ability.py: list_questions/answer_question/escalate_question 按 handler 路由
- models: pipeline_agent_questions 加 from_agentid/problem_type/escalation_path/escalation_pos
2026-08-16 21:25:39 +08:00
4cb406003e feat(v3.2.0): 主agent+角色agent架构 — role任务认领/问题回路
- pipeline_tasks 增加 role/claimed_by 字段+索引(存量库需ALTER)
- agent_loop 重写为角色循环:原子认领(role匹配+令牌校验)→LLM执行→交付/need_info提问
- 角色别名归一化(developer→develop等),ROLE_PROMPT改replace防花括号崩溃
- questions.py 新增问题回路:agent_ask/answer_question/forward_question/list_questions
- init.py 注册 pipeline_role_submit 与问题回路 env 接口
2026-08-05 12:58:52 +08:00
Hermes Agent
b9a5810d85 feat(v3): human-in-the-loop — interactive steps, pluggable step_type registry
- New states: waiting (step/task), rejected (step)
- New tables: pipeline_human_tasks, pipeline_step_types
- New module: step_registry.py — pluggable step_type metadata
- New module: human.py — human_complete, approval_approve, approval_reject
- Executor: detects interactive step_types, creates human_tasks, enters waiting
- Reject with rollback: approval_reject(rollback_to=step) resets steps and re-runs
- API: human_task_complete, approval_approve, approval_reject, human_task_list
- API: pipeline_step_types, pipeline_register_step_type, pipeline_unregister_step_type
- Built-in interactive types: human_task, approval_gate
- Updated DDL and appcodes
2026-06-16 11:05:45 +08:00
19cd63e719 fix: remove invalid default for deps text field 2026-06-11 18:50:53 +08:00
2448ad45f7 refactor: 改造为通用产线执行引擎模块
- 去掉独立 aiohttp 服务器,改为标准模块(load_pipeline_service)
- 存储从文件系统改 MySQL(sqlor)
- 新增 3 张数据表:pipeline_tasks/task_steps/artifacts
- 多租户隔离(tenant_id)
- 通用 DAG 调度引擎(读 pipeline_steps 表,不硬编码业务)
- 可插拔步骤处理器(register_handler by step_type)
- artifact 版本管理 + 级联重跑
- init/data.json 标准 appcodes 格式
- 完整 README 文档
2026-06-11 17:30:06 +08:00