[SKY-6974] Browser Profiles [2/3] Marc/backend browser session profiles (#3923)

This commit is contained in:
Marc Kelechava
2025-11-06 01:24:39 -08:00
committed by GitHub
parent f0172a22df
commit 3db5ec6cd7
24 changed files with 662 additions and 27 deletions

View File

@@ -32,6 +32,7 @@ async def ensure_workflow_run(
totp_identifier=block_run_request.totp_identifier,
totp_verification_url=block_run_request.totp_url,
browser_session_id=block_run_request.browser_session_id,
browser_profile_id=block_run_request.browser_profile_id,
max_screenshot_scrolls=block_run_request.max_screenshot_scrolls,
extra_http_headers=block_run_request.extra_http_headers,
)

View File

@@ -553,7 +553,9 @@ async def run_task_v2_helper(
current_url: str | None = None
browser_state = await app.BROWSER_MANAGER.get_or_create_for_workflow_run(
workflow_run=workflow_run, browser_session_id=browser_session_id
workflow_run=workflow_run,
browser_session_id=browser_session_id,
browser_profile_id=workflow_run.browser_profile_id,
)
page = await browser_state.get_working_page()
@@ -609,7 +611,9 @@ async def run_task_v2_helper(
# Always ensure browser_state is available at the start of the loop
fallback_url = settings.TASK_BLOCKED_SITE_FALLBACK_URL
browser_state = await app.BROWSER_MANAGER.get_or_create_for_workflow_run(
workflow_run=workflow_run, browser_session_id=browser_session_id
workflow_run=workflow_run,
browser_session_id=browser_session_id,
browser_profile_id=workflow_run.browser_profile_id,
)
fallback_occurred = False
@@ -623,6 +627,7 @@ async def run_task_v2_helper(
script_id=task_v2.script_id,
organization_id=organization_id,
extra_http_headers=task_v2.extra_http_headers,
browser_profile_id=workflow_run.browser_profile_id,
)
else:
await browser_state.navigate_to_url(page, url)
@@ -895,6 +900,7 @@ async def run_task_v2_helper(
workflow_run=workflow_run,
url=url,
browser_session_id=browser_session_id,
browser_profile_id=workflow_run.browser_profile_id,
)
scraped_page = await scrape_website(
browser_state,

View File

@@ -130,6 +130,7 @@ async def get_workflow_run_response(
app_url=app_url,
created_at=workflow_run.created_at,
modified_at=workflow_run.modified_at,
browser_profile_id=workflow_run.browser_profile_id,
run_request=WorkflowRunRequest(
workflow_id=workflow_run.workflow_permanent_id,
title=workflow_run_resp.workflow_title,
@@ -140,6 +141,7 @@ async def get_workflow_run_response(
totp_identifier=workflow_run.totp_identifier,
max_screenshot_scrolls=workflow_run.max_screenshot_scrolls,
browser_address=workflow_run.browser_address,
browser_profile_id=workflow_run.browser_profile_id,
# TODO: add browser session id
),
errors=workflow_run_resp.errors,