mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 01:28:34 +08:00
Fecha a lacuna declarada no commit anterior. O Docker travado não tinha outro
caminho além de matar e subir de novo (confirmado pelo Rafael por experiência);
depois disso a sonda rodou, e o caminho até o verde foi todo em falso positivo.
## A prova (21/21, exit 0)
CICLO: statusPatch 200
noBancoDepois "Enviar o orçamento revisado
Enviar a segunda via do boleto" ← gravou
aindaSemPasso 0
naTelaDepois.sem_passo 0 ← a tela releu e o vazamento sumiu
audit 1 ← demanda.proximo_passo_definido
A confirmação vem do BANCO, não de uma mensagem de sucesso na tela — é assim que
o bug conhecido de `organizations` engana (PostgREST devolve 200 tendo casado
zero linhas).
## Os três falsos positivos do caminho
1. **O Supabase caiu no meio da sessão.** Medido, não suposto: `curl` no kong
devolveu 000 enquanto o app respondia 200, e depois o daemon do Docker parou
de responder. Controle que fechou o diagnóstico: a sonda de layout, verde
minutos antes, passou a falhar NO MESMO PONTO — era ambiente, não edição.
2. **Uma asserção minha reprovou produto correto.** `noBancoDepois === PASSO`
comparava uma string com o resultado de uma consulta que devolve TODAS as
demandas da marca com próximo passo — a semeada já com passo, e a
recém-marcada. Trocada por `includes`. O produto estava certo; a régua é que
estava errada.
3. **O login da sonda era INTERMITENTE, e o rastro dizia onde olhar.** Duas
rodadas falharam com buckets `auth:login_fail:id:` de HASHES DIFERENTES
(f5e9836… e 30ebfc5…). Mesmo usuário daria o mesmo hash, então o que variava
era o texto que chegava: `pressSequentially` perdia caracteres enquanto a
página montava e o servidor via um e-mail truncado. Não era rate limit — o
audit mostrou `auth.login_failed`, nunca `auth.login_rate_limited`.
Consertado com um `entrar()` que CONFERE o que digitou antes de submeter, com
até 3 tentativas e erro explícito se o campo não aceitar. Instrumento que erra
às vezes é pior que um que erra sempre: leva a diagnosticar o produto.
typecheck 0 · lint 0 errors · 1859 unitários em 171 arquivos
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkS3mzwtXughmjVC5FCoNo
167 KiB
1440x900px
167 KiB
1440x900px