Todos os números vêm da auditoria de produção feita sob default_transaction_read_only = on e dos logs do próprio banco. Nenhum número foi estimado.
O que estava quebrado e o que está no ar com 38bf38e4. Cinza é o estado anterior; verde é o estado verificado hoje.
Cada bloco com o status e a evidência que sustenta o status. Âmbar é ressalva real, não pendência de código.
| Bloco | Status | O que é | Evidência | Detalhe |
|---|---|---|---|---|
| Deploy 38bf38e4 | VERDE | be, worker e fe no ar com o mesmo commit | /healthz 200 · /readyz 200 · / 200 nos três; bundle do fe com 38 chunks / 1.889.428 bytes | No bundle: “caiu no /ws” ausente, “ao vivo na barra” presente, isError presente, abort_orphan_closed presente. |
| 1. Rollback documentado e testado | VERDE | O caminho de volta ficou escrito e é executado por teste contra o schema real | docs/operacao.md §8.1 · be/src/persistence/rollback-aborting.doc.test.ts | A armadilha do estado “aborting” foi provada: o código anterior derruba /tree e /graph com 500, e o migrate deploy do código velho termina em 0 sem devolver o banco. O teste executa o SQL do documento, então o doc não pode mentir. |
| 2. Dois testes de setup | VERDE | Não eram bug de produção — o teste era cego | agents.test.ts · setups/patch-schema.test.ts (guarda hermética sem banco) | A igualdade com a frase do zod 3 derrubava na primeira asserção e o PATCH inteiro nunca rodava. Mutação prova que um PATCH frouxo daria a MESMA falha da baseline — a regressão ficava escondida dentro das falhas “conhecidas”. Baseline test:be foi de 13 para 11. Nenhuma linha executável de produção mudou. |
| 3. Tool que falha | VERDE | A linha da tool girava “running” até você recarregar | wf/sdk d4904fa4 · paridade testada nos dois caminhos | O step.toolResults do AI SDK também só traz tool-result; falha é tool-error. Corrigido nos dois. Era no caminho PADRÃO de produção. Mutações nos dois lados provam que a correção detecta a volta do defeito. |
| 4. socket.io | VERDE | A tela affirmava uma queda no /ws que não acontecia | Frase corrigida · runbook §6.7 · 7 mutações | A frase mentirosa foi corrigida e o comportamento tem teste e mutação. NÃO está ligado em produção — é o motivo de o fe não ter o texto antigo no bundle. |
| TLS do Postgres | VERDE | Cifra e é obrigatório — conexão sem TLS é recusada | Log do próprio banco: “parameter ssl changed to on” 05:05 · “pg_hba.conf rejects connection … no encryption” 05:08 e 05:09 · zero rejeição depois | Cert EC P-256 dentro do volume; hostssl aceita e hostnossl rejeita; as aplicações em sslmode=require. |
| max_connections | VERDE | 100 → 3000 | ALTER SYSTEM + reload; boot do worker: “🟢 Pool cabe no Postgres (pool por processo 1000 × 2 processo(s) = demanda 2000 contra max_connections 3000)” | Postgres reiniciado uma vez às 04:34:43Z (checkpoint forçado + fast shutdown, 8 conexões derrubadas) e voltou com o valor novo. |
| Varredura de órfãos | Rodando no worker, mas não fecha nada | abortOrfaos rodando, intervalo 60s, teto de idade 10s, 0 fechadas · 0 eventos abort_orphan_closed | aborting sem dono de varredura: 0 — o caminho está certo. O que falta é o reaper, que está OFF por decisão do dono. | |
| Health da API desde o deploy | VERDE | 145 requisições de API e 159 /healthz, tudo 2xx | 141×200, 3×201, 1×404 · 0×400/401/403/429/5xx · 0 “too many connections” · 0 crash · 0 linha de nível ≥50 | Turnos desde o deploy: 3 done / 0 errored / 0 aborted (24h antes: 51 done / 3 errored / 13 aborted). |
| Migrations | VERDE | Repo e banco em paridade | 21 no repo, 21 aplicadas, 0 faltando, 0 sobrando, 0 falhadas ou reverted · checksum 21/21 igual | Última: 20261014100000_indices_2_11, aplicada 03:35:51Z. |
| Workflows | VERDE | Nada preso | 5 runs (3 succeeded, 2 failed), 0 em queued/running/waiting · 74 tentativas (55 failed, 19 succeeded), 0 sem finished_at | Último movimento em 2026-10-01 — nenhum workflow rodando hoje. |
| Órfãos com a marca metadata.orphan | VERDE | A marca nunca é gravada | 0 de 551 subagentes com metadata.orphan · 0 roots com orphan · 0 órfãos malformados | Mas existem 7 subagentes active órfãos de fato SEM a marca: 5 sem pai e 2 com pai já completed. A varredura não os enxerga porque eles nunca receberam a marca. |
| Erro de tool em 7 dias | 193 de 28.832 resultados de tool falharam (0,67%) | sandbox_process_wait 129 · sandbox_bash 35 · run_command 13 | Desde o deploy: 0 falhas de tool. 24h antes do deploy eram 11 de 1.623. | |
| Avisos de SDK | 4 avisos de “System messages in the prompt” e 3 vazamentos de MCP | 3× “[mcp-pool] LEAK detected” por volta de 04:03Z | Os vazamentos são de browser, agentpack e mp, 1 referência cada depois de 60s. Não cresceram desde então, mas continuam sem causa encontrada. |
Em ordem de gravidade: primeiro o que está fora do meu alcance, depois o que ainda pode virar problema. Nenhum item aqui é bug de código.
O que já está no ar e ainda não tem o seu olhar de usuário. Em ordem: o caminho de produção primeiro.