- Navios
- 29 de setembro de 2026 às 02:05 UTC
- Autor
- Kamo
- Enviar
- 38cd3d5
A revisão independente do D-luna-1 (email-fix-review-1.md) encontrou dois BLOCKERs e um MAJOR, cada uma falsa recusa real de correspondência legítima, demonstrada a partir de código já nesta REPO: - Caso (BLOCKER): AliasService.createAlias, SharedMailboxService.create and Todos persistem num endereço exactamente como administrador. datilografado - uma linha real pode ler "Sales@kamocrm.com". Cada busca é agora Case-insensível na base de dados (LOWER(col) = Lower(?)), escopo por org id, que ainda alcança as linhas desta organização através de cada tabela (org id HASH, col) índice único em vez de uma varredura de organização cruzada — ele simplesmente não pode usar o índice componente de intervalo ordenado para procurar o valor exato dentro deles. Um índice funcional sobre LOWER( col) por tabela (ou normalizando caso em tempo de escrita nesses três serviços) seria restaurar uma pesquisa de ponto simples; nenhum é feito aqui sem Ambos são maiores do que esta tarefa. Implementado através de consultas nativas do EntityManager DestinatárioDomainValidator ao invés de novos métodos de repositório de bibliotecas compartilhadas com kamo. - Plus-tags (BLOCKER): sage+urgent@kamocrm.com agora dobra para sage@kamocrm.com (EmailAddress.baseLocalPart(), a mesma dobra a camada de entregabilidade/supressão já se aplica) antes da verificação da caixa de correio — nunca para a verificação do apelido, uma vez que Alias é o seu próprio endereço distinto, criado deliberadamente. - Múltiplos domínios root (MAJOR): um endereço de domínio-alias (kamouniverse.com) é agora Tentei contra todos os domínios em... o padrão de UI (permitidoDomain) — uma caixa de correio em uma segunda root possuída já não lê como desconhecido só porque não é o domínio padrão da org. - Procura de membros não indexados (MAJOR): o recurso de Repositório de Membros é removido. Não tem nenhum índice de apoio, por isso fez um scan de cada membro fileira na organização para cada palpite genuinamente ruim — exatamente isto A própria razão para existir. Também era desnecessário: esta classe só funciona para uma organização no KamoMail, onde um endereço real, **************** row (que é o que o fornece); um membro cujo .email acontece corresponder mas não tem nenhuma dessas linhas não tem caixa de correio na servidor compartilhado, então um envio para eles falha no RCPT TO independentemente do que isso O cheque disse. Veja a classe javadoc para o argumento completo. - Truncation (NIT): ************* agora fecha a prosa às 5 endereços nomeados ("e N mais"), assim DownstreamErrors ' 300-char corte não pode mais cortar uma mensagem de envio muito ruim- destinatário fora do meio do endereço antes do MailPack dica de procura de directórios é adicionada. rejectedRecipients() nunca é truncado. O MINOR (oráculo de existência) é aceito como raciocínio, não como uma mudança de código: respostas de verificação pré-voo "existi x@ownDomain" mais rápido do que o pré-existente SendFailedException->422 RECIPIENTS REJECTED path já poderia (um RCPT TO real), para o mesmo-org, sed-gated chamador; não abre nenhum novo limite privilégio. Testes (vermelho confirmado, depois verde): DestinatárioDomainValidatorTest reescrito contra o novo design baseado em EntityManager (espelhos **************** RETURNS SE Consultar mock) com novos casos para um endereço de caso com mixagem, uma +tag contra uma caixa de correio real, um +tag que ainda não se resolve, e um endereço de domínio-alias cuja caixa de correio real vive num domínio root não predefinido (com e sem +tag). SendFailureResponseTest ganhou casos para a prosa capped vs. a untruncated Lista estruturada. Teste MVN pesado 77, 0 falhas.
