修复: AR-3 审批 reason 查项目名拼对象名(用户再反馈 P0)

build_approval_reason 改 async + 接收 db,对 delete/restore/purge/update/bind/create_task 的 id/project_id 查 ProjectRepo.get_by_id 拼「项目名」(id=x)(原只拼裸 id,用户反馈'只返回 ID 不知道是什么数据')
新增 resolve_project_label helper;process_tool_calls 调用改 await
来源 aichat审查报告 第二章 + 用户 2026-06-14 再反馈;cargo 0 err
This commit is contained in:
2026-06-14 17:16:28 +08:00
parent 7e27370923
commit f3c0967f41
31 changed files with 49 additions and 15 deletions

View File

@@ -0,0 +1,74 @@
# df-nodes 节点集合
> 创建: 2026-06-10 | 状态: 初稿
---
## 概述
df-nodes 提供 DevFlow 工作流引擎的 8 种内置节点。所有节点实现 df-workflow 的 `Node` trait。
## 当前状态
所有 8 种节点 Schema 已定义完整,`execute()` 方法均为空实现。
## 节点清单
| 节点 | 功能 | 阻塞 | 实现状态 |
|------|------|------|---------|
| AINode | 调用 LLM流式输出工具调用 | 否 | 骨架 |
| ScriptNode | Shell/脚本执行 | 否 | 骨架 |
| DockerNode | Docker 容器操作 | 否 | 骨架 |
| GitNode | Git 操作 (libgit2) | 否 | 骨架 |
| HumanNode | 人工审批/确认 | 是 | 骨架 |
| NotifyNode | 通知 (桌面/飞书/Webhook) | 否 | 骨架 |
| HTTPNode | HTTP 请求 | 否 | 骨架 |
| SubflowNode | 嵌套子工作流 | 否 | 骨架 |
## 实现优先级
Phase 1 阶段优先实现:
1. **ScriptNode** — 依赖 df-execute 的 Shell 执行器 (已可用)
2. **HumanNode** — 阻塞节点,工作流审批需要
Phase 2 实现:
3. **AINode** — 依赖 df-ai Provider 实现
Phase 4 实现:
4. **DockerNode** — 依赖 bollard crate
5. **GitNode** — 依赖 libgit2
6. **HTTPNode** — HTTP 客户端
7. **NotifyNode** — 通知渠道对接
8. **SubflowNode** — 嵌套工作流引擎
## 依赖关系
```
df-core
← df-workflow (Node trait)
← df-nodes
← df-ai (AINode)
← df-execute (ScriptNode)
```
## 文件结构
```
crates/df-nodes/src/
├── lib.rs — 模块入口,注册所有节点
├── ai_node.rs — AI 节点
├── script_node.rs — 脚本节点
├── docker_node.rs — Docker 节点
├── git_node.rs — Git 节点
├── human_node.rs — 人工审批节点
├── notify_node.rs — 通知节点
├── http_node.rs — HTTP 节点
└── subflow_node.rs — 子工作流节点
```
## 相关文档
- [df-workflow 工作流引擎](./df-workflow-工作流引擎.md)