Files
DeskcommCRM/scripts
Rafael Melgaço 9927884105 Merge PR #322 — a automação dizia "sucesso" sem a mensagem chegar; e leads captados agora têm histórico e abordagem por IA
Três entregas e três consertos adjacentes.

- **Histórico de leads captados** (aba "Leads recebidos"): quem chegou pelo
  formulário, com o que preencheu, quando, de onde e por qual IP — e também
  quem NÃO entrou, com o motivo em português. Tabela nova em vez de reusar
  `webhook_events_log`, que é arquivo forense e some em D+7/D+90.
- **Ação "Mensagem escrita pela IA"**: agente publicado + instrução do dono do
  negócio, com a moldura de abordagem fria. Autoridade e conteúdo em canais
  separados (system vs. `<dados id="{nonce}">`).
- **A automação parou de dizer "sucesso" para mensagem que não chegou** — o
  relato que originou boa parte da entrega. Junto foram dois silêncios vizinhos:
  a janela de envio que era medida no fuso do SERVIDOR (7h–22h virava 4h–19h de
  Brasília) e o adiamento que não gravava nada.

Verificado nos 5 portões obrigatórios sobre o SHA 3781ce77: verify,
build-and-size, invariants, e2e, imagens-ok — todos success. `pnpm test:db`
local: 116 arquivos, 868 testes, baseline com install E update ok.

O único check vermelho é o Vercel, que falha igual na main (pré-existente, não
obrigatório).
2026-08-25 10:37:01 -03:00
..
…

scripts/

CLI utilities pra operação local e de produção.

Lista

  • seed-tenant.ts — Cria um tenant manualmente (modo BPO). Placeholder; implementação na Spec 01.

Convenções

  • Todos em TypeScript (executar via npx tsx scripts/<nome>.ts)
  • Sempre validar input com Zod
  • Logar via console.error (stderr) pra mensagens operacionais; console.log (stdout) só pra output estruturado consumível por pipe
  • Operações destrutivas exigem flag --confirm ou prompt interativo
  • Toda mutação relevante gera entrada em api_audit_log com actor=script:<nome>