chore(guardrails): 4 melhorias kaizen pós-auditoria Lovable#462
Conversation
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>
|
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. |
|
Warning Review limit reached
More reviews will be available in 35 minutes and 40 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
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>
Resumo
Implementa as 4 melhorias kaizen sugeridas no PR #460 para fechar o ciclo de auditoria da janela Lovable 26/05 com proteções de processo que previnem recorrência dos 3 padrões identificados (bug base64, refactor mascarado, migrations problemáticas).
Mudanças
1️⃣ Workflow
detect-base64-content.yml(NOVO)CI check que detecta arquivos texto acidentalmente commitados em base64. Heurística: linha ≥ 200 chars com alfabeto
[A-Za-z0-9+/=]puro em extensões.ts,.tsx,.js,.jsx,.json,.sql,.sh,.md,.yaml,.yml,.html,.css,.env,.toml,.conf,.rc.pull_request→main(revisão obrigatória)push→main(defesa contra commits que pulam PR)exit FOUND) e emite::error file=…,line=…::para o GitHub annotationsSelf-tested antes do commit:
webhook-inbound/index.ts(15KB),vercel.json,.coderabbit.yamle o próprio workflowEm um mundo de constantes…)Cobre regressão dos PRs #319 (lint-untyped-from.sh), #457 (supabase-untyped.ts) e #459 (vercel.json + BUG_REPORT). 3 ocorrências do mesmo padrão em ~7 dias — agora bloqueado.
2️⃣
.coderabbit.yaml(UPDATE)Adicionados 3 alertas em
path_instructions:supabase/functions/**/*.tssupabase/migrations/**/*.sql**/*.{json,html,toml,yaml,yml,sh,sql,ts,tsx,js,jsx,md,css}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 (warning, não fail) durante roll-out — assim que o admin marcar
VercelouVercel Preview Commentscomo required, o warning some.Background: 26/05/2026, 13:06–14:41 UTC — 20 deploys Vercel ficaram ERROR enquanto 19 commits adicionais entravam em main sem aviso porque o check do Vercel não bloqueava merge. Esta verificação documenta o gap.
4️⃣
docs/RLS_REWRITE_PLAN.md(NOVO) + nota na migration 141234Substitui criar issue ephemeral por documento técnico versionado explicando:
user_roles,order_items,admin_audit_log(consultado direto do banco em 26/05)A migration 141234 agora aponta para este doc.
Validações
python3 -c "import yaml; yaml.safe_load(...)"nos 3 YAMLSELECT 1 WHERE FALSE) — preserva checksum da sequênciaLimitações conhecidas
EXCLUDE_REGEXno próprio workflow (instrução no$GITHUB_STEP_SUMMARY).🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
Summary by cubic
Adds four process guardrails after the Lovable audit: a CI check for accidental base64 files, stricter review prompts, verification that Vercel checks are required, and a documented plan for the paused RLS rewrite (migration 141234 stays NO-OP). This prevents silent build/deploy failures and avoids hidden drift in edge functions and migrations (follow-up to PR #460).
New Features
/.github/workflows/detect-base64-content.yml: fails CI when a text file has a long base64-only line; runs on PRs and pushes; ignores lock/minified/bundled files; adds GitHub annotations./.coderabbit.yaml: adds DRIFT alerts forsupabase/functions/**/*.tsandsupabase/migrations/**/*.sql, plus a base64 review reminder./.github/workflows/required-checks-guard.yml: warns if no Vercel/deploy check is required onmain(non-blocking during rollout).Migration
docs/RLS_REWRITE_PLAN.mdexplaining why migration 141234 is NO-OP, with a policy snapshot and a 7-step checklist for any future rewrite.20260526141234_31aaa458-1bc1-476f-bca6-8152907d7a99.sqlto reference the doc while preserving the checksum.Written for commit 8450c09. Summary will update on new commits. Review in cubic