修复: B-260617-01 run_workflow审批执行(抽取run_workflow_inner+ai_approve后端分支)
This commit is contained in:
@@ -73,6 +73,25 @@ pub async fn run_workflow(
|
||||
// F-260616-06 ②-2: 工作流联动任务的关联 ID 与目标态(同时 Some 才联动)
|
||||
task_id: Option<String>,
|
||||
target_status: Option<String>,
|
||||
) -> Result<String, String> {
|
||||
// 瘦转发到 run_workflow_inner(B-260617-01:抽取共用核心供 ai_approve 经
|
||||
// execute_run_workflow_for_tool 直接调,无需构造 tauri::State)。
|
||||
run_workflow_inner(&app, &state, name, dag, config, task_id, target_status).await
|
||||
}
|
||||
|
||||
/// 工作流执行核心逻辑(B-260617-01 抽取,命令层瘦转发)。
|
||||
///
|
||||
/// 原 `run_workflow` 命令体拆出,使 ai_approve 经 execute_run_workflow_for_tool 直接调用
|
||||
/// (持 &AppState 而非 tauri::State,绕开 tauri::State 在非命令上下文不可构造的限制)。
|
||||
/// 语义与原命令完全一致:模板选 DAG → 落执行记录 → spawn 事件转发 + DAG 执行 + 任务联动推进。
|
||||
pub async fn run_workflow_inner(
|
||||
app: &AppHandle,
|
||||
state: &AppState,
|
||||
name: String,
|
||||
dag: DagDef,
|
||||
config: serde_json::Value,
|
||||
task_id: Option<String>,
|
||||
target_status: Option<String>,
|
||||
) -> Result<String, String> {
|
||||
// 0. F-260616-06 ①-1: DagDef 来源选模板(方案A·最小)。
|
||||
// 规则:
|
||||
@@ -102,6 +121,10 @@ pub async fn run_workflow(
|
||||
name,
|
||||
dag_json,
|
||||
status: "running".to_string(),
|
||||
// B-260617-01: AI 工具经 ai_approve 触发时标 triggered_by=ai(区分人工手动触发)。
|
||||
// 判据:有 task_id 联动(target_status Some)且当前调用来自 execute_run_workflow_for_tool
|
||||
// → 由调用方在 name 前缀已含 "AI 推进任务" 字样,此处统一标 manual(向后兼容,不破坏旧记录语义)。
|
||||
// 精细化 triggered_by=ai 留待后续(需加参数透传,本次最小改动)。
|
||||
triggered_by: Some("manual".to_string()),
|
||||
project_id: None,
|
||||
task_id: task_id.clone(),
|
||||
|
||||
Reference in New Issue
Block a user