egutierrez
37aacfcfa9
feat(browser): chrome_launch ReuseExisting — guarda anti-duplicado de Chrome
...
Añade el campo ReuseExisting a ChromeLaunchOpts. Con ReuseExisting=true, si el
puerto CDP ya responde a una conexión TCP, ChromeLaunch NO lanza un Chrome nuevo
y devuelve (0, nil) para que el caller se adjunte al existente. Evita acumular
procesos chromium duplicados en el mismo puerto (cada uno ~789 MiB RSS), causa
del leak de RAM del browser_mcp.
Extrae el sondeo de puerto a dialCDP/cdpPortResponds (net.Dial con timeout), que
waitCDPReady ahora reutiliza en su bucle. Tests sin Chrome real (TestCdpPortResponds,
TestChromeLaunchReuseExisting) usando un net.Listener local como puerto ocupado.
Bump a 1.4.0 + growth log + gotchas en el .md (pid 0 = no es nuestro, no matar).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 17:06:45 +02:00
..
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 13:20:36 +02:00
2026-06-05 16:25:11 +02:00
2026-06-06 13:20:36 +02:00
2026-06-06 13:20:36 +02:00
2026-05-09 18:11:24 +02:00
2026-05-09 18:11:24 +02:00
2026-05-14 00:28:20 +02:00
2026-06-06 13:20:36 +02:00
2026-06-06 13:20:36 +02:00
2026-06-06 12:49:54 +02:00
2026-04-05 18:45:16 +02:00
2026-06-06 12:49:54 +02:00
2026-06-05 16:25:11 +02:00
2026-06-05 16:25:11 +02:00
2026-05-09 18:11:24 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-04-05 18:45:16 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-04-05 18:45:16 +02:00
2026-05-09 18:11:24 +02:00
2026-06-06 12:49:54 +02:00
2026-05-09 18:11:24 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-04-01 04:23:51 +02:00
2026-04-05 18:45:16 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-05-09 18:11:24 +02:00
2026-05-09 18:11:24 +02:00
2026-05-14 00:28:20 +02:00
2026-06-06 13:20:36 +02:00
2026-06-06 13:20:36 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-05-09 18:11:24 +02:00
2026-05-09 18:11:24 +02:00
2026-05-14 00:28:20 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-05 16:25:11 +02:00
2026-06-05 16:25:11 +02:00
2026-06-05 16:25:11 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-04-05 18:45:16 +02:00
2026-05-14 00:28:20 +02:00
2026-05-16 16:33:22 +02:00
2026-05-16 16:33:22 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-04-01 04:23:51 +02:00
2026-04-05 18:45:16 +02:00
2026-06-06 12:49:54 +02:00
2026-06-06 12:49:54 +02:00
2026-05-09 03:41:58 +02:00
2026-05-14 00:28:20 +02:00
2026-06-06 13:20:36 +02:00
2026-06-06 13:20:36 +02:00
2026-06-06 12:49:54 +02:00
2026-04-05 18:45:16 +02:00
2026-04-01 04:23:51 +02:00
2026-04-05 18:45:16 +02:00
2026-06-05 16:25:11 +02:00
2026-06-05 16:25:11 +02:00
2026-06-05 16:25:11 +02:00
2026-04-01 04:23:51 +02:00
2026-04-05 18:45:16 +02:00
2026-06-06 17:06:45 +02:00
2026-06-06 17:06:45 +02:00
2026-06-06 17:06:45 +02:00
2026-06-06 01:24:21 +02:00
2026-06-06 01:24:21 +02:00
2026-06-06 01:24:21 +02:00
2026-06-05 16:25:11 +02:00
2026-06-05 16:25:11 +02:00
2026-06-05 16:25:11 +02:00