ci: run webviews files that start a dev server one at a time (no bead)
Summary
The webviews runner serializes only the files that use the agent pane or gallery Vite configs. Eight more files spawn vp dev themselves (editor-page, ui-a11y, text-field-focus, diff-virtualization, desktop-feel, menu-focus, files-panel-coverage, settings-scroll), so they ran in parallel and optimized into the same node_modules/.vite.
On #19746's react-apps-check (run 38213391394), editor-page's first page never loaded within 60 s next to ui-a11y and text-field-focus. It hit the 120 s file limit, and every later case failed with "Target page, context or browser has been closed". The runner now also matches the "dev", spawn argument, which puts exactly those eight files in the one-at-a-time lane.
The no-timeout test's fake PATH also lacked grep and basename, so that case ran zero files. It now has both.
Testing
- Red (
4326f85e8389):python3 tests/test_webviews_tests_per_file.pyfailedtest_files_that_start_a_dev_server_never_run_at_once: settings-scroll, text-field-focus and ui-a11y overlapped. - Green (this head): the same command ran 6 tests, OK.
- shellcheck on the runner is clean.
- Not checked:
verify-local.pyreported swift-syntax, localization, localization-defaults and package-groups red on this tree. None of them reads the two files this PR changes. The real web suite's wall time is measured by this PR's react-apps-check: eight files move from the parallel lane to the serial lane.
Changelog
none
๐ค Generated with Claude Code
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.
Summary by cubic
Serializes every webviews test file that starts a Vite dev server so parallel runs no longer race on node_modules/.vite.
Eight files that spawn vp dev themselves (editor-page, ui-a11y, text-field-focus, and five more) previously ran in the parallel lane and could time out โ editor-page's first page never loaded beside ui-a11y and text-field-focus on react-apps-check. The runner now matches the "dev", spawn argument and puts those files in the one-at-a-time lane. The no-timeout test's fake PATH also lacked grep and basename, which made that case run zero files; both are now included.