Conversation
Codecov Results 📊Generated by Codecov Action |
node-overhead report 🧳Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.
|
docs/oxlint-migration-gaps.md
Outdated
|
|
||
| | Rule | Status | Notes | | ||
| | ---------------------------- | ------- | -------------------------------------------------- | | ||
| | `simple-import-sort/imports` | **Gap** | Import sorting - consider using Prettier or dprint | |
There was a problem hiding this comment.
You may be able to accomplish a lot of this via import sorting in oxfmt, if desired https://oxc.rs/docs/guide/usage/formatter/sorting.html
There was a problem hiding this comment.
Yep, it's in the oxfmt space so will update it here. Thanks!
532e08b to
6df3292
Compare
size-limit report 📦
|
f9a58bb to
d41b658
Compare
There was a problem hiding this comment.
Pull request overview
Migrates the monorepo’s linting setup from ESLint (8.x) to Oxlint, updating configs and package scripts so linting can run significantly faster across CI and locally.
Changes:
- Replaces root + per-package ESLint configs with
.oxlintrc.jsonequivalents (including rule/plugin mapping and overrides). - Updates root and package-level
lint/fixscripts fromeslinttooxlint(adds type-aware linting in the root script). - Adjusts inline rule-disable comments where rule names/prefixes changed (notably custom
sdk/*rules).
Reviewed changes
Copilot reviewed 209 out of 211 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| yarn.lock | Adds oxlint + oxlint-tsgolint dependencies and platform bindings. |
| scripts/bump-version.test.ts | Minor string formatting change aligned with lint rules. |
| package.json | Switches root lint/fix scripts to oxlint; adds oxlint deps; updates CI entrypoint script names. |
| .github/workflows/build.yml | Updates lint job to run yarn lint:oxlint. |
| .oxlintrc.json | Introduces repo-wide Oxlint configuration (plugins, rules, overrides, ignore patterns). |
| .eslintrc.js | Removes root ESLint configuration. |
| dev-packages/.oxlintrc.json | Adds dev-packages base Oxlint config overrides. |
| dev-packages/.eslintrc.js | Removes dev-packages ESLint config. |
| dev-packages/test-utils/package.json | Switches lint/fix scripts to oxlint. |
| dev-packages/test-utils/.oxlintrc.json | Adds Oxlint config for test-utils. |
| dev-packages/test-utils/.eslintrc.js | Removes ESLint config for test-utils. |
| dev-packages/size-limit-gh-action/package.json | Switches lint/fix scripts to oxlint. |
| dev-packages/size-limit-gh-action/.oxlintrc.json | Adds Oxlint config for size-limit action. |
| dev-packages/size-limit-gh-action/.eslintrc.cjs | Removes ESLint config for size-limit action. |
| dev-packages/rollup-utils/.oxlintrc.json | Adds Oxlint config for rollup-utils (ignores template). |
| dev-packages/rollup-utils/.eslintrc.cjs | Removes ESLint config for rollup-utils. |
| dev-packages/node-overhead-gh-action/package.json | Switches lint/fix scripts to oxlint. |
| dev-packages/node-overhead-gh-action/.oxlintrc.json | Adds Oxlint config for node-overhead action. |
| dev-packages/node-overhead-gh-action/.eslintrc.cjs | Removes ESLint config for node-overhead action. |
| dev-packages/node-integration-tests/package.json | Switches lint/fix scripts to oxlint. |
| dev-packages/node-integration-tests/.oxlintrc.json | Adds Oxlint config for node integration tests. |
| dev-packages/node-integration-tests/.eslintrc.js | Removes ESLint config for node integration tests. |
| dev-packages/node-integration-tests/suites/tracing/tedious/test.ts | Updates skipped-test disable rule reference. |
| dev-packages/node-core-integration-tests/package.json | Switches lint/fix scripts to oxlint. |
| dev-packages/node-core-integration-tests/.oxlintrc.json | Adds Oxlint config for node-core integration tests. |
| dev-packages/node-core-integration-tests/.eslintrc.js | Removes ESLint config for node-core integration tests. |
| dev-packages/external-contributor-gh-action/package.json | Switches lint/fix scripts to oxlint. |
| dev-packages/external-contributor-gh-action/.oxlintrc.json | Adds Oxlint config for external contributor action. |
| dev-packages/external-contributor-gh-action/.eslintrc.cjs | Removes ESLint config for external contributor action. |
| dev-packages/clear-cache-gh-action/package.json | Switches lint/fix scripts to oxlint. |
| dev-packages/clear-cache-gh-action/.oxlintrc.json | Adds Oxlint config for clear-cache action. |
| dev-packages/clear-cache-gh-action/.eslintrc.cjs | Removes ESLint config for clear-cache action. |
| dev-packages/bundler-tests/.oxlintrc.json | Adds Oxlint config for bundler-tests. |
| dev-packages/bundler-tests/.eslintrc.js | Removes ESLint config for bundler-tests. |
| dev-packages/browser-integration-tests/package.json | Switches lint/fix scripts to oxlint. |
| dev-packages/browser-integration-tests/.oxlintrc.json | Adds Oxlint config for browser integration tests. |
| dev-packages/browser-integration-tests/.eslintrc.js | Removes ESLint config for browser integration tests. |
| dev-packages/cloudflare-integration-tests/package.json | Switches lint/fix scripts to oxlint. |
| dev-packages/cloudflare-integration-tests/.oxlintrc.json | Adds Oxlint config for cloudflare integration tests. |
| dev-packages/cloudflare-integration-tests/.eslintrc.js | Removes ESLint config for cloudflare integration tests. |
| dev-packages/e2e-tests/package.json | Switches lint/fix scripts to oxlint. |
| dev-packages/e2e-tests/.oxlintrc.json | Adds Oxlint config for e2e-tests (ignores test apps/tmp). |
| dev-packages/e2e-tests/.eslintrc.js | Removes ESLint config for e2e-tests. |
| dev-packages/e2e-tests/test-applications/remix-hydrogen/.eslintrc.cjs | Removes ESLint config from test application fixture. |
| dev-packages/e2e-tests/test-applications/remix-hydrogen/.eslintignore | Removes ESLint ignore from test application fixture. |
| dev-packages/e2e-tests/test-applications/hydrogen-react-router-7/.eslintrc.cjs | Removes ESLint config from test application fixture. |
| dev-packages/e2e-tests/test-applications/hydrogen-react-router-7/.eslintignore | Removes ESLint ignore from test application fixture. |
| dev-packages/e2e-tests/test-applications/create-remix-app-v2/.eslintrc.js | Removes ESLint config from test application fixture. |
| dev-packages/e2e-tests/test-applications/create-remix-app-v2-non-vite/.eslintrc.js | Removes ESLint config from test application fixture. |
| dev-packages/e2e-tests/test-applications/create-remix-app-express/.eslintrc.cjs | Removes ESLint config from test application fixture. |
| dev-packages/e2e-tests/test-applications/create-remix-app-express-vite-dev/.eslintrc.js | Removes ESLint config from test application fixture. |
| packages/angular/package.json | Switches lint/fix scripts to oxlint. |
| packages/angular/.oxlintrc.json | Adds Oxlint config (browser env + overrides/ignores). |
| packages/angular/.eslintrc.cjs | Removes ESLint config for Angular package. |
| packages/astro/package.json | Switches lint/fix scripts to oxlint. |
| packages/astro/.oxlintrc.json | Adds Oxlint config (browser+node env). |
| packages/astro/.eslintrc.cjs | Removes ESLint config for Astro package. |
| packages/aws-serverless/package.json | Switches lint/fix scripts to oxlint. |
| packages/aws-serverless/.oxlintrc.json | Adds Oxlint config (node env). |
| packages/aws-serverless/.eslintrc.js | Removes ESLint config for aws-serverless package. |
| packages/browser/package.json | Switches lint/fix scripts to oxlint. |
| packages/browser/.oxlintrc.json | Adds Oxlint config (browser env + ignores). |
| packages/browser/.eslintrc.js | Removes ESLint config for browser package. |
| packages/browser/.eslintignore | Removes ESLint ignore for browser package. |
| packages/browser-utils/package.json | Switches lint/fix scripts to oxlint. |
| packages/browser-utils/.oxlintrc.json | Adds Oxlint config (browser env + metrics overrides). |
| packages/browser-utils/.eslintrc.js | Removes ESLint config for browser-utils package. |
| packages/browser-utils/src/metrics/web-vitals/lib/LayoutShiftManager.ts | Updates disable directives for renamed custom rules. |
| packages/browser-utils/src/metrics/web-vitals/lib/InteractionManager.ts | Updates disable directives for renamed custom rules. |
| packages/bun/package.json | Switches lint/fix scripts to oxlint. |
| packages/bun/.oxlintrc.json | Adds Oxlint config (node env + overrides). |
| packages/bun/.eslintrc.js | Removes ESLint config for bun package. |
| packages/cloudflare/package.json | Switches lint/fix scripts to oxlint. |
| packages/cloudflare/.oxlintrc.json | Adds Oxlint config (node env + overrides). |
| packages/cloudflare/.eslintrc.js | Removes ESLint config for cloudflare package. |
| packages/core/package.json | Switches lint/fix scripts to oxlint. |
| packages/core/.oxlintrc.json | Adds Oxlint config (custom sdk rule + ignores). |
| packages/core/.eslintrc.js | Removes ESLint config for core package. |
| packages/core/src/utils/tracing.ts | Updates disable directive for renamed custom regexp rule. |
| packages/core/src/utils/string.ts | Updates disable directive rule name mapping. |
| packages/core/src/utils/normalize.ts | Updates disable directive for renamed custom regexp rule. |
| packages/core/src/integrations/mcp-server/correlation.ts | Updates disable directive for renamed custom random rule. |
| packages/core/test/lib/client.test.ts | Updates skipped-test disable rule reference. |
| packages/deno/package.json | Switches lint/fix scripts to oxlint. |
| packages/deno/.oxlintrc.json | Adds Oxlint config (overrides + ignores). |
| packages/deno/.eslintrc.js | Removes ESLint config for deno package. |
| packages/ember/package.json | Switches lint:js/fix scripts to oxlint. |
| packages/ember/.oxlintrc.json | Adds Oxlint config (ember-specific overrides). |
| packages/ember/.eslintrc.js | Removes ESLint config for ember package. |
| packages/ember/.eslintignore | Removes ESLint ignore for ember package. |
| packages/ember/types/global.d.ts | Moves to type-only import and adds targeted disable for explicit any. |
| packages/eslint-plugin-sdk/package.json | Switches lint/fix scripts to oxlint. |
| packages/eslint-plugin-sdk/.oxlintrc.json | Adds Oxlint config for eslint-plugin-sdk package. |
| packages/eslint-plugin-sdk/.eslintrc.js | Removes ESLint config for eslint-plugin-sdk package. |
| packages/feedback/package.json | Switches lint/fix scripts to oxlint. |
| packages/feedback/.oxlintrc.json | Adds Oxlint config for feedback package. |
| packages/feedback/.eslintrc.js | Removes ESLint config for feedback package. |
| packages/feedback/.eslintignore | Removes ESLint ignore for feedback package. |
| packages/gatsby/package.json | Switches lint/fix scripts to oxlint. |
| packages/gatsby/.oxlintrc.json | Adds Oxlint config (env + ignores). |
| packages/gatsby/.eslintrc.js | Removes ESLint config for gatsby package. |
| packages/google-cloud-serverless/package.json | Switches lint/fix scripts to oxlint. |
| packages/google-cloud-serverless/.oxlintrc.json | Adds Oxlint config (node env). |
| packages/google-cloud-serverless/.eslintrc.js | Removes ESLint config for google-cloud-serverless package. |
| packages/hono/package.json | Switches lint/fix scripts to oxlint. |
| packages/hono/.oxlintrc.json | Adds Oxlint config (node env + overrides). |
| packages/hono/.eslintrc.js | Removes ESLint config for hono package. |
| packages/integration-shims/package.json | Switches lint/fix scripts to oxlint. |
| packages/integration-shims/.oxlintrc.json | Adds Oxlint config for integration-shims package. |
| packages/integration-shims/.eslintrc.js | Removes ESLint config for integration-shims package. |
| packages/nestjs/package.json | Switches lint/fix scripts to oxlint. |
| packages/nestjs/.oxlintrc.json | Adds Oxlint config (node env). |
| packages/nestjs/.eslintrc.js | Removes ESLint config for nestjs package. |
| packages/nestjs/.eslintignore | Removes ESLint ignore for nestjs package. |
| packages/nextjs/package.json | Switches lint/fix scripts to oxlint. |
| packages/nextjs/.oxlintrc.json | Adds Oxlint config (env, sdk rules, overrides/globals). |
| packages/nextjs/.eslintrc.js | Removes ESLint config for nextjs package. |
| packages/nextjs/src/config/polyfills/perf_hooks.js | Updates file-level disable directive for renamed custom rule. |
| packages/nextjs/src/config/loaders/valueInjectionLoader.ts | Updates file-level disable directive for renamed custom rule. |
| packages/nextjs/src/config/loaders/wrappingLoader.ts | Updates disable directives for renamed custom regexp rule. |
| packages/nextjs/src/config/loaders/prefixLoader.ts | Updates disable directives for renamed custom regexp rule. |
| packages/nextjs/src/config/webpack.ts | Updates disable directives for renamed custom regexp rule. |
| packages/nextjs/src/server/rewriteFramesIntegration.ts | Updates disable directive for renamed custom regexp rule. |
| packages/nextjs/src/server/distDirRewriteFramesIntegration.ts | Updates disable directive for renamed custom regexp rule. |
| packages/nextjs/src/edge/rewriteFramesIntegration.ts | Updates disable directive for renamed custom regexp rule. |
| packages/nextjs/src/edge/distDirRewriteFramesIntegration.ts | Updates disable directive for renamed custom regexp rule. |
| packages/nextjs/src/client/routing/parameterization.ts | Updates disable directive for renamed custom regexp rule. |
| packages/nextjs/src/client/routing/pagesRouterRoutingInstrumentation.ts | Updates disable directive for renamed custom regexp rule. |
| packages/node/package.json | Switches lint/fix scripts to oxlint. |
| packages/node/.oxlintrc.json | Adds Oxlint config (node env, sdk rules, overrides). |
| packages/node/.eslintrc.js | Removes ESLint config for node package. |
| packages/node/src/integrations/tracing/fastify/fastify-otel/.oxlintrc.json | Adds nested Oxlint config for fastify-otel subdir. |
| packages/node-core/package.json | Switches lint/fix scripts to oxlint. |
| packages/node-core/.oxlintrc.json | Adds Oxlint config (node env, sdk rules, overrides). |
| packages/node-core/.eslintrc.js | Removes ESLint config for node-core package. |
| packages/node-core/src/integrations/context.ts | Updates disable directives for renamed custom random rule. |
| packages/node-core/src/cron/common.ts | Updates disable directive for renamed custom regexp rule. |
| packages/node-native/package.json | Switches lint/fix scripts to oxlint. |
| packages/node-native/.oxlintrc.json | Adds Oxlint config (node env, overrides, ignores). |
| packages/node-native/.eslintrc.js | Removes ESLint config for node-native package. |
| packages/nuxt/package.json | Switches lint/fix scripts to oxlint. |
| packages/nuxt/.oxlintrc.json | Adds Oxlint config (browser+node env). |
| packages/nuxt/.eslintrc.js | Removes ESLint config for nuxt package. |
| packages/nuxt/src/vite/utils.ts | Updates disable directives for renamed custom regexp rule. |
| packages/opentelemetry/package.json | Switches lint/fix scripts to oxlint. |
| packages/opentelemetry/.oxlintrc.json | Adds Oxlint config (node env, sdk rule + test override). |
| packages/opentelemetry/.eslintrc.js | Removes ESLint config for opentelemetry package. |
| packages/profiling-node/package.json | Switches lint/fix scripts to oxlint. |
| packages/profiling-node/.oxlintrc.json | Adds Oxlint config (node env, overrides, ignores). |
| packages/profiling-node/.eslintrc.js | Removes ESLint config for profiling-node package. |
| packages/profiling-node/.eslintignore | Removes ESLint ignore for profiling-node package. |
| packages/react/package.json | Switches lint/fix scripts to oxlint. |
| packages/react/.oxlintrc.json | Adds Oxlint config including react plugin + test override. |
| packages/react/.eslintrc.js | Removes ESLint config for react package. |
| packages/react-router/package.json | Switches lint/fix scripts to oxlint. |
| packages/react-router/.oxlintrc.json | Adds Oxlint config (browser+node env). |
| packages/react-router/.eslintrc.js | Removes ESLint config for react-router package. |
| packages/remix/package.json | Switches lint/fix scripts to oxlint. |
| packages/remix/.oxlintrc.json | Adds Oxlint config (env + ignores). |
| packages/remix/.eslintrc.js | Removes ESLint config for remix package. |
| packages/remix/src/client/remixRouteParameterization.ts | Updates disable directive for renamed custom regexp rule. |
| packages/replay-canvas/package.json | Switches lint/fix scripts to oxlint. |
| packages/replay-canvas/.oxlintrc.json | Adds Oxlint config for replay-canvas. |
| packages/replay-canvas/.eslintrc.js | Removes ESLint config for replay-canvas. |
| packages/replay-canvas/.eslintignore | Removes ESLint ignore for replay-canvas. |
| packages/replay-internal/package.json | Switches multi-step lint/fix scripts to oxlint. |
| packages/replay-internal/.oxlintrc.json | Adds Oxlint overrides for replay-internal tests/setup. |
| packages/replay-internal/.eslintrc.js | Removes ESLint config for replay-internal. |
| packages/replay-internal/.eslintignore | Removes ESLint ignore for replay-internal. |
| packages/replay-worker/package.json | Switches lint/fix scripts to oxlint. |
| packages/replay-worker/.oxlintrc.json | Adds Oxlint config (ignore + overrides). |
| packages/replay-worker/.eslintrc.js | Removes ESLint config for replay-worker. |
| packages/replay-worker/.eslintignore | Removes ESLint ignore for replay-worker. |
| packages/solid/package.json | Switches lint/fix scripts to oxlint. |
| packages/solid/.oxlintrc.json | Adds Oxlint config (browser env). |
| packages/solid/.eslintrc.js | Removes ESLint config for solid package. |
| packages/solid/.eslintignore | Removes ESLint ignore for solid package. |
| packages/solidstart/package.json | Switches lint/fix scripts to oxlint. |
| packages/solidstart/.oxlintrc.json | Adds Oxlint config (browser+node env). |
| packages/solidstart/.eslintrc.js | Removes ESLint config for solidstart package. |
| packages/solidstart/.eslintignore | Removes ESLint ignore for solidstart package. |
| packages/solidstart/src/config/utils.ts | Updates disable directives for renamed custom regexp rule. |
| packages/solidstart/src/config/wrapServerEntryWithDynamicImport.ts | Updates disable directives for renamed custom regexp rule. |
| packages/svelte/package.json | Switches lint/fix scripts to oxlint. |
| packages/svelte/.oxlintrc.json | Adds Oxlint config (browser env). |
| packages/svelte/.eslintrc.js | Removes ESLint config for svelte package. |
| packages/sveltekit/package.json | Switches lint/fix scripts to oxlint. |
| packages/sveltekit/.oxlintrc.json | Adds Oxlint config (browser+node env). |
| packages/sveltekit/.eslintrc.js | Removes ESLint config for sveltekit package. |
| packages/sveltekit/src/vite/injectGlobalValues.ts | Updates disable directive for renamed custom regexp rule. |
| packages/sveltekit/src/vite/sourceMaps.ts | Updates disable directive for renamed custom regexp rule. |
| packages/sveltekit/src/server-common/integrations/rewriteFramesIntegration.ts | Updates disable directive for renamed custom regexp rule. |
| packages/tanstackstart/package.json | Switches lint/fix scripts to oxlint. |
| packages/tanstackstart/.oxlintrc.json | Adds Oxlint config (browser+node env). |
| packages/tanstackstart/.eslintrc.js | Removes ESLint config for tanstackstart package. |
| packages/tanstackstart-react/package.json | Switches lint/fix scripts to oxlint. |
| packages/tanstackstart-react/.oxlintrc.json | Adds Oxlint config (browser+node env). |
| packages/tanstackstart-react/.eslintrc.js | Removes ESLint config for tanstackstart-react package. |
| packages/types/package.json | Switches lint/fix scripts to oxlint. |
| packages/types/.oxlintrc.json | Adds Oxlint config (env + rule override). |
| packages/types/.eslintrc.js | Removes ESLint config for types package. |
| packages/vercel-edge/package.json | Switches lint/fix scripts to oxlint. |
| packages/vercel-edge/.oxlintrc.json | Adds Oxlint config (env + sdk rule + overrides). |
| packages/vercel-edge/.eslintrc.js | Removes ESLint config for vercel-edge package. |
| packages/vue/package.json | Switches lint/fix scripts to oxlint. |
| packages/vue/.oxlintrc.json | Adds Oxlint config (browser env). |
| packages/vue/.eslintrc.js | Removes ESLint config for vue package. |
| packages/vue/.eslintignore | Removes ESLint ignore for vue package. |
| packages/wasm/package.json | Switches lint/fix scripts to oxlint. |
| packages/wasm/.oxlintrc.json | Adds Oxlint config for wasm package. |
| packages/wasm/.eslintrc.js | Removes ESLint config for wasm package. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Autofix Details
Bugbot Autofix prepared a fix for the issue found in the latest run.
- ✅ Fixed: Root fix command scope narrower than lint command
- Changed fix:oxlint to target '.' instead of 'packages/' to match lint:oxlint scope and ensure auto-fixes apply to all directories including dev-packages/.
Or push these changes by commenting:
@cursor push f67cfc995b
Preview (f67cfc995b)
diff --git a/package.json b/package.json
--- a/package.json
+++ b/package.json
@@ -22,7 +22,7 @@
"clean:watchman": "watchman watch-del \".\"",
"clean:all": "run-s clean:build clean:tarballs clean:caches clean:deps clean:watchman",
"fix": "run-s fix:oxfmt fix:oxlint",
- "fix:oxlint": "oxlint packages/ --fix",
+ "fix:oxlint": "oxlint . --fix",
"fix:oxfmt": "oxfmt . --write",
"format:check": "oxfmt . --check",
"format": "oxfmt . --write",| "fix": "run-s fix:oxfmt fix:eslint", | ||
| "fix:eslint": "nx run-many -t fix", | ||
| "fix": "run-s fix:oxfmt fix:oxlint", | ||
| "fix:oxlint": "oxlint . --fix", |
There was a problem hiding this comment.
It's the same with lint:oxfmt but I think we can name the script agnostically like fix:lint as the underlying method of linting should be irrelevant. But this is just a minor comment - this only popped up because now we have a git diff from eslint to oxlint.
There was a problem hiding this comment.
I agree, I wanted to change our commands scheme here to make it more intuitive.
I'm thinking lint, format, format:check and lint:fix, but I will do that in a follow up PR.
chargome
left a comment
There was a problem hiding this comment.
Can you also check the agents.md etc for any mentions of eslint and change that if applicable 🙏
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| "fix": "run-s fix:oxfmt fix:eslint", | ||
| "fix:eslint": "nx run-many -t fix", | ||
| "fix": "run-s fix:oxfmt fix:oxlint", | ||
| "fix:oxlint": "oxlint . --fix", |
There was a problem hiding this comment.
Fix command missing --type-aware flag unlike lint
Medium Severity
The fix:oxlint command runs oxlint . --fix without --type-aware, while lint:oxlint runs with --type-aware (and the OXLINT_TSGOLINT_DANGEROUSLY_SUPPRESS_PROGRAM_DIAGNOSTICS env var). This means type-aware rules like typescript/no-floating-promises, typescript/consistent-type-imports, and typescript/no-unnecessary-type-assertion are checked during yarn lint (and in CI) but are never auto-fixed by yarn fix. Developers running yarn fix locally will get a false sense of a clean state, only to have CI fail on type-aware rule violations they can't auto-fix.
Additional Locations (1)
| /* oxlint-disable sdk/no-unsafe-random-apis */ | ||
| // Polyfill for Node.js perf_hooks module in edge runtime | ||
| // This mirrors the polyfill from packages/vercel-edge/rollup.npm.config.mjs | ||
| const __sentry__timeOrigin = Date.now(); |
There was a problem hiding this comment.
Bug: The Oxlint configuration is missing the jsPlugins setting, causing custom lint rules like sdk/no-unsafe-random-apis to be silently ignored despite updated disable comments.
Severity: HIGH
Suggested Fix
Update the root .oxlintrc.json file to include the jsPlugins configuration. This will properly load the custom @sentry-internal/eslint-plugin-sdk plugin, ensuring that its rules are recognized and enforced by Oxlint across the project.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.
Location: packages/nextjs/src/config/polyfills/perf_hooks.js#L1-L4
Potential issue: The migration to Oxlint is incomplete as the configuration is missing
the `jsPlugins` setting required to load the custom `@sentry-internal/eslint-plugin-sdk`
plugin. Consequently, custom lint rules such as `sdk/no-unsafe-random-apis` and
`sdk/no-regexp-constructor` are not being enforced. Although the disable comments were
updated to the new `oxlint-disable-next-line` syntax, Oxlint ignores them because it is
unaware of these rules. This could allow developers to introduce code that breaks
caching in React Server Components or creates ReDoS vulnerabilities, as the linter will
no longer flag these issues.



Replaces eslint with oxlint, we had an outdated Eslint 8.x setup anyways and we needed to either upgrade it or move to something else. Oxlint brings so much speed gains given how slow linting is, and almost no one is running it locally project wide because of how slow it is.
The changes can look like a lot but most of it is just:
.eslintrc.jsto.oxlintrc.jsonI downgraded a few rules, but they will be cleaned up in a follow up PR in
Benchmarks
Overall
Note that:
Lerna adds a considerable overhead that eats a lot of the gains we can potentially get.We removed Lerna and also we will just lint the entire project rather than go package by package.CI time is hogged by building types stepNot relevant anymore, typeaware mode works wonderfully after oxc-project/tsgolint#739 was merged.SDK Packages
corebrowsernodenode-corenextjssveltekitopentelemetrycloudflareremixreactfeedbackreplay-internalvuesvelteangularDev Packages
browser-integration-testsnode-integration-testsnode-core-integration-testse2e-testscloudflare-integration-teststest-utilsrollup-utilsbundler-testscloses #19222