* fix: Windows auto-connect profiling (#835) Fix three interrelated bugs causing `--auto-connect` to fail on Windows, plus a UX issue where auto-connect hijacked existing tabs: 1. Stale DevToolsActivePort — add TCP port liveness check before returning M144+ WebSocket URL; remove stale files when port is dead. 2. Missing Windows error codes — add os error 10061 (WSAECONNREFUSED) and 10054 (WSAECONNRESET) to is_transient_error() so daemon startup races are retried on Windows. 3. --auto-connect not propagated to daemon — add auto_connect to DaemonOptions, set AGENT_BROWSER_AUTO_CONNECT env var via apply_daemon_env(), and guard the headed launch block so it doesn't send a second launch that overrides the auto-connect. 4. Auto-connect opens a fresh tab — after connecting to an existing Chrome, create a new about:blank tab and bring it to front so navigations don't hijack the user's existing tabs. Made-with: Cursor * fix: address review feedback — cargo fmt, shared helper, Windows tests - Run cargo fmt on is_port_reachable() formatting - Extract duplicated auto-connect-with-fresh-tab logic into connect_auto_with_fresh_tab() helper used by both handle_launch() and auto_launch() - Add unit tests for Windows WSAECONNREFUSED (os error 10061) and WSAECONNRESET (os error 10054) in is_transient_error() --------- Co-authored-by: ctate <366502+ctate@users.noreply.github.com>
This commit is contained in:
@@ -316,6 +316,7 @@ fn main() {
|
||||
action_policy: flags.action_policy.as_deref(),
|
||||
confirm_actions: flags.confirm_actions.as_deref(),
|
||||
engine: flags.engine.as_deref(),
|
||||
auto_connect: flags.auto_connect,
|
||||
idle_timeout: flags.idle_timeout.as_deref(),
|
||||
cdp: flags.cdp.as_deref(),
|
||||
};
|
||||
@@ -617,6 +618,7 @@ fn main() {
|
||||
|| !flags.extensions.is_empty())
|
||||
&& flags.cdp.is_none()
|
||||
&& flags.provider.is_none()
|
||||
&& !flags.auto_connect
|
||||
{
|
||||
let mut launch_cmd = json!({
|
||||
"id": gen_id(),
|
||||
|
||||
Reference in New Issue
Block a user