From 9fcc07df314845bb13b538ed4210485ab22f221c Mon Sep 17 00:00:00 2001 From: puzhen <1303385763@qq.com> Date: Tue, 10 Mar 2026 15:07:11 +0000 Subject: [PATCH 1/2] fix potential bug --- backend/app/agent/toolkit/hybrid_browser_toolkit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/app/agent/toolkit/hybrid_browser_toolkit.py b/backend/app/agent/toolkit/hybrid_browser_toolkit.py index 988893d91..70992ec01 100644 --- a/backend/app/agent/toolkit/hybrid_browser_toolkit.py +++ b/backend/app/agent/toolkit/hybrid_browser_toolkit.py @@ -578,7 +578,7 @@ def clone_for_new_session( browser_log_to_file=self._browser_log_to_file, log_dir=self.config_loader.get_toolkit_config().log_dir, session_id=new_session_id, - default_start_url=self._default_start_url, + default_start_url=None if self.config_loader.get_browser_config().cdp_keep_current_page else self._default_start_url, default_timeout=self._default_timeout, short_timeout=self._short_timeout, navigation_timeout=self._navigation_timeout, From 40bfd5e4d752a23721c93137508fc4dc022fa073 Mon Sep 17 00:00:00 2001 From: puzhen <1303385763@qq.com> Date: Tue, 17 Mar 2026 12:46:24 +0000 Subject: [PATCH 2/2] update --- electron/main/index.ts | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/electron/main/index.ts b/electron/main/index.ts index adad48041..1ec6f7a4e 100644 --- a/electron/main/index.ts +++ b/electron/main/index.ts @@ -98,6 +98,7 @@ interface CdpBrowser { addedAt: number; } let cdp_browser_pool: CdpBrowser[] = []; +let cdpLastAssignedPort = 9223; // tracks the highest port ever assigned, never decreases let cdpHealthCheckTimer: ReturnType | null = null; const CDP_POOL_FILE = path.join(os.homedir(), '.eigent', 'cdp-browsers.json'); @@ -120,8 +121,12 @@ function loadCdpPool(): void { ...b, isExternal: true, })); + cdpLastAssignedPort = cdp_browser_pool.reduce( + (max, b) => Math.max(max, b.port), + cdpLastAssignedPort + ); log.info( - `[CDP POOL] Loaded ${cdp_browser_pool.length} browser(s) from disk` + `[CDP POOL] Loaded ${cdp_browser_pool.length} browser(s) from disk, lastAssignedPort=${cdpLastAssignedPort}` ); } } catch (e) { @@ -692,18 +697,27 @@ function registerIpcHandlers() { // Launch CDP browser with automatic port assignment ipcMain.handle('launch-cdp-browser', async () => { try { - // 1. Find available port (9224–9300) by checking no CDP browser is listening + // 1. Always increment port from the last assigned port // Port 9223 is reserved for the login browser let port: number | null = null; - for (let p = 9224; p < 9300; p++) { - if ( - !cdp_browser_pool.some((b) => b.port === p) && - !(await isCdpPortAlive(p)) - ) { + for (let p = cdpLastAssignedPort + 1; p < 9300; p++) { + if (!(await isCdpPortAlive(p))) { port = p; break; } } + // Wrap around if we hit the ceiling + if (port === null) { + for (let p = 9224; p <= cdpLastAssignedPort && p < 9300; p++) { + if ( + !cdp_browser_pool.some((b) => b.port === p) && + !(await isCdpPortAlive(p)) + ) { + port = p; + break; + } + } + } if (port === null) { return { success: false, error: 'No available port in 9224-9299' }; } @@ -838,6 +852,7 @@ function registerIpcHandlers() { addedAt: Date.now(), }; cdp_browser_pool.push(newBrowser); + cdpLastAssignedPort = port; saveCdpPool(); notifyCdpPoolChanged();