From d2dbe538c9e479a3b1ad76e02027c40e4cab0a92 Mon Sep 17 00:00:00 2001 From: Nick Sweeting Date: Fri, 18 Jul 2025 12:49:35 -0700 Subject: [PATCH] disable bubus WAL for now --- browser_use/agent/service.py | 4 +- browser_use/sync/service.py | 58 ++++++++-------- tests/ci/test_sync_client_auth.py | 112 +++++++++++++++--------------- 3 files changed, 87 insertions(+), 87 deletions(-) diff --git a/browser_use/agent/service.py b/browser_use/agent/service.py index 7d586cce4..8fd81ccdd 100644 --- a/browser_use/agent/service.py +++ b/browser_use/agent/service.py @@ -439,8 +439,8 @@ class Agent(Generic[Context, AgentStructuredOutput]): # Event bus with WAL persistence # Default to ~/.config/browseruse/events/{agent_session_id}.jsonl - wal_path = CONFIG.BROWSER_USE_CONFIG_DIR / 'events' / f'{self.session_id}.jsonl' - self.eventbus = EventBus(name=f'Agent_{str(self.id)[-4:]}', wal_path=wal_path) + # wal_path = CONFIG.BROWSER_USE_CONFIG_DIR / 'events' / f'{self.session_id}.jsonl' + self.eventbus = EventBus(name=f'Agent_{str(self.id)[-4:]}') # Cloud sync service self.enable_cloud_sync = CONFIG.BROWSER_USE_CLOUD_SYNC diff --git a/browser_use/sync/service.py b/browser_use/sync/service.py index f44d1cf97..053011831 100644 --- a/browser_use/sync/service.py +++ b/browser_use/sync/service.py @@ -132,7 +132,7 @@ class CloudSync: await self._resend_pending_events() # Update WAL events with real user_id - await self._update_wal_user_ids(agent_session_id) + # await self._update_wal_user_ids(agent_session_id) except Exception as e: logger.debug(f'Cloud sync authentication failed: {e}') @@ -151,39 +151,39 @@ class CloudSync: self.pending_events.clear() - async def _update_wal_user_ids(self, session_id: str) -> None: - """Update user IDs in WAL file after authentication""" - try: - assert self.auth_client, 'Cloud sync must be authenticated to update WAL user ID' + # async def _update_wal_user_ids(self, session_id: str) -> None: + # """Update user IDs in WAL file after authentication""" + # try: + # assert self.auth_client, 'Cloud sync must be authenticated to update WAL user ID' - wal_path = CONFIG.BROWSER_USE_CONFIG_DIR / 'events' / f'{session_id}.jsonl' - if not await anyio.Path(wal_path).exists(): - raise FileNotFoundError( - f'CloudSync failed to update saved event user_ids after auth: Agent EventBus WAL file not found: {wal_path}' - ) + # wal_path = CONFIG.BROWSER_USE_CONFIG_DIR / 'events' / f'{session_id}.jsonl' + # if not await anyio.Path(wal_path).exists(): + # raise FileNotFoundError( + # f'CloudSync failed to update saved event user_ids after auth: Agent EventBus WAL file not found: {wal_path}' + # ) - # Read all events - events = [] - content = await anyio.Path(wal_path).read_text() - for line in content.splitlines(): - if line.strip(): - events.append(json.loads(line)) + # # Read all events + # events = [] + # content = await anyio.Path(wal_path).read_text() + # for line in content.splitlines(): + # if line.strip(): + # events.append(json.loads(line)) - # Update user_id and device_id - user_id = self.auth_client.user_id - device_id = self.auth_client.device_id - for event in events: - if 'user_id' in event: - event['user_id'] = user_id - # Add device_id to all events - event['device_id'] = device_id + # # Update user_id and device_id + # user_id = self.auth_client.user_id + # device_id = self.auth_client.device_id + # for event in events: + # if 'user_id' in event: + # event['user_id'] = user_id + # # Add device_id to all events + # event['device_id'] = device_id - # Write back - updated_content = '\n'.join(json.dumps(event) for event in events) + '\n' - await anyio.Path(wal_path).write_text(updated_content) + # # Write back + # updated_content = '\n'.join(json.dumps(event) for event in events) + '\n' + # await anyio.Path(wal_path).write_text(updated_content) - except Exception as e: - logger.warning(f'Failed to update WAL user IDs: {e}') + # except Exception as e: + # logger.warning(f'Failed to update WAL user IDs: {e}') async def wait_for_auth(self) -> None: """Wait for authentication to complete if in progress""" diff --git a/tests/ci/test_sync_client_auth.py b/tests/ci/test_sync_client_auth.py index 2958bef64..487aef335 100644 --- a/tests/ci/test_sync_client_auth.py +++ b/tests/ci/test_sync_client_auth.py @@ -544,71 +544,71 @@ class TestCloudSync: # Should handle error gracefully without crashing - async def test_update_wal_events(self, temp_config_dir): - """Test updating WAL events with real user ID.""" - # Create real auth client - auth = DeviceAuthClient(base_url='http://localhost:8000') - auth.auth_config.api_token = 'test-api-key' - auth.auth_config.user_id = 'test-user-123' + # async def test_update_wal_events(self, temp_config_dir): + # """Test updating WAL events with real user ID.""" + # # Create real auth client + # auth = DeviceAuthClient(base_url='http://localhost:8000') + # auth.auth_config.api_token = 'test-api-key' + # auth.auth_config.user_id = 'test-user-123' - service = CloudSync( - base_url='http://localhost:8000', - enable_auth=True, - ) - service.auth_client = auth - service.session_id = 'test-session-id' + # service = CloudSync( + # base_url='http://localhost:8000', + # enable_auth=True, + # ) + # service.auth_client = auth + # service.session_id = 'test-session-id' - # Create the events directory structure that the method expects - events_dir = temp_config_dir / 'events' - events_dir.mkdir(exist_ok=True) + # # Create the events directory structure that the method expects + # events_dir = temp_config_dir / 'events' + # events_dir.mkdir(exist_ok=True) - # Create WAL file with temp user IDs - wal_path = events_dir / f'{service.session_id}.jsonl' - events = [ - { - 'event_type': 'CreateAgentTaskEvent', - 'user_id': '99999999-9999-9999-9999-999999999999', # TEMP_USER_ID - 'task': 'Task 1', - }, - { - 'event_type': 'UpdateAgentTaskEvent', - 'user_id': '99999999-9999-9999-9999-999999999999', # TEMP_USER_ID - 'status': 'done', - }, - { - 'event_type': 'CreateAgentStepEvent', - 'user_id': 'some-other-user', # Different user, should still be updated - 'step': 1, - }, - ] + # # Create WAL file with temp user IDs + # wal_path = events_dir / f'{service.session_id}.jsonl' + # events = [ + # { + # 'event_type': 'CreateAgentTaskEvent', + # 'user_id': '99999999-9999-9999-9999-999999999999', # TEMP_USER_ID + # 'task': 'Task 1', + # }, + # { + # 'event_type': 'UpdateAgentTaskEvent', + # 'user_id': '99999999-9999-9999-9999-999999999999', # TEMP_USER_ID + # 'status': 'done', + # }, + # { + # 'event_type': 'CreateAgentStepEvent', + # 'user_id': 'some-other-user', # Different user, should still be updated + # 'step': 1, + # }, + # ] - # Write events to WAL file - content = '\n'.join(json.dumps(event) for event in events) + '\n' - await anyio.Path(wal_path).write_text(content) + # # Write events to WAL file + # content = '\n'.join(json.dumps(event) for event in events) + '\n' + # await anyio.Path(wal_path).write_text(content) - # Call the method under test (temp_config_dir fixture already sets the env var) - await service._update_wal_user_ids(service.session_id) + # # Call the method under test (temp_config_dir fixture already sets the env var) + # await service._update_wal_user_ids(service.session_id) - # Read back the updated file and verify changes - content = await anyio.Path(wal_path).read_text() + # # Read back the updated file and verify changes + # content = await anyio.Path(wal_path).read_text() - updated_events = [] - for line in content.splitlines(): - if line.strip(): - updated_events.append(json.loads(line)) + # updated_events = [] + # for line in content.splitlines(): + # if line.strip(): + # updated_events.append(json.loads(line)) - # Verify all user_ids were updated to the authenticated user's ID - assert len(updated_events) == 3 - for event in updated_events: - assert event['user_id'] == 'test-user-123' + # # Verify all user_ids were updated to the authenticated user's ID + # assert len(updated_events) == 3 + # for event in updated_events: + # assert event['user_id'] == 'test-user-123' - # Verify other fields remained unchanged - assert updated_events[0]['event_type'] == 'CreateAgentTaskEvent' - assert updated_events[0]['task'] == 'Task 1' - assert updated_events[1]['event_type'] == 'UpdateAgentTaskEvent' - assert updated_events[1]['status'] == 'done' - assert updated_events[2]['event_type'] == 'CreateAgentStepEvent' - assert updated_events[2]['step'] == 1 + # # Verify other fields remained unchanged + # assert updated_events[0]['event_type'] == 'CreateAgentTaskEvent' + # assert updated_events[0]['task'] == 'Task 1' + # assert updated_events[1]['event_type'] == 'UpdateAgentTaskEvent' + # assert updated_events[1]['status'] == 'done' + # assert updated_events[2]['event_type'] == 'CreateAgentStepEvent' + # assert updated_events[2]['step'] == 1 class TestIntegration: