Skip to content

fix(onda-9.3): endereçar feedback Copilot/Codex pós-merge (4 issues P2)#128

Merged
adm01-debug merged 1 commit into
mainfrom
chore/onda-9.3-coderabbit-followup
May 10, 2026
Merged

fix(onda-9.3): endereçar feedback Copilot/Codex pós-merge (4 issues P2)#128
adm01-debug merged 1 commit into
mainfrom
chore/onda-9.3-coderabbit-followup

Conversation

@adm01-debug
Copy link
Copy Markdown
Owner

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

Contexto

PR follow-up da Onda 9 (Vault Recovery). Após merge dos PRs #124 e #125 e auditoria minuciosa, descobri 4 review threads abertas de GitHub Copilot Reviewer e ChatGPT Codex Connector que CodeRabbit não cobriu (focou só nos issues que ele mesmo levantou).

Esse PR endereça as 4 críticas reais (todas P2/Minor mas válidas) num único commit pequeno.

Issues endereçadas

🟠 Issue 1: Migration sem CREATE EXTENSION pg_cron (Copilot, P2)

Local: supabase/migrations/20260510131942_*.sql

A migration usa cron.unschedule/schedule mas não garante CREATE EXTENSION IF NOT EXISTS pg_cron. Precedente do projeto (3 migrations seguem o pattern defensivo):

  • supabase/migrations/20260319134320_*.sql
  • supabase/migrations/20260409013312_*.sql
  • supabase/migrations/20260423174952_*.sql

Fix: adicionado CREATE EXTENSION IF NOT EXISTS pg_cron; em seção própria antes do bloco "6) Cron jobs".

🟠 Issue 2: Vazamento parcial de credencial 429683... (Copilot, P2)

Local: docs/handoff-2026-05-09-onda-9-vault-recovery.md L228

A linha mostrava o prefixo da evolution_api_key (429683...). Mesmo parcial, pode ajudar em enumeração. CodeRabbit pediu sanitização em outras linhas (2/250/257/264/307/412/418) mas não pegou a 228.

Fix: substituído por <REDACTED-evolution-api-key-prefix>.

🟠 Issue 3: Referência a arquivo inexistente docker-compose-supabase.yml (Copilot, P2)

Local: docs/runbooks/SUPABASE-VOLUMES-DOS-AND-DONTS.md L130 + docs/handoff-*.md L272, L390

O runbook recomendava docker stack deploy -c docker-compose-supabase.yml, mas esse arquivo não existe no repo. O nome real do compose Supabase nesta VPS é /root/supabase.yaml (host filesystem), conforme docs/DEPLOYMENT.md.

Fix: 3 ocorrências corrigidas pra apontar a /root/supabase.yaml (com nota "(na VPS)").

🟡 Issue 4: Inconsistência de paths internos /workspace/notes/

Local: docs/runbooks/SUPABASE-VOLUMES-DOS-AND-DONTS.md L180 + supabase/migrations/20260510131942_*.sql L22

CodeRabbit pediu sanitização desse padrão no handoff (PR #125, todas resolvidas), mas runbook L180 e migration L22 ainda tinham /workspace/notes/. Achado próprio durante a auditoria — inconsistência clara.

Fix:

  • Runbook L180: <internal-backup-storage>/supabase_db_config_*.tar.gz
  • Migration L22: -- Ref: internal incident record (Onda 9)

Validação em produção

Migration v3 aplicada 2x como idempotency test (output verbatim):

NOTICE:  relation "vault_healthcheck_log" already exists, skipping
NOTICE:  relation "idx_vault_healthcheck_log_checked_at" already exists, skipping
COMMENT
CREATE FUNCTION (x3, REPLACE)
COMMENT (x3)
REVOKE (x3) + GRANT (x3) ← idempotente
CREATE VIEW (REPLACE)
NOTICE:  extension "pg_cron" already exists, skipping  ← novo, no-op
CREATE EXTENSION
DO; schedule | 51, 52  ← cron reagendado
NOTICE:  Onda 9.1 smoke test: {"ok": 24, "fail": 0, "defer": 7, "status": "healthy"}

Banco produção continua healthy. ACL hardening do PR #124 preservada (PUBLIC e anon revogados).

Auditoria final (9/9 critérios)

# Critério Resultado
1 Migration tem CREATE EXTENSION pg_cron ✅ 1 ocorrência
2 Migration sem /workspace ✅ 0
3 Handoff sem 429683 ✅ 0
4 Handoff sem docker-compose-supabase ✅ 0
5 Handoff sem /workspace ✅ 0
6 Runbook sem docker-compose-supabase ✅ 0
7 Runbook sem /workspace ✅ 0
8 Banco prod healthy pós-apply {"ok":24,"fail":0,"defer":7,"status":"healthy"}
9 Cron jobs ativos ✅ 51 + 52 reagendados

Diff stats

docs/handoff-2026-05-09-onda-9-vault-recovery.md    | 6 +++---
docs/runbooks/SUPABASE-VOLUMES-DOS-AND-DONTS.md     | 4 ++--
supabase/migrations/20260510131942_*.sql            | 8 +++++++-
3 files changed, 12 insertions(+), 6 deletions(-)

Resolve

  • Copilot Reviewer: pg_cron L192, prefixo 429683 L228, docker-compose L130
  • Auditoria interna: /workspace L180 runbook, L22 migration

Encerra arquivisticamente a Onda 9 sem deixar pontas soltas.

Summary by CodeRabbit

Notas de Lançamento

  • Documentação

    • Atualizados manuais e runbooks do Supabase: caminhos de compose/stack alterados para /root/supabase.yaml, referência de backup trocada por placeholder e correção de valor exibido em documento de handoff.
  • Chores

    • Migração do banco ajustada para garantir disponibilidade da extensão necessária antes de agendar tarefas cron.

Review Change Stack

Após merge dos PRs #124 e #125, descobri 4 review threads abertas de
GitHub Copilot e ChatGPT Codex Connector que CodeRabbit não cobriu.
Esse PR endereça as 4 críticas reais (P2/Minor mas válidas).

## Issue 1: Migration sem CREATE EXTENSION pg_cron (Copilot, P2)

Localização: supabase/migrations/20260510131942_*.sql

A migration usa cron.unschedule/cron.schedule mas não garante a
extensão pg_cron. 3 outras migrations do projeto seguem o pattern
defensivo (precedente):

  supabase/migrations/20260319134320_*.sql
  supabase/migrations/20260409013312_*.sql
  supabase/migrations/20260423174952_*.sql

Em prod atual já está instalada (re-aplicação confirmou
'extension already exists, skipping' = no-op idempotente).
Em ambiente novo, a anterior 20260423174952 já cria, mas adicionar
aqui mantém defensive pattern e evita assumption.

## Issue 2: Vazamento parcial de credencial 429683... (Copilot, P2)

Localização: docs/handoff-2026-05-09-onda-9-vault-recovery.md L228

L228 tinha:
  | F3.14 Test fn_get_vault_secret('evolution_api_key') | ✅ retorna '429683...' |

Mesmo prefixo parcial pode ajudar em enumeração. CodeRabbit pediu
sanitização similar nas linhas 2/250/257/264/307/412/418 mas não
pegou a 228.

Substituído por '<REDACTED-evolution-api-key-prefix>'.

## Issue 3: Referência a arquivo inexistente docker-compose-supabase.yml (Copilot, P2)

Localização: docs/runbooks/SUPABASE-VOLUMES-DOS-AND-DONTS.md L130
            + docs/handoff-2026-05-09-onda-9-vault-recovery.md L272, L390

O runbook recomenda 'docker stack deploy -c docker-compose-supabase.yml'
mas esse arquivo não existe no repo. O nome real do compose Supabase
self-hosted nesta VPS é '/root/supabase.yaml' (host filesystem),
documentado em docs/DEPLOYMENT.md.

Corrigido para apontar pra '/root/supabase.yaml'.

## Issue 4: Path interno /workspace/notes/backups/ no runbook L180

Localização: docs/runbooks/SUPABASE-VOLUMES-DOS-AND-DONTS.md L180
            + supabase/migrations/20260510131942_*.sql L22

CodeRabbit pediu sanitização similar no handoff (linhas 250, 257, 264,
307, 412, 418 — todas resolvidas no PR #125), mas o runbook L180 e a
migration L22 ainda tinham /workspace/notes/.

Inconsistência corrigida:
  L180 → '<internal-backup-storage>/supabase_db_config_*.tar.gz'
  L22  → '-- Ref: internal incident record (Onda 9)'

## Validação

Migration v3 aplicada em produção como idempotency test:
  NOTICE: extension 'pg_cron' already exists, skipping
  CREATE EXTENSION
  CREATE FUNCTION x3 (REPLACE)
  REVOKE x3 + GRANT x3 (idempotente)
  CREATE VIEW
  cron schedule | 51, 52 (reagendados)
  Smoke test: {'ok': 24, 'fail': 0, 'defer': 7, 'status': 'healthy'}

Banco produção continua healthy. ACL hardening preservada.

## Auditoria final 9/9 critérios

  1. Migration tem CREATE EXTENSION pg_cron:    ✅ 1 ocorrência
  2. Migration sem /workspace:                  ✅ 0
  3. Handoff sem 429683:                        ✅ 0
  4. Handoff sem docker-compose-supabase:       ✅ 0
  5. Handoff sem /workspace:                    ✅ 0
  6. Runbook sem docker-compose-supabase:       ✅ 0
  7. Runbook sem /workspace:                    ✅ 0
  8. Banco prod healthy pós-apply:              ✅ healthy
  9. Cron jobs ativos:                          ✅ 51 + 52 reagendados

Resolves: 4 review threads abertas pós-PRs #124 e #125
- copilot-pull-request-reviewer: pg_cron L192, prefixo 429683 L228, docker-compose L130
- (descoberta na auditoria): /workspace L180 runbook, L22 migration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 10, 2026 17:22
@vercel
Copy link
Copy Markdown

vercel Bot commented May 10, 2026

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

Project Deployment Actions Updated (UTC)
zapp-web Ready Ready Preview, Comment May 10, 2026 5:22pm

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 10, 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: efa1ab34-544c-433f-ac9c-d2ed960161fc

📥 Commits

Reviewing files that changed from the base of the PR and between 6d54a66 and 02597d0.

📒 Files selected for processing (3)
  • docs/handoff-2026-05-09-onda-9-vault-recovery.md
  • docs/runbooks/SUPABASE-VOLUMES-DOS-AND-DONTS.md
  • supabase/migrations/20260510131942_a5fcc99c-92cc-4be6-895a-f9a0d453a871.sql

Walkthrough

Atualiza documentação operacional/handoff (paths para /root/supabase.yaml e placeholder de backup) e adiciona um requisito defensivo CREATE EXTENSION IF NOT EXISTS pg_cron; na migração antes do agendamento de cron jobs.

Changes

Vault Healthcheck Implementation com Documentação Operacional

Layer / File(s) Summary
Cron Scheduling
supabase/migrations/20260510131942_a5fcc99c-92cc-4be6-895a-f9a0d453a871.sql
Adiciona CREATE EXTENSION IF NOT EXISTS pg_cron; como pré-requisito e posiciona o bloco antes da seção que agenda jobs cron.
Documentação Operacional
docs/handoff-2026-05-09-onda-9-vault-recovery.md, docs/runbooks/SUPABASE-VOLUMES-DOS-AND-DONTS.md
Corrige a saída documentada de fn_get_vault_secret('evolution_api_key'), atualiza duas referências de compose para /root/supabase.yaml no handoff, ajusta comando de deploy para docker stack deploy -c /root/supabase.yaml, e substitui caminho de backup por <internal-backup-storage>/....

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • adm01-debug/zapp-web#124: Modifica o mesmo arquivo de migração Supabase adicionando cron jobs e alterações correlatas na migração.
  • adm01-debug/zapp-web#125: Contém mudanças nos mesmos documentos de handoff e runbook relacionados a paths do supabase.
🚥 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 clareza o objetivo principal do PR: endereçar feedback de ferramentas de review (Copilot/Codex) com foco em 4 issues P2 pós-merge, mapeando o escopo real das mudanças.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/onda-9.3-coderabbit-followup

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

Follow-up da Onda 9 (Vault Recovery) para fechar 4 threads pós-merge, focando em tornar a migration mais “defensive” (pg_cron) e sanitizar/ajustar documentação operacional (redactions e paths corretos).

Changes:

  • Adiciona CREATE EXTENSION IF NOT EXISTS pg_cron; antes do bloco de cron jobs na migration do healthcheck do Vault.
  • Remove/sanitiza referência interna (/workspace/notes/...) e redige prefixo parcial de credencial na doc de handoff.
  • Corrige referência de deploy para o compose real do ambiente (/root/supabase.yaml) e troca path de artefato de backup por placeholder interno.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
supabase/migrations/20260510131942_a5fcc99c-92cc-4be6-895a-f9a0d453a871.sql Garante pg_cron antes de agendar/unschedule jobs e remove referência interna a /workspace/notes/.
docs/runbooks/SUPABASE-VOLUMES-DOS-AND-DONTS.md Ajusta comando de deploy para /root/supabase.yaml e sanitiza path de backup (placeholder).
docs/handoff-2026-05-09-onda-9-vault-recovery.md Redige prefixo parcial de API key e atualiza referências ao compose do Supabase para o path correto na VPS.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@adm01-debug adm01-debug requested a review from Copilot May 10, 2026 17:24
@adm01-debug
Copy link
Copy Markdown
Owner Author

@coderabbitai full review

Esse PR endereça os feedbacks do Copilot e Codex Connector dos PRs #124 e #125 (4 issues P2). Detalhes completos no body do PR. Aguardo nova revisão.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 10, 2026

@adm01-debug, iniciando revisão completa do PR. Vou analisar todos os arquivos alterados — migration SQL, handoff doc e runbook — com foco em bugs, segurança e consistência.

✅ Actions performed

Full review triggered.

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

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

@adm01-debug adm01-debug merged commit 8555b50 into main May 10, 2026
19 checks passed
@adm01-debug adm01-debug deleted the chore/onda-9.3-coderabbit-followup branch May 10, 2026 17:31
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