From bccaf28b9a8f4362cd52b6f01bfbac60e49813c8 Mon Sep 17 00:00:00 2001 From: Volodymyr Kasaraba Date: Thu, 7 May 2026 16:15:53 -0400 Subject: [PATCH 1/4] rever debug retries --- packages/narada/pyproject.toml | 2 +- packages/narada/src/narada/client.py | 35 +++++++--------------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/packages/narada/pyproject.toml b/packages/narada/pyproject.toml index 181e349..a715c14 100644 --- a/packages/narada/pyproject.toml +++ b/packages/narada/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "narada" -version = "0.1.50" +version = "0.1.51" description = "Python client SDK for Narada" license = "Apache-2.0" readme = "README.md" diff --git a/packages/narada/src/narada/client.py b/packages/narada/src/narada/client.py index c3f4c28..cc96dbe 100644 --- a/packages/narada/src/narada/client.py +++ b/packages/narada/src/narada/client.py @@ -269,35 +269,18 @@ async def _initialize_cloud_browser_window( login_url: str, cdp_auth_headers: dict[str, str], ) -> CloudBrowserWindow: - # Use a local variable for type narrowing. - pw = self._playwright - assert pw is not None - - async def connect_over_cdp() -> tuple[Browser, Page]: - browser = await pw.chromium.connect_over_cdp( - cdp_websocket_url, headers=cdp_auth_headers - ) - initialization_page = browser.contexts[0].pages[0] - return browser, initialization_page + assert self._playwright is not None # Connect to browser via CDP with authentication headers - browser, initialization_page = await connect_over_cdp() + browser = await self._playwright.chromium.connect_over_cdp( + cdp_websocket_url, headers=cdp_auth_headers + ) - # Navigate to login URL (provided by backend with custom token). - # - # This `goto` action can occasionally timeout for unknown reasons. To mitigate this, we - # wrap it in a retry loop. - max_attempts = 3 - for attempt in range(max_attempts): - try: - await initialization_page.goto(login_url, timeout=15_000) - break - except PlaywrightTimeoutError: - if attempt == max_attempts - 1: - raise - logging.info("Retrying navigation to login URL...") - await browser.close() - browser, initialization_page = await connect_over_cdp() + # Navigate to login URL (provided by backend with custom token) + context = browser.contexts[0] + initialization_page = context.pages[0] + + await initialization_page.goto(login_url) # Wait for browser window ID. The extension can take a bit to be installed, so we retry a # few times. From 0e148b8f0b6bbd68eae717b0130e565d9be9fdb1 Mon Sep 17 00:00:00 2001 From: Volodymyr Kasaraba Date: Thu, 7 May 2026 16:18:33 -0400 Subject: [PATCH 2/4] upd formatting --- packages/narada/src/narada/client.py | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/narada/src/narada/client.py b/packages/narada/src/narada/client.py index cc96dbe..166e429 100644 --- a/packages/narada/src/narada/client.py +++ b/packages/narada/src/narada/client.py @@ -279,7 +279,6 @@ async def _initialize_cloud_browser_window( # Navigate to login URL (provided by backend with custom token) context = browser.contexts[0] initialization_page = context.pages[0] - await initialization_page.goto(login_url) # Wait for browser window ID. The extension can take a bit to be installed, so we retry a From 871a64f9e01db1e323d4142afe13bcfee6f750fb Mon Sep 17 00:00:00 2001 From: Volodymyr Kasaraba Date: Thu, 7 May 2026 16:24:28 -0400 Subject: [PATCH 3/4] upd timeout --- packages/narada/src/narada/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/narada/src/narada/client.py b/packages/narada/src/narada/client.py index 166e429..d595676 100644 --- a/packages/narada/src/narada/client.py +++ b/packages/narada/src/narada/client.py @@ -279,7 +279,7 @@ async def _initialize_cloud_browser_window( # Navigate to login URL (provided by backend with custom token) context = browser.contexts[0] initialization_page = context.pages[0] - await initialization_page.goto(login_url) + await initialization_page.goto(login_url, timeout=15_000) # Wait for browser window ID. The extension can take a bit to be installed, so we retry a # few times. From f07e284814cda628416863d79ea97de7d1db8e7d Mon Sep 17 00:00:00 2001 From: Volodymyr Kasaraba Date: Thu, 7 May 2026 16:26:59 -0400 Subject: [PATCH 4/4] upd uv.lock --- uv.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uv.lock b/uv.lock index c2bc9d9..de076e1 100644 --- a/uv.lock +++ b/uv.lock @@ -312,7 +312,7 @@ wheels = [ [[package]] name = "narada" -version = "0.1.50" +version = "0.1.51" source = { editable = "packages/narada" } dependencies = [ { name = "aiohttp" },