Skip to content

fix(ci): downgrade eslint para v9 até eslint-plugin-react suportar v10#2

Merged
kayroalexandre merged 1 commit into
mainfrom
feature/kiro-fix-eslint-react-plugin
May 10, 2026
Merged

fix(ci): downgrade eslint para v9 até eslint-plugin-react suportar v10#2
kayroalexandre merged 1 commit into
mainfrom
feature/kiro-fix-eslint-react-plugin

Conversation

@kayroalexandre
Copy link
Copy Markdown
Owner

Problema

ESLint v10 (disponível no projeto como 10.3.0) removeu APIs do RuleContext (getFilename, getScope, getSourceCode) que o eslint-plugin-react@7.37.5 (peer dependency de eslint-config-next) ainda usa internamente. Resultado:

TypeError: Error while loading rule 'react/display-name': contextOrFilename.getFilename is not a function
    at resolveBasedir (node_modules/eslint-plugin-react/lib/util/version.js:31:100)
    at detectReactVersion (node_modules/eslint-plugin-react/lib/util/version.js:85:19)

Por que não dá para pinar o plugin

Nenhuma release estável do eslint-plugin-react é compatível com ESLint 10. PRs de correção upstream abertos mas ainda não mergeados:

Issue de referência: jsx-eslint/eslint-plugin-react#3977

Solução

Fix cirúrgico em 3 arquivos:

package.json

-    "eslint": "10.3.0",
+    "eslint": "^9.39.4",

9.39.4 é o par estável que eslint-config-next suporta (mesma linha que o ecosystem — remeda, DIM, Trezor Suite — está usando enquanto aguarda upstream).

eslint.config.mjs

Adiciona ignores para diretórios de skills de terceiros:

  globalIgnores([
    ".next/**",
    "out/**",
    "build/**",
    "next-env.d.ts",
+   ".agents/**",
+   ".kiro/skills/**",
  ])

Esses diretórios contêm templates de skills externas, não código do projeto.

bun.lock

Regenerado pelo bun add -d eslint@^9.39.4.

Validação

  • bunx eslint . → 0 errors, 0 warnings
  • bunx tsc --noEmit → 0 errors
  • bun run build → 6 rotas geradas (/, /_not-found, 2× /api/draft-mode/*, /studio/[[...tool]])

Quando reverter

Monitorar a issue #3977. Quando eslint-plugin-react v8 (ou v7 com fix retroativo) shipar compat com ESLint 10, atualizar o pacote e subir eslint de volta para ^10.

O ESLint v10.3.0 removeu APIs do RuleContext que o eslint-plugin-react@7.37.5 ainda usa. Sem versao estavel do plugin compativel com v10 ate upstream shipar fixes (PRs #3979 e #4006 abertos).

Solucao: fixar eslint em ^9.39.4 (mesma linha que eslint-config-next usa como peer). Quando eslint-plugin-react@8 sair com suporte a v10, podemos voltar.

Tambem adiciona .agents/** e .kiro/skills/** aos ignores do lint (sao diretorios de skills externos, nao codigo do projeto).

Validacao:

- bunx eslint .: 0 errors 0 warnings

- bunx tsc --noEmit: ok

- bun run build: ok (6 rotas geradas)

Refs: jsx-eslint/eslint-plugin-react#3977
Copilot AI review requested due to automatic review settings May 10, 2026 22:26
@vercel
Copy link
Copy Markdown

vercel Bot commented May 10, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
kayrogomes Ready Ready Preview, Comment May 10, 2026 10:26pm

@kayroalexandre kayroalexandre merged commit 5eeef8e into main May 10, 2026
5 of 7 checks passed
@kayroalexandre kayroalexandre deleted the feature/kiro-fix-eslint-react-plugin branch May 10, 2026 22:28
@kayroalexandre kayroalexandre review requested due to automatic review settings May 10, 2026 22:48
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.

2 participants