A committed test.only/describe.only shrinks the Playwright run to a
subset while the workflow still reports success — a silent partial
green. None of the three desktop Playwright configs set forbidOnly.
- Root config: forbidOnly: !!process.env.CI, mirroring the existing
retries: process.env.CI ? 1 : 0 CI switch — local devs keep the
ability to focus a test interactively.
- e2e/core and e2e/update configs: forbidOnly: true unconditionally.
These lanes already hard-set retries: 0 because a required job must
expose problems rather than hide them; the same contract forbids a
focused test quietly shrinking a required job.
Verified on base (red): CI=1 npx playwright test with a temporary
test.only probe passed and reported '1 passed'. After the fix (green):
the same probe fails with "item focused with '.only' is not allowed
due to the 'forbidOnly' option" under CI=1 for the root config and
without CI for the core/update lanes; without CI the root config still
runs the focused probe (local behavior unchanged).
Fixes#93142