diff --git a/skyvern/forge/sdk/workflow/service.py b/skyvern/forge/sdk/workflow/service.py index 2c1d78bc..79750890 100644 --- a/skyvern/forge/sdk/workflow/service.py +++ b/skyvern/forge/sdk/workflow/service.py @@ -659,7 +659,6 @@ class WorkflowService: tasks = await self.get_tasks_by_workflow_run_id(workflow_run.workflow_run_id) all_workflow_task_ids = [task.task_id for task in tasks] browser_state = await app.BROWSER_MANAGER.cleanup_for_workflow_run( - workflow, workflow_run.workflow_run_id, all_workflow_task_ids, close_browser_on_completion, @@ -667,6 +666,13 @@ class WorkflowService: if browser_state: await self.persist_video_data(browser_state, workflow, workflow_run) await self.persist_debug_artifacts(browser_state, tasks[-1], workflow, workflow_run) + if workflow.persist_browser_session and browser_state.browser_artifacts.browser_session_dir: + await app.STORAGE.store_browser_session( + workflow.organization_id, + workflow.workflow_permanent_id, + browser_state.browser_artifacts.browser_session_dir, + ) + LOG.info("Persisted browser session for workflow run", workflow_run_id=workflow_run.workflow_run_id) await app.ARTIFACT_MANAGER.wait_for_upload_aiotasks_for_tasks(all_workflow_task_ids) diff --git a/skyvern/webeye/browser_factory.py b/skyvern/webeye/browser_factory.py index 15a170b7..19a3cc40 100644 --- a/skyvern/webeye/browser_factory.py +++ b/skyvern/webeye/browser_factory.py @@ -22,7 +22,6 @@ from skyvern.exceptions import ( UnknownBrowserType, UnknownErrorWhileCreatingBrowserContext, ) -from skyvern.forge import app from skyvern.forge.sdk.core.skyvern_context import current from skyvern.forge.sdk.schemas.tasks import ProxyLocation from skyvern.forge.sdk.settings_manager import SettingsManager @@ -390,9 +389,3 @@ class BrowserState: async def take_screenshot(self, full_page: bool = False, file_path: str | None = None) -> bytes: page = await self.__assert_page() return await SkyvernFrame.take_screenshot(page=page, full_page=full_page, file_path=file_path) - - async def store_browser_session(self, organization_id: str, workflow_permanent_id: str) -> None: - if self.browser_artifacts.browser_session_dir: - await app.STORAGE.store_browser_session( - organization_id, workflow_permanent_id, self.browser_artifacts.browser_session_dir - ) diff --git a/skyvern/webeye/browser_manager.py b/skyvern/webeye/browser_manager.py index dd7cbdf1..5ce4d460 100644 --- a/skyvern/webeye/browser_manager.py +++ b/skyvern/webeye/browser_manager.py @@ -9,7 +9,7 @@ from playwright.async_api import async_playwright from skyvern.constants import BROWSER_CLOSE_TIMEOUT from skyvern.exceptions import MissingBrowserState from skyvern.forge.sdk.schemas.tasks import ProxyLocation, Task -from skyvern.forge.sdk.workflow.models.workflow import Workflow, WorkflowRun +from skyvern.forge.sdk.workflow.models.workflow import WorkflowRun from skyvern.webeye.browser_factory import BrowserContextFactory, BrowserState, VideoArtifact LOG = structlog.get_logger() @@ -182,7 +182,6 @@ class BrowserManager: async def cleanup_for_workflow_run( self, - workflow: Workflow, workflow_run_id: str, task_ids: list[str], close_browser_on_completion: bool = True, @@ -196,13 +195,6 @@ class BrowserManager: await browser_state_to_close.browser_context.tracing.stop(path=trace_path) LOG.info("Stopped tracing", trace_path=trace_path) - if workflow.persist_browser_session: - await browser_state_to_close.store_browser_session( - organization_id=workflow.organization_id, - workflow_permanent_id=workflow.workflow_permanent_id, - ) - LOG.info("Persisted browser session for workflow run", workflow_run_id=workflow_run_id) - await browser_state_to_close.close(close_browser_on_completion=close_browser_on_completion) for task_id in task_ids: self.pages.pop(task_id, None)