Proteção contra abuso no widget, e o robô deixa de sobrescrever o que a pessoa acabou de mover
Restaura o limite de requisições do contato pelo widget, que por um erro de digitação no endereço nunca era aplicado. Robôs que movem cards no funil passam a informar a versão que leram, e o sistema recusa a movimentação quando alguém mexeu no card no intervalo — antes a última escrita simplesmente vencia.
- CorreçãoO limite de requisições do contato pelo widget volta a funcionar. O endereço verificado estava no plural e a rota é no singular, então a proteção nunca era aplicada e o endpoint aceitava requisições sem limite.
- NovidadeRobôs que movem cards no funil agora informam a versão do card que leram. Se alguém mover o card nesse intervalo, a movimentação do robô é recusada com um erro claro em vez de sobrescrever o que a pessoa fez.
- CorreçãoUm robô limitado a determinados funis não consegue mais ler os funis que não lhe foram concedidos. Ele já não os via na listagem, mas conseguia abrir cada um diretamente e ver nome, etapas e descrições.
- CorreçãoO reenvio de e-mail de confirmação no painel administrativo volta a funcionar: o botão existia e a ação do outro lado, não.
- CorreçãoO e-mail de notificação volta a trazer no rodapé o link para ajustar preferências de notificação.
Proteção contra abuso no widget
O limite de requisições do endereço que atualiza o contato pelo widget verificava
um caminho no plural enquanto a rota real é no singular. A comparação nunca era
verdadeira, então o limite nunca era aplicado — e um limite que nunca dispara não
avisa que está ausente. Corrigido, junto com a normalização de endereço que
garante que /rota, /rota/ e /rota.json contem para o mesmo limite.
Movimentação de card por robô
Até aqui, quando um robô movia um card, valia a última escrita. Se o robô lesse o card, levasse alguns segundos decidindo, e nesse intervalo alguém arrastasse o card na tela, a escrita do robô passava por cima — sem erro e sem registro.
Agora cada card tem um número de versão que sobe a cada movimentação, venha de onde vier. O robô informa a versão que leu, e o sistema só move se ninguém tiver mexido. Se tiver, a movimentação é recusada e a resposta traz a versão e a etapa atuais, para o robô decidir de novo com a informação correta.
Isso não muda nada para quem usa a tela: a exigência vale apenas para robôs.
Funis restritos
Quem limita um robô a determinados funis já via a lista filtrada corretamente, mas o robô conseguia abrir diretamente um funil que não lhe cabia e ver nome, etapas e descrições. As duas portas agora respondem igual.