Hardening pós-ativação Ariane — billing, contratos e observabilidade (04/07/2026)¶
Sessão Stamper 04/07. Issues Done: CSE-92, CSE-94, CSE-95, CSE-96, DEV-1176 (+ DEV-1168 no render do Cadencia). Worker de recarga em produção real. Fonte técnica:
pd-framework/times/cs/context/mapa-automacao-onboarding.md+sistema-central-onboarding.md.
O que mudou¶
1. Reconcile Asaas tolerante (CSE-92) — anti-duplicação de cobrança¶
_shared/asaas_reconcile.py agora casa parcelas em 2 passes com consumo 1:1: exato (vencimento, valor) → tolerante (mesmo valor + até 31 dias de deslocamento, ou até 180 dias se o payment já está pago). Parcela reemitida/renegociada com data ajustada é reconhecida como a MESMA parcela. Por que importa: as 6 parcelas da Ariane foram movidas pro dia 03 no Asaas — o match exato antigo listaria as 6 como "faltantes" e um --apply teria duplicado R$6.970 de cobrança. Dry-run real pós-fix: criar: []. Direção conservadora: na dúvida, não cria.
2. Busca de contato em frentes (CSE-94) — anti-contato-duplicado¶
_shared/crm_onboarding.py: email primeiro (chave única tenant+email) → sobrenome como termo de 1 palavra (única busca que funciona hoje, DEV-946) → nome completo. Termo de 1 token só aceita match único — ambíguo vira pendência manual, nunca chute. O consolidador repassa o email pro passo CRM.
3. Créditos no frontmatter (CSE-95)¶
Template do /elaborar-contrato já gravava creditos:; backfill nos contratos pré-template com Cadencia — Mel = 100, OP Odontopenha = 80 (conferidos nas cláusulas). Desbloqueia o provisionamento automático de créditos do tenant.
4. Sync contrato ↔ Autentique (CSE-96)¶
Novo _shared/contrato_autentique_sync.py: consulta o Autentique ao vivo e promove status: → assinado + signed_at no frontmatter (só promove, nunca rebaixa; falha de rede não altera nada). Plugado no consolidador antes do parse. Achado da estreia: a Mel assinou o contrato em 01/07 e o sistema não sabia (frontmatter congelado desde o envio em 22/06). Iasmin/Leonardo (não assinaram) e Juliana (parcial) corretamente não promovidos.
5. Worker recarga-creditos-mensal → PRODUÇÃO REAL¶
Autorização Felipe 04/07. Drop-in systemd com RECARGA_APPLY=1 + log em arquivo. 1ª recarga real E2E: Ariane 2026-07 (UPDATE idempotente + marker na timeline + WhatsApp ao Felipe; re-run pula). Próximos ciclos automáticos: Mel dia 19/07, Ariane 03/08. Lembretes manuais CSE-76..80 ficam obsoletos após o dia 19. T-0 formalizado: nota interna de aditivo no contrato da Ariane (T-0 real = 03/07/2026; F1 até 18/07, F2 até 01/10, F3 até 30/12; fidelidade até 03/01/2027; parcelas dia 03).
6. Observabilidade DEV-1176 — "tudo chega no Felipe"¶
- Pipeline carrossel/reels: falha TRATADA de step (
_fail_job) erender_failedagora geram evento Sentry (antes só exception não-tratada). - Ativações/onboarding: middleware 5xx no FastAPI captura respostas 500/503 tratadas.
- Growth (blog/seinfeld/linkedin/newsletter/instagram + retry provisioning): novo
lib_sentry.pynocadencia-growth. - Tudo desagua na Central existente: Sentry → bridge → issue Linear → gate → WhatsApp. E2E validado (evento de teste virou DEV-1178 automaticamente).
- Health-check: job novo
recarga-creditos-mensal (billing)crit=true (PR #3 do repo health-check).
Pendências que viraram issue¶
- DEV-1179 — token
gho_*exposto no remote git do/cadencia(rotacionar + deploy key) - DEV-1173 — enviar carrossel no WhatsApp do cliente (opt-in por tenant)
- Escopo restante do projeto: CSE-97→99→98→101 (cadeia pós-briefing) + CSE-93/103 (skill /ativar-cliente) + CSE-89/90/91/100/102 + DEV-1154
Decisão organizacional¶
Projeto Linear Automação do Onboarding CS (Fases 1-7) agora concentra TODAS as issues da área autônoma de CS (Felipe, 04/07) — team CSE adicionado ao projeto, CSE-89..103 + DEV-1154 vinculadas.
Notas Relacionadas¶
Projetos/Central CS Onboarding/Docs/04-Consolidador · Projetos/Central CS Onboarding/Docs/08-Workers-Acompanhamento · Projetos/Central CS Onboarding/Docs/11-Retrofit-Mel-Quevedo-13-Issues-2026-07-01 · Central-Observabilidade