fix(infra): decodifica vercel.json + BUG_REPORT base64 — desbloqueia deploys Vercel#459
Conversation
…Vercel O Lovable criou em 26/05 13:06 UTC (commit a50d84d) dois arquivos codificados em base64 ao invés do conteúdo real: - vercel.json (45 linhas, JSON com rewrites/headers/CSP) - docs/BUG_REPORT_20260526.md (176 linhas, relatório auditoria) Consequência: Vercel não conseguia parsear vercel.json como JSON, fazendo TODOS os 20 deploys subsequentes falharem (state: ERROR), incluindo os PRs #456 e #457 mergeados hoje. Padrão idêntico ao bug corrigido no PR #457 (supabase-untyped.ts e lint-untyped-from.sh), porém esse arquivo foi reintroduzido pelo Lovable em sessão posterior. Fix: decodifica de base64 para texto plano. JSON validado, build local passou em 2m29s, sem regressões. Co-authored-by: Claude <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
WalkthroughDuas normalizações críticas: relatório de auditoria de 17 bugs passa de conteúdo corrompido para Markdown legível com verificações detalhadas e checklist de merge; configuração Vercel reformatada para JSON valido com rewrite SPA e policies de segurança (HSTS, CSP, headers de proteção contra ataques). ChangesNormalização de Configuração e Documentação
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Implementa as 4 melhorias sugeridas no PR #460 para prevenir recorrência dos 3 padrões problemáticos identificados em 26/05. 1. .github/workflows/detect-base64-content.yml (NOVO) CI check que detecta arquivos texto acidentalmente commitados em base64 (linha >=200 chars com alfabeto [A-Za-z0-9+/=]). Roda em pull_request + push para main. Falha o check se achar. Self-tested: 0 false positives no repo atual, true positive em payload sintético, true negative em prosa longa. Cobre regressão dos PRs #319, #457, #459. 2. .coderabbit.yaml (UPDATE) Adiciona 3 alertas: - ALERTA DE DRIFT em supabase/functions/**/*.ts: flag PRs com título/commit "Fast Visual Edit"/"visual"/"stepper" tocando edge functions — caso PR #460. - ALERTA DE DRIFT em supabase/migrations/**/*.sql: idem para migrations, com checks específicos (DROP POLICY massa, ADD COLUMN no-op, SECURITY DEFINER sem REVOKE). - Detecção base64 em arquivos texto como reforço do workflow. 3. .github/workflows/required-checks-guard.yml (UPDATE) Estende verificação existente para também checar que algum check do Vercel/deploy está como required em main. Tolerante: emite warning ao invés de fail enquanto config é ajustada. Background: 26/05/2026 — 20 deploys ERROR não impediram 19 commits entrarem em main. 4. docs/RLS_REWRITE_PLAN.md (NOVO) + nota na migration 141234 Documento técnico explicando por que o RLS rewrite (migration 141234) foi convertido em NO-OP, com snapshot completo das policies atuais e checklist do que deve ser feito se alguém decidir retomar o rewrite no futuro. Substitui criar issue. Validações: ✅ yamllint nos 3 arquivos YAML ✅ Detector base64: 0 FP em supabase/functions/webhook-inbound, vercel.json, .coderabbit.yaml e ele mesmo ✅ Detector base64: TP em payload sintético >200 chars ✅ Detector base64: TN em prosa em PT-BR com acentos/espaços Co-authored-by: Claude <noreply@anthropic.com>
Implementa as 4 melhorias sugeridas no PR #460 para prevenir recorrência dos 3 padrões problemáticos identificados em 26/05. 1. .github/workflows/detect-base64-content.yml (NOVO) CI check que detecta arquivos texto acidentalmente commitados em base64 (linha >=200 chars com alfabeto [A-Za-z0-9+/=]). Roda em pull_request + push para main. Falha o check se achar. Self-tested: 0 false positives no repo atual, true positive em payload sintético, true negative em prosa longa. Cobre regressão dos PRs #319, #457, #459. 2. .coderabbit.yaml (UPDATE) Adiciona 3 alertas: - ALERTA DE DRIFT em supabase/functions/**/*.ts: flag PRs com título/commit "Fast Visual Edit"/"visual"/"stepper" tocando edge functions — caso PR #460. - ALERTA DE DRIFT em supabase/migrations/**/*.sql: idem para migrations, com checks específicos (DROP POLICY massa, ADD COLUMN no-op, SECURITY DEFINER sem REVOKE). - Detecção base64 em arquivos texto como reforço do workflow. 3. .github/workflows/required-checks-guard.yml (UPDATE) Estende verificação existente para também checar que algum check do Vercel/deploy está como required em main. Tolerante: emite warning ao invés de fail enquanto config é ajustada. Background: 26/05/2026 — 20 deploys ERROR não impediram 19 commits entrarem em main. 4. docs/RLS_REWRITE_PLAN.md (NOVO) + nota na migration 141234 Documento técnico explicando por que o RLS rewrite (migration 141234) foi convertido em NO-OP, com snapshot completo das policies atuais e checklist do que deve ser feito se alguém decidir retomar o rewrite no futuro. Substitui criar issue. Validações: ✅ yamllint nos 3 arquivos YAML ✅ Detector base64: 0 FP em supabase/functions/webhook-inbound, vercel.json, .coderabbit.yaml e ele mesmo ✅ Detector base64: TP em payload sintético >200 chars ✅ Detector base64: TN em prosa em PT-BR com acentos/espaços Co-authored-by: Claude <noreply@anthropic.com>
O workflow detect-base64-content.yml (introduzido no PR #462) detectou .env.example salvo como uma única linha de 5824 chars de alfabeto base64 puro. Decodificando: 99 linhas de configuração legítima do FRONTEND (VITE_SUPABASE_URL, VITE_SENTRY_DSN, feature flags, etc). Mesmo padrão dos PRs #319, #457, #459. Quarta ocorrência em ~14 dias. Co-authored-by: Claude <noreply@anthropic.com>
#467) O workflow detect-base64-content.yml (introduzido no PR #462) detectou .env.example salvo como uma única linha de 5824 chars de alfabeto base64 puro. Decodificando: 99 linhas de configuração legítima do FRONTEND (VITE_SUPABASE_URL, VITE_SENTRY_DSN, feature flags, etc). Mesmo padrão dos PRs #319, #457, #459. Quarta ocorrência em ~14 dias. Co-authored-by: Claude <noreply@anthropic.com>
🚨 Fix Urgente — Desbloqueia Deploys Vercel
Contexto
Auditoria das mudanças do Lovable de hoje (26/05/2026) identificou que o commit
a50d84dcriouvercel.jsonedocs/BUG_REPORT_20260526.mdem base64 ao invés do conteúdo real.Impacto
🔴 TODOS os 20 últimos deploys do Vercel falharam (
state: ERROR), incluindo:O Vercel não conseguia parsear o
vercel.jsoncomo JSON válido.Causa raiz
Mesmo padrão do PR #319 (
supabase-untyped.tselint-untyped-from.sh), corrigido no PR #457 hoje pela manhã. Tarde da mesma janela, o Lovable reintroduziu o problema em outro arquivo.Validação
base64 -d vercel.json | python3 -c "import json; json.load(sys.stdin)"→ JSON válidonpm run buildpassou em 2m29sApós merge
Vercel deve auto-deployar e o
statevoltar paraREADYno próximo build.Pendências separadas (NÃO neste PR — exigem revisão consciente)
webhook-inbound/index.ts— Lovable removeu lógica de versionamento de contrato v1/v2 (allowlist, headers Deprecation/Sunset, response 426). É REGRESSÃO funcional, deve ser revisada antes de redeploy da edge function.3 migrations não aplicadas (
20260526141234,20260526141615,20260526141659):20260526141234fazDROP POLICYem todas as policies deuser_roles,order_items,admin_audit_loge recria com lógica diferente — perigoso para produção.can_view_all_sales(auth.uid())mas a função existente tem 0 args → migration falharia.idempotency_keyé aditivo (seguro), mas só faz sentido se o webhook-inbound novo for aceito.SUPABASE_CONNECTION.md— arquivo redundante criado pelo Lovable, sem prejuízo (mantém).Sugestão: PRs separados para tratar (1) e (2) com revisão humana.
🤖 Generated with Claude Code
Summary by cubic
Decodes
vercel.jsonanddocs/BUG_REPORT_20260526.mdfrom base64 to plain text to restore a valid Vercel config and unblock deploys. Vercel can now parsevercel.json, resolving the recent deploy failures.vercel.jsonJSON-parse OK; localnpm run buildpassed; no other base64 files found.Written for commit 2122511. Summary will update on new commits. Review in cubic
Summary by CodeRabbit
Release Notes
Documentation
Chores