webviews: the selection-drag test loads the markdown entry alone, not the whole gallery 16 times (base timeout)
markdown-selection-drag hit the runner's 120 s per-file limit on #23034's react-apps-check (shard 2/4, job 119068678028) and passed in about 113 s on #20393's run at the same time. Nothing was stuck. 15 of its 16 tests passed and the runner killed the file during the last one. This PR removes the load that made it so close to the limit. No limit is raised.
Cause.
- The page URL had no
entryPath, so the gallery frame loaded the whole registry: about 150 entries, roughly 2,300 modules (src/gallery/registry.ts). - That load happened for each of the 16 pages, each in a fresh browser context.
- The warm-up then transformed the same modules again on every server start, alongside 7 other dev-server files.
- About 77 s of the 120 s went to setup, before the first test reported.
- The per-test default (120 s) equalled the file limit, so the log never named a slow step.
Fix (test only).
- Pages pass
entryPath=src/pages/markdown/markdown.gallery.ts, asapps-flow.test.tsalready does, so each page loads only the markdown entry. - The warm-up covers that entry and the page it mounts. It fails at once if it fetches nothing, so a wrong URL can't skip the warm-up silently.
- The browsers launched by the install probe are reused, instead of a second launch per engine.
- Lower deadlines: 60 s per test (from 120) and 30 s for first paint (from 60). A stuck step now fails as its own named test before the runner kills the file.
No assertion changes.
Not changed here: about 66 other webview tests open frame.html without entryPath and pay the same whole-gallery cost. composer-draft-wrap and composer-location-strip, which timed out in the same runs, fit that pattern. This PR stays scoped to the one file.
Changelog
none
Observed / Not run
- Root cause read from the two CI logs by a subagent: the 15
(pass)lines with timings, the file's start and kill times, and no "optimize deps" error in this file's log. Then checked against the registry and vite config (base/gallery/, theentryPathfilter). check-browser-test-lanes.ts: passes.scripts/web-lint.sh: clean on this file (the one warning is base'sHistoryPage.tsxjsx-a11y).- Not run locally (no tests on this Mac). A focused fleet run isn't possible:
CMUX_WEB_TEST_FILESisn't on the ci-step env allowlist. This PR's react-apps-check shard runs the file with the other dev-server files.
Agent session: cosmic-gray
🤖 Generated with Claude Code
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Makes the webviews markdown-selection-drag test finish well under the runner's 120s per-file limit; CI runs were timing out mid-file (113s in one run, killed during the last test in the next).
Each of the 16 pages now passes entryPath=src/pages/markdown/markdown.gallery.ts, so they load only the markdown entry instead of the whole gallery (~150 entries, ~2,300 modules). The warm-up covers that entry and the page it mounts, shares one budget inside the before-all hook's limit, and fails if it fetches nothing. Probe browsers are reused instead of relaunched per engine, and deadlines drop to 60s per test and 30s for first paint so a stuck step fails by name. No assertion changes, and the other ~66 webview tests that load the whole gallery are untouched.