Skip to content

fix: cap oxlint below 1.67 to stop duplicate Vitest instances in pnpm repos#791

Merged
rayhanadev merged 1 commit into
mainfrom
ray/react-doctor-issue-699
Jun 12, 2026
Merged

fix: cap oxlint below 1.67 to stop duplicate Vitest instances in pnpm repos#791
rayhanadev merged 1 commit into
mainfrom
ray/react-doctor-issue-699

Conversation

@rayhanadev

@rayhanadev rayhanadev commented Jun 11, 2026

Copy link
Copy Markdown
Member

Fixes #699.

oxlint 1.67.0 added an optional peer dependency on vite-plus, so react-doctor's floating oxlint: ^1.66.0 range makes pnpm resolve that peer against the workspace root's vite-plus in Vite+ monorepos, forcing a second peer-resolution context that installs a duplicate copy of the Vitest fork (@voidzero-dev/vite-plus-test) and breaks test collection with "Vitest failed to find the current suite". This caps oxlint to >=1.66.0 <1.67.0 in react-doctor, @react-doctor/core, and the root pnpm.overrides, regenerates the lockfile (resolved version unchanged at 1.66.0; the extra lockfile lines are pnpm 10.29 adding libc metadata), and adds a patch changeset. Verified against the issue's minimal repro that a fresh install dedupes the fork back to a single instance, while the open PRs #701 and #702 both still resolve to oxlint ≥1.67 (or reintroduce it via a root oxlint install) and leave two instances. Build, typecheck, check:published-deps, lint, and format all pass; the one failing core test (check-expo-project.test.ts) fails identically on a clean checkout and is unrelated. Before bumping oxlint past 1.66 again, the upstream peer dep (oxlint) or pnpm's override handling for auto-installed peers needs to change first.

🤖 Generated with Claude Code


Note

Low Risk
Dependency version ceiling only; no runtime or lint logic changes, with lockfile still on oxlint 1.66.0.

Overview
Caps oxlint from ^1.66.0 to >=1.66.0 <1.67.0 in the root pnpm.overrides, @react-doctor/core, and react-doctor, with a matching lockfile refresh (still resolves to 1.66.0). A patch changeset documents the rationale.

oxlint 1.67.0 introduced an optional peer on vite-plus, which in pnpm monorepos with root Vite+ can pull oxlint into a second peer context and duplicate @voidzero-dev/vite-plus-test, breaking Vitest collection (Vitest failed to find the current suite, #699). Staying below 1.67 avoids that peer edge so the Vitest fork dedupes to one instance.

Reviewed by Cursor Bugbot for commit cfde28f. Bugbot is set up for automated code reviews on this repo. Configure here.

… monorepos (#699)

oxlint 1.67.0 added an optional peer dependency on vite-plus. In pnpm
workspaces that install vite-plus at the root, react-doctor's floating
oxlint range (^1.66.0 -> >=1.67) resolves that peer edge against the
root's vite-plus, forcing a second peer-resolution context for the
Vite+ toolchain. The conflicting contexts install two physical copies
of the Vitest fork (@voidzero-dev/vite-plus-test), so hooks register in
one copy while suites live in the other and collection fails with
"Vitest failed to find the current suite".

Capping oxlint to >=1.66.0 <1.67.0 keeps the peer edge out of
react-doctor's graph; verified against the issue's minimal repro that
the fork dedupes back to a single instance.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@pkg-pr-new

pkg-pr-new Bot commented Jun 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/eslint-plugin-react-doctor@791
npm i https://pkg.pr.new/oxlint-plugin-react-doctor@791
npm i https://pkg.pr.new/react-doctor@791

commit: cfde28f

@github-actions

Copy link
Copy Markdown
Contributor

No React Doctor issues found. 🎉

Reviewed by React Doctor for commit cfde28f.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@rayhanadev rayhanadev merged commit 22268f7 into main Jun 12, 2026
21 checks passed
@rayhanadev rayhanadev deleted the ray/react-doctor-issue-699 branch June 12, 2026 03:33
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.

Installing react-doctor splits Vitest into duplicate module instances in pnpm monorepos (vite-plus/test)

1 participant