| Controle | Estado atual |
|---|---|
| Processos sem vinculo inequivoco de cliente | 28 |
| Casos com task ADVBOX aberta e deadline vencida | 6 |
| Workflow diario | [CRON] trsadv-report-readiness ativo no n8n |
| Regra de envio | somente APROVADO_PARA_ENVIO; um unico processo bloqueado impede o relatorio inteiro |
| Componente | Estado |
|---|---|
Binario whisper-cli (whisper.cpp) | sim |
Modelos em /opt/whisper-models | 2 — turbo: sim · small: sim |
Funcoes no trsadv_lib.py | sim — whisper_transcribe, transcrever |
Motor do [CRON] trsadv-wf71-audio | whisper local (fallback Gemini) |
| Escolha do modelo | por duracao: ate 5 min usa large-v3-turbo; acima usa small (medido: turbo 3,8x mais lento que o tempo real; small 0,84x) |
| Regra de sigilo | arquivo com __SIGILO__ no nome nunca vai para a nuvem — se o Whisper falhar, nao ha transcricao |
| Fila | 255 pendentes · 229 processados em /var/lib/trsadv-audios-pendentes |
| Log | /var/log/trsadv-wf71.log — 45971 bytes |
| Recurso | Uso |
|---|---|
| Disco / | 152G / 193G (79%) |
| Memoria | 8.5Gi / 15Gi |
| Swap | 2.0Gi / 2.0Gi |
| Load average | 30.73, 8.89, 4.75 |
| Nome | Imagem | Status | Portas |
|---|---|---|---|
| penpot-penpot-frontend-1 | penpotapp/frontend:2.18 | Up 3 days | 127.0.0.1:9201->8080/tcp |
| penpot-penpot-backend-1 | penpotapp/backend:2.18 | Up 3 days | |
| penpot-penpot-exporter-1 | penpotapp/exporter:2.18 | Up 3 days | |
| penpot-penpot-admin-console-1 | penpotapp/admin-console:2.18 | Up 3 days | 3000/tcp |
| penpot-penpot-postgres-1 | postgres:15 | Up 3 days (healthy) | 5432/tcp |
| penpot-penpot-mcp-1 | penpotapp/mcp:2.18 | Up 3 days | |
| penpot-penpot-mailcatch-1 | sj26/mailcatcher:latest | Up 3 days | 1025/tcp, 127.0.0.1:1080->1080/tcp |
| penpot-penpot-valkey-1 | valkey/valkey:8.1 | Up 3 days (healthy) | 6379/tcp |
| chatwoot-sidekiq-1 | chatwoot/chatwoot:latest | Up 3 days | 3000/tcp |
| chatwoot-rails-1 | chatwoot/chatwoot:latest | Up 3 days | 127.0.0.1:3000->3000/tcp |
| chatwoot-minio-1 | 14cea493d9a3 | Up 3 days | 127.0.0.1:9000-9001->9000-9001/tcp |
| chatwoot-postgres-1 | pgvector/pgvector:pg16 | Up 3 days | 5432/tcp |
| chatwoot-redis-1 | redis:7-alpine | Up 3 days | 6379/tcp |
| estudio-redis | redis:7-alpine | Up 3 days (healthy) | 127.0.0.1:6380->6379/tcp |
| estudio-postgres | pgvector/pgvector:pg16 | Up 3 days (healthy) | 127.0.0.1:5433->5432/tcp |
| evolution-api | evoapicloud/evolution-api:v2.3.7 | Up 3 days | 127.0.0.1:8080->8080/tcp |
| evolution-redis | redis:7-alpine | Up 3 days | 6379/tcp |
| n8n | docker.n8n.io/n8nio/n8n:2.26.4 | Up 3 days | 5678/tcp |
| caddy | caddy:2-alpine | Up 3 days | 0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:443->443/udp, [::]:443->443/udp, 2019/tcp |
| uptime-kuma | louislam/uptime-kuma:1 | Up 3 days (healthy) | 127.0.0.1:3001->3001/tcp |
| n8n-postgres | postgres:16-alpine | Up 3 days (healthy) | 5432/tcp |
n8n: 2.26.4 · caddy: v2.11.4
| Service | Status |
|---|---|
| trsadv-api-contratos.service | active |
| trsadv-brain-lead-intake.service | active |
| trsadv-copiloto.service | active |
| trsadv-graph-webhook.service | active |
| trsadv-onboarding.service | active |
| trsadv-orchestrator.service | active |
| trsadv-token-warm.service | active |
| trsadv-vitoria.service | active |
| trsadv-webhook-advbox.service | active |
| trsadv-wf17.service | active |
| trsadv-wf50.service | active |
13 de 15 monitores com o último estado saudável. Monitores HTTP verificam normalmente a cada 60s; monitores push seguem a janela própria. Notificacao Telegram ATIVA · Dashboard publico de saude · todos os 5 apps Python tem rota /__health JSON (bot @trs_uptime_alerts_bot -> Dr. Tiago). Acesso tecnico ao Kuma: ssh -L 3001:127.0.0.1:3001 trs-vps -N -> http://localhost:3001
O Caddy possui 56 matchers/rotas. Os caminhos detalhados nao sao publicados neste organograma para evitar revelar endpoints internos. Auditoria visual de agendadores (o JSON bruto permanece bloqueado externamente).
| # | Pendencia | Dono |
|---|---|---|
| A1 | DMARC ausente — criar TXT _dmarc (M365 DNS, comecar p=none) | Dr. Tiago |
| A2 | DKIM nao habilitado — Defender M365 (security.microsoft.com) | Dr. Tiago |
| B1 | Validacao live-run Meta 01/03 — automatico 13:45 SP 02/07 (email resumo) | automatico |
| C1 | Decidir update n8n 2.26.4 -> versao nova (pinado, risco) | Dr. Tiago |
| D1 | Limpar ~10 backups dev RPA selenium_a1.py.bak-codex-* | Claude |
| D2 | trs_gasto_ias so 4 registros — instrumentar custo IA ou remover painel EE | Claude |
Detalhe completo + comandos: ssh trs-vps cat /root/docs/PENDENCIAS.md
Restaurado em 22/08/2026 do padrao do Dr. Tiago. Fica no topo do SYSTEM_PROMPT_DRA_VITORIA_v2.md e prevalece sobre todo o resto do arquivo. Consulta por API: /api/regras-atendimento.
Nome · nacionalidade · estado civil · profissao · endereco com CEP (uso interno) · comprovante de residencia · e-mail · resumo · por onde veio · area juridica.
Deriva corrigida: 12 dos 18 itens do padrao haviam sumido do prompt em producao — entre eles o limite de 50 palavras, o antifraude e a proibicao de endereco. Politica de endereco definida em 22/08: informar, sim; marcar, nao. O CEP correto e 01310-902 (o 01310-100 que circulava em relatorios esta errado).
Vigente desde 21/08/2026. Vale para todos — Dra. Vitoria, Claude, GPT, Gemini, NotebookLM, n8n e humanos. Fonte unica: /opt/trsadv-shared/REGRA_CTPS_DIGITAL.md.
Replicada em: SSOT regras_trs.yaml (secao documentos_do_cliente) · playbooks e system prompt da Vitoria · ROTEIRO_TRIAGEM_PCD · skills de triagem e estrutura PcD · RAG · API /api/regras-documentos (n8n e IAs externas).
Origem: conversa 72 (21/08) — o robo aceitou "pode me enviar o que tiver" e passou a combinar QUAIS PAGINAS fotografar. O passo a passo ja existia, mas terminava com "se nao achar exportar, pode mandar prints da tela mesmo".
| Canal | Inbox | Ponte | Estado |
|---|---|---|---|
| WhatsApp (11) 91768-9407 — numero OFICIAL do site/Google | #3 | Evolution API v2.3.7 (nao-oficial, Baileys) — imagem evoapicloud | conectado — instancia trs-oficial |
| Instagram @tiagorsadv | #2 | Channel::Instagram nativo (Graph API v22.0) | conectado — bot Vitoria ATIVO |
| Inbox legado | #1 | Channel::Api (casca sem canal real) | morta — ignorar |
NAO usamos a API oficial do WhatsApp (Cloud API). Motivo: com a API oficial o numero deixa de funcionar no aplicativo do celular. Como o Dr. Tiago precisa continuar respondendo pelo celular, ficamos na ponte nao-oficial. A WABA e' nossa (portfolio TRS 792751453410778) — a Tivas era apenas BSP, nao dona.
api_access_token; chegava vazio e o Chatwoot devolvia 401 com cara de token invalido. Corrigido por patch em DOIS arquivos (request.js do SDK e chatwoot.service.js), ambos montados read-only pelo compose. Faltar o segundo cria a conversa mas perde o texto do cliente.evolution-api:8080 (IP privado) e as mensagens ficavam status=failed. Resolvido com SAFE_FETCH_ALLOW_PRIVATE_NETWORK=true.GlobalConfig.clear_cache.Regra 9 — PCD -> time Trabalhista + etiqueta pcd, com 22 radicais (pcd, deficien, laudo, art 93, cota, autis, surdo, cadeirante, monocular, amputa, protese, invalidez, reabilita, baixa visao, cegueira, down...). Ela precisa ser a de maior id: o Chatwoot roda as regras com rules.each sem ORDER BY, e a regra 3 (pending -> Triagem) sobrescrevia a atribuicao. A regra 1 antiga foi desativada por so ter 5 radicais — contains compara string inteira, entao "deficiencia" nao pega "deficiente".
Varredura de 1.399 conversas do Direct. 54 leads respondidos um a um, com pedido de desculpas pela demora; 2 descartados como falso-positivo (hdn.engenharia e' fornecedor de laudos B2B; ferreira7752023 so encaminha reels). Os casos com pergunta juridica concreta foram respondidos no merito, nao com texto padrao.
Achado grave: um contato relatou que o (11) 91768-9407 devolve "numero invalido" no WhatsApp. Conferir assim que o pareamento voltar.
trs-atendimento — health check dos canais (aceita --json)trs-wa-code — gera codigo de pareamento novo do WhatsAppcat /root/docs/ATENDIMENTO.md — documento mestretrs-doctor — health check em 1 comando (22 checks; cron 08:00 modo quiet)trs-catalogo — gera workflows.html + crons.html (n8n/6h)trs-organograma — gera este HTML (cron 6h)ssh-list / ssh-add-machine / ssh-revoke-machine — gestao de chaves SSH/opt/trsadv-monitor/dashboard_saude.py — 6 KPIs (cron 5min)/opt/trsadv-monitor/dashboard_execucoes.py — rankings 24h + ultimas 100 exec (cron 5min)/opt/trsadv-monitor/auditar_workflows.py — auditoria 9 wf ativos (cron 6h)/opt/trsadv-monitor/trs_monitor_avancado.py — 10 checks Telegram (cron 30min): wf falhando, crons erro, aniv zero, pendentes cadastro, backup faltando/anomalo, SSL <30d, dashboards stale, gunicorn caido, disco/opt/trsadv-monitor/health_heal_gunicorn.py — auto-restart Gunicorn se /__health falha 3x (cron 1min; anti-hang)/opt/n8n/backup-semanal-extra.sh — Kuma sqlite + pg schema-only (dom 07:00 UTC, retencao 60d)/opt/n8n/backup-verify.sh — restore dry-run em DB temporario (seg 09:00 UTC; alerta Telegram se falha)/opt/n8n/backup-offsite.sh — copia off-site OneDrive via Graph API/var/lib/trsadv-wf72/ (repo trsadv-shared 4.6GB->1.5MB)trs-find <termo> — busca rapida no OneDrive indexado (38k arquivos)~/bin/trs-index.py — reindexa (LaunchAgent 05:00)~/bin/trs-organograma-mac.sh — gera versao offline no OneDrive (LaunchAgent 09:00)~/bin/backup-claude.sh — espelha ~/.claude no OneDrive (LaunchAgent 04:00)ssh trs-vps + cat)17 auditorias, ~9 bugs consertados, 999 clientes catalogados, ~45 commits
| Aud | Script / Fix |
|---|---|
| A+B | Diagnostico ADVBOX + Uptime Kuma 10 monitores |
| C | painel_cliente.py + wf10 filtro anti-poluicao |
| D | BUG ADVBOX customers_id plural IGNORADO -> customer_id singular (wf18/19/16/70) |
| E | 3 filtros ADVBOX bugados (birthday, name, paginacao) -> filtrar LOCAL |
| E.1 | TRS-05 do n8n ja estava correto -> aniv_diario.py desativado |
| F | wf132 fix + fix_advbox_ids.py + match_pastas_advbox.py (18 IDs) |
| G | wf18 v2 extrai signatario D4Sign (nome+cpf+email) |
| H | reconciliar_417.py - cobertura 100% (582 -> 999) |
| I | match_46_agressivo.py - 2 confirmados + 40 precisa_cadastro |
| J | parse_incompleto 46 -> 8 (extract ID + marcar duplicatas Civel) |
| K | wf06 v3.1: formatar CEP 99999-999 + birthdate YYYY-MM-DD |
| L | backup.sh v2: git bundle (1.8MB vs 4.6GB tar .git) |
| M | 4 emails aniversario enviados 01/07 + aniv_diario.py BACKUP 12:15 UTC |
| N | Debug bug TRS-05 execucao 190 — filtro devolveu 0 items |
| O | Fix TRS-05 via SQL revertido — dolar_input aponta node anterior errado |
| P | CAUSA RAIZ TRS-05: filtro isPF velho checava document=RG em vez de identification=CPF |
| S-X | dashboard-saude + Telegram 10 checks + auditoria wf + manual + wf72 fora do repo |
| R | Meta 01 NULLIF bigint + Meta 03 Number() coercion (root cause) |
| W/Y | audit 0 wf vulneraveis + restore dry-run automatizado |
| II/KK | self-heal Gunicorn + freshness dashboards |
| QQ/NN | security headers CSP+HSTS + fail2ban caddy-abuse |
| OO/SS | pg_stat_statements + Error Handler Central n8n (validado) |
Detalhes: /root/docs/INVENTARIO_ACESSOS.md secoes A a P
| Item | Estado |
|---|---|
| Pipeline NEGOCIOS | 1414 leads · 507 ADVBOX · 1282 Chatwoot · 1283 com telefone (backfill Digisac data.number) |
| Biblioteca HSM | 113 templates (74 UTILITY + 39 MARKETING) todo o ciclo + genericos flexiveis + nudges. /opt/trsadv-shared/HSM_TEMPLATES_META.md |
| Cadencia reativacao | 1283 leads (Q/C/M/F) · 4601 envios/14d · ~R\.380 · WF244 (n8n, DESATIVADO ate WABA) |
| Regras bot Vitoria | curriculo->contato@trsadv.com.br assunto VAGA; avaliacao pos-atendimento + avaliacao pessoal (lead sem fit) -> g.page/r/CULoV-9VBXnrEBM/review |
| Bloqueador unico | Migracao WABA da Tivas — EMAIL_TIVAS_FOLLOWUP.md |