From 1b733abe82ddd992033b50dc01807984593ca946 Mon Sep 17 00:00:00 2001 From: wangxiaolei Date: Thu, 27 Nov 2025 15:22:33 +0800 Subject: [PATCH] feat: creates logs immediately when workflows start (not at completion) (#28701) --- .../app/apps/workflow/generate_task_pipeline.py | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/api/core/app/apps/workflow/generate_task_pipeline.py b/api/core/app/apps/workflow/generate_task_pipeline.py index 4157870620..842ad545ad 100644 --- a/api/core/app/apps/workflow/generate_task_pipeline.py +++ b/api/core/app/apps/workflow/generate_task_pipeline.py @@ -258,6 +258,10 @@ class WorkflowAppGenerateTaskPipeline(GraphRuntimeStateSupport): run_id = self._extract_workflow_run_id(runtime_state) self._workflow_execution_id = run_id + + with self._database_session() as session: + self._save_workflow_app_log(session=session, workflow_run_id=self._workflow_execution_id) + start_resp = self._workflow_response_converter.workflow_start_to_stream_response( task_id=self._application_generate_entity.task_id, workflow_run_id=run_id, @@ -414,9 +418,6 @@ class WorkflowAppGenerateTaskPipeline(GraphRuntimeStateSupport): graph_runtime_state=validated_state, ) - with self._database_session() as session: - self._save_workflow_app_log(session=session, workflow_run_id=self._workflow_execution_id) - yield workflow_finish_resp def _handle_workflow_partial_success_event( @@ -437,10 +438,6 @@ class WorkflowAppGenerateTaskPipeline(GraphRuntimeStateSupport): graph_runtime_state=validated_state, exceptions_count=event.exceptions_count, ) - - with self._database_session() as session: - self._save_workflow_app_log(session=session, workflow_run_id=self._workflow_execution_id) - yield workflow_finish_resp def _handle_workflow_failed_and_stop_events( @@ -471,10 +468,6 @@ class WorkflowAppGenerateTaskPipeline(GraphRuntimeStateSupport): error=error, exceptions_count=exceptions_count, ) - - with self._database_session() as session: - self._save_workflow_app_log(session=session, workflow_run_id=self._workflow_execution_id) - yield workflow_finish_resp def _handle_text_chunk_event( @@ -655,7 +648,6 @@ class WorkflowAppGenerateTaskPipeline(GraphRuntimeStateSupport): ) session.add(workflow_app_log) - session.commit() def _text_chunk_to_stream_response( self, text: str, from_variable_selector: list[str] | None = None