fix(observability): esbuild preservar console.warn/error em prod (Onda 4)#191
Conversation
…a 4) Bug B-1.1 da auditoria de 10/mai. O vite.config.ts tinha: drop: mode === 'production' ? ['console', 'debugger'] : [] que removia TODOS os console.* em prod, contradizendo o comentário que prometia preservar warn/error. Fix: usar `pure` (lista específica) em vez de `drop` (atalho que remove o objeto console inteiro): pure: ['console.log', 'console.debug', 'console.info'] drop: ['debugger'] Validação empírica via esbuild standalone: - Config antiga: 0 console.* sobreviventes - Config nova: console.error + console.warn preservados Próxima onda (5): ligar Sentry init para capturar esses errors. Risco: baixo. 1 arquivo lógico, 5 linhas de config. Bloqueador: B-1.1 (parcial — B-1.2 vem na Onda 5). Detalhes: docs/hardening/ONDA-4-ESBUILD-PRESERVE-WARN-ERROR.md
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
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 (2)
WalkthroughPR preserva ChangesConsole Hardening – Preserve Diagnostics in Production
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Pull request overview
Fixes a bug in vite.config.ts where drop: ['console'] was stripping all console methods in production despite the comment promising to preserve warn/error. The fix uses esbuild's pure option to drop only console.log/debug/info, while drop is reduced to ['debugger'], preserving console.warn and console.error for production diagnostics.
Changes:
- Replace
drop: ['console', 'debugger']withpure: ['console.log', 'console.debug', 'console.info']+drop: ['debugger']in production esbuild config. - Add hardening doc explaining the bug, fix, empirical validation, and next steps (Onda 5 / Sentry init).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| vite.config.ts | Switch from drop: ['console'] to pure list so warn/error survive minification in prod. |
| docs/hardening/ONDA-4-ESBUILD-PRESERVE-WARN-ERROR.md | New hardening note documenting B-1.1 fix, validation, and rollback plan. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Onda 4 do hardening pré-prod. Bug B-1.1 da auditoria de 10/mai.
O vite.config.ts tinha:
drop: mode === 'production' ? ['console', 'debugger'] : []
drop: ['console']remove TODOS os métodos de console em prod,incluindo error/warn, contradizendo o comentário do código que
prometia preservar warn/error pra diagnóstico.
Resultado antes do fix: 13+ chamadas a logger.error() viram fumaça
em prod. Quando algo quebra, vendedor vê tela branca e o time
técnico não tem como investigar.
Fix: usar
pure(lista específica de métodos puramente side-effect-free)em vez de
drop(atalho que mata o objeto console inteiro):pure: ['console.log', 'console.debug', 'console.info']
drop: ['debugger']
Validação empírica via esbuild standalone (rodado no VPS):
Config antiga: 0 console.* sobreviventes no bundle
Config nova: console.error + console.warn preservados ✅
Próxima onda (5, B-1.2): ligar Sentry init pra capturar esses errors.
Risco: baixo. 1 arquivo lógico, 5 linhas de config.
Detalhes: docs/hardening/ONDA-4-ESBUILD-PRESERVE-WARN-ERROR.md
Summary by cubic
Preserva console.warn/error em produção ao ajustar a config do
esbuildnovite.config.ts. Corrige o bug B-1.1 da auditoria, que removia logs de erro do bundle em prod.drop: ['console']porpure: ['console.log','console.debug','console.info']e mantémdrop: ['debugger']apenas em produção.console.warneconsole.errorpermaneçam no bundle;logger.error()deixa de ser removido.docs/hardening/ONDA-4-ESBUILD-PRESERVE-WARN-ERROR.md.Written for commit db73dc8. Summary will update on new commits.
Summary by CodeRabbit
Bug Fixes
Documentation