diff --git a/skyvern/forge/sdk/db/client.py b/skyvern/forge/sdk/db/client.py index 6169a7de..8d707309 100644 --- a/skyvern/forge/sdk/db/client.py +++ b/skyvern/forge/sdk/db/client.py @@ -3176,7 +3176,7 @@ class AgentDB: async def set_persistent_browser_session_browser_address( self, browser_session_id: str, - browser_address: str, + browser_address: str | None, ip_address: str, ecs_task_arn: str | None, organization_id: str | None = None, @@ -3193,11 +3193,14 @@ class AgentDB: ) ).first() if persistent_browser_session: - persistent_browser_session.browser_address = browser_address - persistent_browser_session.ip_address = ip_address - persistent_browser_session.ecs_task_arn = ecs_task_arn - # once the address is set, the session is started - persistent_browser_session.started_at = datetime.utcnow() + if browser_address: + persistent_browser_session.browser_address = browser_address + # once the address is set, the session is started + persistent_browser_session.started_at = datetime.utcnow() + if ip_address: + persistent_browser_session.ip_address = ip_address + if ecs_task_arn: + persistent_browser_session.ecs_task_arn = ecs_task_arn await session.commit() await session.refresh(persistent_browser_session) else: diff --git a/skyvern/webeye/schemas.py b/skyvern/webeye/schemas.py index 4895f978..75017e91 100644 --- a/skyvern/webeye/schemas.py +++ b/skyvern/webeye/schemas.py @@ -39,6 +39,7 @@ class BrowserSessionResponse(BaseModel): description="Url for the browser session page", examples=["https://app.skyvern.com/browser-session/pbs_123456"], ) + vnc_streaming_supported: bool = Field(False, description="Whether the browser session supports VNC streaming") started_at: datetime | None = Field(None, description="Timestamp when the session was started") completed_at: datetime | None = Field(None, description="Timestamp when the session was completed") created_at: datetime = Field( @@ -68,6 +69,7 @@ class BrowserSessionResponse(BaseModel): runnable_id=browser_session.runnable_id, timeout=browser_session.timeout_minutes, browser_address=browser_session.browser_address, + vnc_streaming_supported=True if browser_session.ip_address else False, app_url=app_url, started_at=browser_session.started_at, completed_at=browser_session.completed_at,