fix(cli): stop daemon when socket disappears - #42454
Conversation
detached browser daemons stay alive after losing their control socket monitor the socket identity and exit gracefully when it disappears or is replaced
Test results for "MCP"3 failed 8264 passed, 1366 skipped Merge workflow run. |
🟢 CI is clear — all three failures are pre-existing Firefox flakesHi, I'm the Playwright bot and I took a first look at the CI failures. The three failures are all Firefox-only MCP tests that have nothing to do with this change. This PR only touches the CLI daemon's socket monitor ( DetailsOverall: none of the failures are caused by this PR. The diff adds Pre-existing flake / infra
Triaged by the Playwright bot - agent run |
bae3292
into
microsoft:main
## What's New ### 🎉 New Commands - **`webmcp-list` / `webmcp-call`** — List and call the tools a page registers through the [WebMCP](https://webmachinelearning.github.io/webmcp/) API, letting the page do the work instead of driving its UI. When a page has WebMCP tools, the page status reports how many are available ([#42613](microsoft/playwright#42613)). WebMCP is experimental, see [WebMCP in Chrome](https://developer.chrome.com/docs/ai/webmcp) for how to enable it. ### Other Changes - Headless sessions now shut down after one hour without commands, so a session an agent never closed no longer holds a browser; run `open` again to start a new one. Use `open --idle-timeout <ms>` (config `timeouts.idle`, env `PLAYWRIGHT_MCP_IDLE_TIMEOUT`) to change the timeout, `0` disables it. Headed browsers stay open, and attached browsers are only detached when `attach --idle-timeout <ms>` is set ([#42676](microsoft/playwright#42676)) - The skill includes a guide for attaching screenshots and videos to pull requests with `gh --attach` ([#42645](microsoft/playwright#42645)) ## Bug Fixes - Session daemons exit when their control socket is deleted or replaced, instead of staying alive with the browser ([#42454](microsoft/playwright#42454)) - Explicitly named output files in a nested directory (e.g. `screenshot --filename=sub/shot.png`) no longer fail with `ENOENT` ([#42540](microsoft/playwright#42540)) - Video chapters and screencast overlays are no longer hidden behind open dialogs and popovers ([#42642](microsoft/playwright#42642)) - `npx playwright test --debug=cli` works for tests that create more than one browser context and for every test in a worker, not just the first ([#42503](microsoft/playwright#42503)) - With `PLAYWRIGHT_MCP_EXTENSION_TOKEN` set, `attach --extension` fails after 30 seconds with a hint when the extension never connects (e.g. the token belongs to another Chrome profile) instead of hanging forever ([#42525](microsoft/playwright#42525)) - Disable the Chromium sandbox by default on Linux for the bundled Chromium build, which lacks the setuid sandbox helper ([#42490](microsoft/playwright#42490)) ## Upgrading ```bash npm install -g @playwright/cli@0.1.20 ```
detached browser daemons stay alive after losing their control socket
monitor the socket identity and exit gracefully when it disappears or is replaced
fixes #42428