chore(husky): pre-push leve por padrão (5s vs 5min)#111
Conversation
Antes: pre-push rodava 'npm run typecheck && npm run lint:baseline'. Após PR #110, npm run typecheck virou o gate completo de TS (tsc -p tsconfig.app.json --noEmit) que demora 4-5min por causa dos 1620 arquivos do app. Pré-push de 5min atrapalha DX (impossível pushar rápido). Solução: - Por padrão: hook roda apenas `npm run lint:baseline` (~5s) - Pra rodar tudo (typecheck + eslint): `HUSKY_FULL=1 git push` Justificativa: - O CI já roda typecheck completo em todo PR - Hook local é safety net pra erros óbvios; ESLint baseline cobre 1547 problemas conhecidos - Devs que querem garantir antes do push podem usar HUSKY_FULL=1 - Para casos extremos (--no-verify) continua sendo escape hatch Risk: 🟢 zero. Se algo escapar do hook leve, CI pega. Test plan: - [x] npm run lint:baseline passa (1547=1547) - [x] Hook funciona com HUSKY_FULL=0 (default) → roda só lint:baseline - [ ] Hook funciona com HUSKY_FULL=1 → roda typecheck + lint:baseline - [ ] CI verde
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughO hook Git AlteraçõesConfiguração Condicional do Hook Pre-Push
Pontos de Revisão Críticos🔍 Segurança & Performance:
🔍 Funcionalidade:
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutos 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Pull request overview
Ajusta o hook pre-push do Husky para ser “leve” por padrão, executando apenas o gate do ESLint baseline, com opção opt-in para rodar também o typecheck via variável de ambiente.
Changes:
- Troca o
pre-pushdetypecheck + lint:baselineparalint:baselinepor padrão. - Adiciona flag
HUSKY_FULL=1para executartypecheck + lint:baselinequando desejado. - Documenta a motivação e o modo de uso diretamente no hook.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # Motivação: o gate de typecheck completo (npm run typecheck) demora 4-5min | ||
| # por causa dos 1620 arquivos do app. Isso atrapalha DX em pushes frequentes. | ||
| # O CI já roda o typecheck completo em todo PR — não precisa duplicar localmente. | ||
|
|
||
| if [ "${HUSKY_FULL:-0}" = "1" ]; then | ||
| npm run typecheck && npm run lint:baseline |
Plano
Tornar o pre-push hook leve por padrão (5s) com opção full opt-in via env var.
Antes vs depois
*Após PR #110 que tornou typecheck cobrir os 1620 arquivos do app.
Por que
PR #110 conserta o bug crítico do typecheck (cobria 1 arquivo, agora cobre 1620). Mas isso fez o pre-push hook pular de instantâneo pra ~5min. Ruim pra DX (impossível pushar rápido).
Solução
CI continua rodando typecheck completo em todo PR — não há risco de regressão escapar.
Risk
🟢 Zero. Hook local é safety net pra erros óbvios; o gate principal é o CI.
Test plan
npm run lint:baselinepassa (1547=1547)Sequência de merge sugerida
Summary by CodeRabbit
Chores