Skip to content

fix(ci): pin playwright@1.58.2 and vite@7.3.1 to fix ubuntu CI failures#127

Merged
jscraik merged 2 commits intomainfrom
fix/ci-playwright-vite-version-conflict
Mar 22, 2026
Merged

fix(ci): pin playwright@1.58.2 and vite@7.3.1 to fix ubuntu CI failures#127
jscraik merged 2 commits intomainfrom
fix/ci-playwright-vite-version-conflict

Conversation

@jscraik
Copy link
Copy Markdown
Owner

@jscraik jscraik commented Mar 22, 2026

Summary

  • Pin playwright, playwright-core, and vite in pnpm.overrides to collapse phantom duplicate peer dep variants
  • Bump playwright and @playwright/test devDependencies to ^1.58.2
  • Regenerate pnpm-lock.yaml (vite@6 refs: 0, playwright@1.58.1 refs: 0)

Motivation / Context

build (ubuntu-latest) has been failing on main with two distinct errors:

  1. Error: Playwright Test did not expect test.describe() to be called here — Playwright singleton conflict. @argos-ci/playwright@6.4.2 (transitive via @argos-ci/storybook) resolves playwright@1.58.2 while root declared ^1.58.1, creating two versions in the virtual store. Playwright's global singleton fails when two @playwright/test instances load in the same process.

  2. Error: Cannot find module '.../vitest@4.0.18.../vitest.mjs'@vitest/mocker@4.0.18 accepts vite: ^6||^7 as an optional peer dep. vite-plugin-istanbul@6.0.2 has a peer constraint of vite: '>=4 <=6', which caused pnpm to resolve a phantom vite@6.4.1 branch. This cascaded into a second @vitest/browser-playwright variant (playwright@1.58.2 + vite@6.4.1), and a duplicate vitest instance with an invalid hash-based .pnpm path.

Closes #122 (Dependabot playwright bump superseded by this fix)

What changed?

  • pnpm.overrides: added playwright: "1.58.2", playwright-core: "1.58.2", vite: "7.3.1"
  • devDependencies: bumped playwright and @playwright/test from ^1.58.1^1.58.2
  • pnpm-lock.yaml: regenerated — all vite@6 and playwright@1.58.1 variants removed
  • Committed updated workspace node_modules symlinks

How to test

  • pnpm install — should resolve to single playwright@1.58.2 and vite@7.3.1
  • pnpm test — 68 test files, 1693 tests passing locally
  • grep "vite@6\." pnpm-lock.yaml | wc -l → 0
  • grep "playwright@1\.58\.1" pnpm-lock.yaml | wc -l → 0

Risk & rollback

Risk level: low

The override pins patch-level versions already in use. vite-plugin-istanbul@6.0.2 already resolves with vite@7 in the other variant — this just prevents the phantom vite@6 variant from being created.

Rollback plan: Revert commit and run pnpm install to restore previous lockfile state.

Security / privacy impact

  • No security impact

Security/AI risk section: N/A — dependency version pinning only.

Governance evidence

Threat model

  • Threat model rationale: No threat model change — this fixes a CI configuration issue, no production behaviour change.

AI and data impact

  • AI/tool execution impact: None
  • Data handling impact: None
  • Privacy / logging changes: None

Verification evidence

  • Test evidence included: pnpm test — 68 files, 1693 passed locally
  • Dependency / secret checks run where applicable: lockfile grep confirms 0 vite@6 refs and 0 playwright@1.58.1 refs
  • PR body includes release artifact notes: N/A (no release path changed)

Review of exception/incident updates

  • No new control bypasses

AI assistance

  • Prompt: ai/prompts/2026-03-22-fix-ci-playwright-vite-overrides.yaml
  • Session: ai/sessions/2026-03-22-fix-ci-playwright-vite-overrides.json
AI Session Log
  • Log file: ai/sessions/2026-03-22-fix-ci-playwright-vite-overrides.json
  • Prompt file: ai/prompts/2026-03-22-fix-ci-playwright-vite-overrides.yaml

🤖 Generated with Claude Code

jscraik and others added 2 commits March 22, 2026 10:04
…esolve CI failures

Two interrelated issues were breaking `build (ubuntu-latest)`:

1. Playwright version conflict: @argos-ci/playwright@6.4.2 (transitive via
   @argos-ci/storybook) required playwright@1.58.2 while root declared ^1.58.1,
   creating two versions. Playwright uses a singleton pattern and throws
   "Playwright Test did not expect test.describe() to be called here" when two
   @playwright/test instances coexist in the same process.

2. vite@6.4.1 phantom variant: @vitest/mocker@4.0.18 accepts vite ^6||^7.
   vite-plugin-istanbul@6.0.2 has a >=4 <=6 peer dep constraint, causing pnpm
   to resolve a separate vite@6.4.1 branch. This cascaded into a second
   @vitest/browser-playwright variant, leading to "Cannot find module vitest.mjs"
   failures from an incorrect hash-based .pnpm path.

Fix: add pnpm.overrides for playwright=1.58.2, playwright-core=1.58.2,
vite=7.3.1 to collapse all transitive resolutions to a single version each.
Also bumps @playwright/test and playwright devDeps to ^1.58.2 to stay aligned.

After pnpm install: vite@6 refs=0, playwright@1.58.1 refs=0 in lockfile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…t@1.58.2 variants

Update committed workspace symlinks to reflect the new single-version
resolutions applied by the pnpm.overrides in the previous commit.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@greptile-apps
Copy link
Copy Markdown

greptile-apps bot commented Mar 22, 2026

Required keyword not found in PR title or description.

@socket-security
Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedjsdom@​28.0.07410010094100
Addeddialkit@​1.1.07910010093100
Addedinput-otp@​1.4.21001009980100
Addedembla-carousel-react@​8.6.010010010082100
Addedhappy-dom@​20.5.0951008896100
Addedfast-check@​3.23.210010010089100
Addedfast-check@​4.5.310010010089100
Addedhono@​4.12.7991009795100
Addedframer-motion@​12.23.2695100100100100
Updated@​playwright/​test@​1.58.1 ⏵ 1.58.210010010099100

View full report

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 93fadbf5ec

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"@modelcontextprotocol/inspector": "^0.19.0",
"@openai/apps-sdk-ui": "0.2.1",
"@playwright/test": "^1.58.1",
"@playwright/test": "^1.58.2",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Pin @playwright/test instead of leaving it on a caret range

If we refresh the lockfile after Playwright publishes any newer 1.x release, @playwright/test can advance past 1.58.2 while the new overrides keep playwright/playwright-core fixed at 1.58.2. The lockfile shows @playwright/test depends on the matching playwright version (pnpm-lock.yaml:9555-9557), so that future install will recreate the cross-version skew this change is trying to eliminate and can break pnpm exec playwright ... in CI/local test runs. Pinning @playwright/test to the same exact version avoids the mismatch.

Useful? React with 👍 / 👎.

Comment on lines +160 to +162
"playwright": "1.58.2",
"playwright-core": "1.58.2",
"vite": "7.3.1"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Update FORJAMIE.md alongside this tooling change

/workspace/Design-System/AGENTS.md says any commit that changes config or tooling must update FORJAMIE.md in the same change-set, including a Recent Changes entry. This commit adds new pnpm.overrides and rewrites the lockfile, but FORJAMIE.md is untouched, so the repo’s required project map is now stale for anyone debugging future CI/install drift.

Useful? React with 👍 / 👎.

@jscraik jscraik merged commit 44ea10a into main Mar 22, 2026
10 checks passed
@jscraik jscraik deleted the fix/ci-playwright-vite-version-conflict branch March 22, 2026 16:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant