Skip to content

fix(observability): esbuild preservar console.warn/error em prod (Onda 4)#191

Merged
adm01-debug merged 1 commit into
mainfrom
cleanup/onda-4-esbuild-preserve-warn-error
May 14, 2026
Merged

fix(observability): esbuild preservar console.warn/error em prod (Onda 4)#191
adm01-debug merged 1 commit into
mainfrom
cleanup/onda-4-esbuild-preserve-warn-error

Conversation

@adm01-debug
Copy link
Copy Markdown
Owner

@adm01-debug adm01-debug commented May 14, 2026

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 esbuild no vite.config.ts. Corrige o bug B-1.1 da auditoria, que removia logs de erro do bundle em prod.

  • Bug Fixes
    • Substitui drop: ['console'] por pure: ['console.log','console.debug','console.info'] e mantém drop: ['debugger'] apenas em produção.
    • Garante que console.warn e console.error permaneçam no bundle; logger.error() deixa de ser removido.
    • Adiciona documentação de validação e contexto em docs/hardening/ONDA-4-ESBUILD-PRESERVE-WARN-ERROR.md.

Written for commit db73dc8. Summary will update on new commits.

Summary by CodeRabbit

  • Bug Fixes

    • Corrigido comportamento de console em produção para preservar mensagens de aviso e erro, removendo apenas logs de debug.
  • Documentation

    • Adicionada documentação sobre configuração otimizada de build.

Review Change Stack

…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
Copilot AI review requested due to automatic review settings May 14, 2026 14:36
@vercel
Copy link
Copy Markdown

vercel Bot commented May 14, 2026

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

Project Deployment Actions Updated (UTC)
promo-gifts Ready Ready Preview, Comment May 14, 2026 2:36pm

@supabase
Copy link
Copy Markdown

supabase Bot commented May 14, 2026

This pull request has been ignored for the connected project doufsxqlfjyuvxuezpln because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 14, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8a91608e-6580-4939-9332-77e326f47156

📥 Commits

Reviewing files that changed from the base of the PR and between ffe454d and db73dc8.

📒 Files selected for processing (2)
  • docs/hardening/ONDA-4-ESBUILD-PRESERVE-WARN-ERROR.md
  • vite.config.ts

Walkthrough

PR preserva console.warn e console.error em produção, mudando a estratégia de remoção de console no esbuild: de drop: ['console'] (removia tudo) para pure drops seletivos apenas de log, debug e info. Inclui documentação com validação e próximos passos.

Changes

Console Hardening – Preserve Diagnostics in Production

Layer / File(s) Sumário
esbuild configuration and hardening documentation
vite.config.ts, docs/hardening/ONDA-4-ESBUILD-PRESERVE-WARN-ERROR.md
Substitui drop: ['console'] por strategy seletiva: pure remove apenas console.log/debug/info em produção, mantém warn/error intactos para logs de diagnóstico. Documentação descreve a falha anterior, validação empírica com test build, tabela de métodos preservados, impacto no bundle e roadmap para integração Sentry (Onda 5).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed O título descreve com precisão a mudança principal: a correção da configuração de esbuild para preservar console.warn/error em produção, identificando claramente o contexto (Onda 4) e o arquivo afetado.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cleanup/onda-4-esbuild-preserve-warn-error

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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'] with pure: ['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.

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 2 files

@adm01-debug adm01-debug merged commit db8c7e3 into main May 14, 2026
26 of 29 checks passed
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