Skip to content

chore(lint): adota o oxlint e zera erros e avisos [skip release] - #45

Merged
paulocarinhena merged 1 commit into
mainfrom
chore/oxlint
Nov 14, 2026
Merged

paulocarinhena merged 1 commit into
mainfrom
chore/oxlint

Conversation

@paulocarinhena

Copy link
Copy Markdown
Contributor

Resumo

  • oxlint 1.93 (.oxlintrc.json) com plugins typescript, react, jsx-a11y, import e unicorn; script npm run lint.
  • CI: passo Lint no gitweb-build.yml — erros bloqueiam, avisos aparecem no log.
  • Resultado: 0 erros e 0 avisos (a primeira rodada tinha 15 erros e 121 avisos, fora 3.129 avisos de react-in-jsx-scope, regra que não se aplica ao React 19).

Correções de verdade

  • Imports e variáveis sem uso; regex ^ → startsWith; spreads desnecessários; erros relançados com { cause }.
  • Diálogos (13): o fundo só fecha quando o clique cai nele mesmo; o painel não precisa mais de stopPropagation.
  • Acessibilidade: separadores de menu como <hr>; menus e tablist com tabIndex={-1}; menu de contexto de conflito no botão focável (abre pelo teclado); ChatAvatar com prop speaker em vez de role.
  • Hooks: refs de "valor mais recente" gravadas em useLayoutEffect; paginação de Histórico e PRs calculada no render; Combobox e DiffViewer reiniciam no render; AiSettingsForm depende só do provedor ativo; RepoInsights mede a largura no hover; dependência faltando em Alterações.

Exceções justificadas

Padrões intencionais ganharam oxlint-disable-next-line com o motivo na linha: carregamentos via IPC que mostram "carregando" antes, reset de formulário ao abrir diálogo, medição de DOM, gráfico explorável por teclado, autofocus do campo de nova branch, concatenações que despistam scanners de segredos. As regras exclusivas do React Compiler ficaram desligadas (o projeto não o usa).

Verificação

npm run lint (0/0), npm run typecheck, npm test (337) e npm run build passando.

Segundo de três PRs separados por tipo. [skip release]: o release sai no merge do PR de interface.

🤖 Generated with Claude Code

- oxlint 1.93 com plugins typescript, react, jsx-a11y, import e unicorn
  (.oxlintrc.json); script `npm run lint`; passo Lint no gitweb-build.yml
  (erros bloqueiam, avisos ficam no log).
- Erros: imports/variáveis sem uso, regex -> startsWith, spreads inúteis;
  exceções intencionais (caracteres de controle, new Array pré-alocado)
  anotadas com o motivo.
- Diálogos: o fundo só fecha quando o clique cai nele mesmo, sem
  stopPropagation no painel.
- Acessibilidade: separadores de menu como <hr>, menus e tablist com
  tabIndex={-1}, menu de contexto de conflito no botão focável, ChatAvatar
  com prop speaker em vez de role.
- Hooks: refs de valor mais recente gravadas em useLayoutEffect; paginação
  de Histórico e PRs sem efeito; Combobox e DiffViewer reiniciam no render;
  AiSettingsForm depende só do provedor; RepoInsights mede no hover.
- Erros relançados levam { cause }; imagem usa addEventListener.
- Padrões intencionais (IPC com "carregando", reset ao abrir diálogo,
  medição de DOM, autofocus, concatenações anti-scanner) com exceção
  justificada na linha. Regras exclusivas do React Compiler desligadas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@paulocarinhena
paulocarinhena merged commit ca67588 into main Nov 14, 2026
7 checks passed
@paulocarinhena
paulocarinhena deleted the chore/oxlint branch November 14, 2026 20:32
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