From 01fed0babc3e99e63d0a3a058be572f46c644285 Mon Sep 17 00:00:00 2001 From: Shuchang Zheng Date: Wed, 3 Sep 2025 16:52:18 +0800 Subject: [PATCH] script run - fix post action screenshot mismatch issue (#3346) --- skyvern/core/script_generations/skyvern_page.py | 5 +++-- skyvern/forge/sdk/core/skyvern_context.py | 1 + skyvern/services/script_service.py | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/skyvern/core/script_generations/skyvern_page.py b/skyvern/core/script_generations/skyvern_page.py index 15a57b1f..25c87a52 100644 --- a/skyvern/core/script_generations/skyvern_page.py +++ b/skyvern/core/script_generations/skyvern_page.py @@ -216,7 +216,7 @@ class SkyvernPage: task_id=context.task_id, step_id=context.step_id, step_order=0, # Will be updated by the system if needed - action_order=0, # Will be updated by the system if needed + action_order=context.action_order, # Will be updated by the system if needed intention=intention, reasoning=f"Auto-generated action for {action_type.value}", text=text, @@ -234,7 +234,7 @@ class SkyvernPage: task_id=context.task_id, step_id=context.step_id, step_order=0, - action_order=0, + action_order=context.action_order, intention=intention, reasoning=f"Auto-generated action for {action_type.value}", data_extraction_goal=kwargs.get("prompt"), @@ -245,6 +245,7 @@ class SkyvernPage: ) created_action = await app.DATABASE.create_action(action) + context.action_order += 1 return created_action except Exception: diff --git a/skyvern/forge/sdk/core/skyvern_context.py b/skyvern/forge/sdk/core/skyvern_context.py index 6d2b75e6..bc602729 100644 --- a/skyvern/forge/sdk/core/skyvern_context.py +++ b/skyvern/forge/sdk/core/skyvern_context.py @@ -29,6 +29,7 @@ class SkyvernContext: max_screenshot_scrolls: int | None = None script_id: str | None = None script_revision_id: str | None = None + action_order: int = 0 def __repr__(self) -> str: return f"SkyvernContext(request_id={self.request_id}, organization_id={self.organization_id}, task_id={self.task_id}, step_id={self.step_id}, workflow_id={self.workflow_id}, workflow_run_id={self.workflow_run_id}, task_v2_id={self.task_v2_id}, max_steps_override={self.max_steps_override}, run_id={self.run_id})" diff --git a/skyvern/services/script_service.py b/skyvern/services/script_service.py index 1b3a4610..7c15a399 100644 --- a/skyvern/services/script_service.py +++ b/skyvern/services/script_service.py @@ -306,6 +306,8 @@ async def _create_workflow_block_run_and_task( status=StepStatus.running, ) step_id = step.step_id + # reset the action order to 0 + context.action_order = 0 # Update workflow run block with task_id await app.DATABASE.update_workflow_run_block(