mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 01:28:34 +08:00
A faixa ③ ganha um quarto estado e a precedência fica
`awaiting > reactivation > cooling > medidor`. Ela separa INFORMAR de PERMITIR
AGIR: `cooling` diz "este negócio parou"; a proposta diz "parou E aqui está o
que fazer". Mostrar "parado há 3 dias" quando existe proposta viva ESCONDE a
decisão — e o card cujo propósito é provocar decisão passaria a só descrever o
problema.
Continua perdendo para a próxima ação do agente, por coerência com o cenário 24
já decidido: duas decisões pendentes no mesmo card é a pilha que o §5 proíbe.
O PRAZO APARECE NO CARD, e é a diferença visível em relação à wave 4. Proposta
com prazo que não mostra o prazo é a mesma simulação de atenção que o prazo
existe para evitar: quem olha precisa saber que a janela fecha, senão "decido
depois" é indistinguível de "decidi não".
"Encerrar" e não "Ignorar": ignorar não é decisão, e a recusa aqui É decisão
registrada — o que distingue negócio encerrado com critério de negócio
esquecido.
SEM REALTIME, E ISSO É DECLARADO: a entrega em tempo real está sob disputa entre
dois aparatos, e construir a tela em cima dela produziria trabalho que não pode
ser provado. A proposta aparece no refetch (60s, porque o prazo corre e uma
proposta vencida não pode continuar oferecendo botão). Quando o realtime tiver
veredito, isto ganha a assinatura junto com a peça 3.
O HOOK NÃO USA O ECO LOCAL, ao contrário do irmão da wave 4: os tipos
`reactivation_*` estão fora da lista positiva da 0079, então não carimbam
`last_activity_at` — o lead não é tocado, o board não pulsa, não há eco a
suprimir, e marcar um deixaria marca pendurada esperando evento que nunca vem.
PROVA NA TELA (tests/sonda-card-reativacao.ts):
1. a faixa mostra a proposta ............... sim
2. mostra o PRAZO .......................... sim, "· 2d"
3. os dois botões decidem .................. Retomar / Encerrar
4. o card cresceu? ......................... NÃO — 144px com e sem proposta,
medido contra um card VIZINHO e não contra um número que eu escolhi
5. decidir tira a oferta da tela ........... sim, DEPOIS do conserto
O ITEM 5 ACHOU DEFEITO REAL: o servidor respondia `accepted` e o card SEGUIA
OFERECENDO o botão. O hook invalidava só `["board", pipelineId]`, e a lista de
propostas vive em `["reactivations"]` — um lado mudou, o outro não acompanhou, e
nada reclamou. Clicar de novo daria 409 e o usuário concluiria que o sistema não
obedeceu. É a família de defeito da entrega inteira, agora no cache.
Vai junto a adoção do `escolherAlvo()` do QAVivo na sonda de realtime: ela
pegava lead com `limit 1` SEM ORDEM, e o "2/2, tudo chega" que eu reportei como
contradição não contradizia nada — media outro lead. O helper recusa lista
vazia, ordena e LOGA qual de quantos escolheu.
typecheck 0 · lint 0 erros · 442 testes em 71 arquivos.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013dxBNZMjUzBx8xWs8DvGvP
163 KiB
1500x950px
163 KiB
1500x950px