fix(connect): extension connect now uses the relay URL (was falling through to auto-connect)

`extension connect` rewrote argv to ["connect", <relay-url>] but the connect path
reads flags.cdp — parsed earlier from the original argv ("extension connect" →
None). So the relay URL was dropped and the daemon ran AUTO-CONNECT, grabbing
whatever Chrome it could discover: a stale remote-debugging Chrome on :9222
(indefinite hang), or triggering Chrome's "Allow remote debugging?" prompt on
machines without one. This is the EAGAIN/hang hermes hit on --session connect.

Fix: set flags.cdp = Some(relay_url) (+ disable auto_connect) in the
extension-connect branch so the daemon connects to the live relay endpoint.
Diagnosed via local repro (trace showed connect_cdp resolving ws://...:9222/
devtools/browser/... instead of the relay's ws://...:<port>/<guid>).
This commit is contained in:
leeguooooo
2026-06-09 23:39:41 +09:00
parent afb68ded93
commit ea58bce19e
+8 -1
View File
@@ -658,8 +658,15 @@ fn main() {
if clean.get(1).map(|s| s.as_str()) == Some("connect") {
match connect::relay_url() {
Some(url) => {
// The connect path reads `flags.cdp` (parsed from the original
// argv, which was `extension connect` → None), NOT `clean`.
// Without this the relay URL is dropped and we fall through to
// auto-connect, grabbing some other Chrome (stale :9222) or
// popping the remote-debug prompt. Point the daemon at the
// relay explicitly.
flags.cdp = Some(url.clone());
flags.auto_connect = false;
clean = vec!["connect".to_string(), url];
// fall through to the normal connect handling below
}
None => {
eprintln!(