Cleat · revisão de código

Últimas alterações do sistema

O painel em produção já corre o PR #208 (merge 5d71d04). Fecha #204, #205, #206 e #207. Os quatro problemas de produto estão resolvidos; o caminho novo de env_set ficou o ponto frágil.

REVIEW · 2026-10-02 14 arquivos · +239 / −24
origin/main @ 5d71d04
paas.gestaobem.com
3bugs
2sugestões
4issues fechadas
99apps healthy

O que entrou

  • #206 Golang / Cais. A unit HTTP ganha HOST=127.0.0.1 e PORT=:<porta>; workers não. Andes Tours (id 107) deployou com sucesso depois do merge (#923, #925).
  • #207 env_set. Unit failed faz reset-failed + start e espera ficar pronta. Hibernate (stamp) continua no chão.
  • #204 Signals. Deploy falho recente vira deploy_failed (degradada, janela de 1h), não down. Decor, OpenDrive, Plaza, Edna, Afiliados e Evolução têm último deploy failed e não aparecem mais como indisponíveis.
  • #205 Redação. privKey / rootKey / buffers Signal no coletor e no apps_logs.

Produção

  • Overview de Saúde já usa a regra nova: 99 apps healthy, 0 alertas abertos.
  • PUT /api/v1/apps/waha/env devolveu 200 em ~2,2s (app Node).
  • env_set em app golang ainda não foi exercitado neste recorte.
  • A API de Andes Tours lista andes-tours e andes-tours-worker.

O conserto mais urgente é o env_set não tentar subir -worker fantasma e não vazar journal na resposta.

Achados

bug 1 lib/cleat_deploy/apps/env_apply.ex:81

env_set sobe worker golang fantasma

O ramo inativo agora dá start em qualquer unit sem stamp próprio. Golang sem deploy_manifest["units"] ainda inventa -worker. Se a unit não existir, o apply espera 30s e devolve env_apply_failed depois de já ter gravado o env. O teste afirma restart de gowa-worker.

Só auto-start da unit primária, ou pular start se systemctl cat não achar o arquivo. Extras: restart se ativas, reset-failed+start só se is-failed. Hibernate deve olhar o stamp da unit primária. Tratar units == [] como “sem extras”.

bug 2 lib/cleat_deploy/apps/env_apply.ex:123

journalctl cru fura a redação

Falha de recovery manda journalctl -n 30 sem Redact para API e LiveView. No WAHA isso devolve material Signal que o mesmo PR passou a mascarar em logs.

Rodar Redact.message/1 na stdout, limitar o payload, e preferir “unit não ficou pronta” com ponteiro para a aba de logs.

bug 3 lib/cleat_deploy_web/live/signals_live.ex:94

Card “Indisponíveis” ficou morto

O hint ainda diz “Último deploy falhou”, mas :unavailability não é mais emitido. Deploy falho vai para “Degradadas”. O card de indisponíveis fica em 0.

Mover a copy de deploy falho para o card degradado, ou retirar indisponíveis até existir health HTTP.

sugestão 4 lib/cleat_deploy/observability/redact.ex:13

Padrão Buffer ainda é estreito

Casa só privKey|pubKey|rootKey|remoteIdentityKey|baseKey: <Buffer …>. chainKey, Uint8Array e JSON Buffer passam. Redigir qualquer <Buffer …> (e formas vizinhas) depois de um campo *Key.

sugestão 5 lib/cleat_deploy/apps/env_apply.ex:89

Comentário narra o loop

“Mirror the golang deploy gate…” só narra o loop. Manter só o porquê: não devolver sucesso com o processo ainda no chão.

Outras mudanças das últimas 36h