E-mails de bate-papo e bug link para o console que o destinatário pode alcançar
ChatEmailNoticeService nomeou o primeiro domínio do receptor org seja qual for o seu Estado. O caso relatado: Exec2Exec letras para makeitpopsigns.com, enviado ...
A mensagem de um cliente chega à mesa, não só a linha
Um executivo escreveu em seu chat Exec2Exec e ninguém na KamoCRM ouviu. announce() disse aos próprios membros da sessão, e um operador é apenas um membro da uma...
Um anúncio que lança não deve voltar o buy-in
`announceToConversation` executa INSIDE a transação que senta o anfitrião e cobra eles — ao contrário de 'anúncioTable', que o controlador chama depois do fato....
Colegas na lista de convites e um convite de um bate-papo que chega
Dois defeitos relatados, ambos em quem uma tabela pode chegar. ** A janela de convites oferece contas.** `invitableFor` lida Membros. findByOrganização Id, e a...
Uma mão mostrada no flop é cinco cartas, e recebe um nome
`showHand` nomeou uma mão apenas com um quadro completo de cinco cartas, enquanto `showHand` marcar um de três — e duas cartas de furo mais um flop de três cart...
Um raider poderia levantar novamente depois de ser chamado
Um personagem, e decidiu potes. `canraise` é exatamente `!actedThis Street`, para que boolean é o todo de "pode Você aumenta". O serviço reconstrui- o a partir...
Xadrez, Hold'em e a carteira nunca perguntou se a org tem o aplicativo
O companheiro do compromisso kamo-interno, e a metade que realmente importava. O portal do navegador era cosmético: ChessController, HoldemController e CheddarW...
Uma cadeira de recarga foi entregue à mão suja do ocupante anterior
Dois defeitos que a permanência tornou alcançável, encontrado por revisão do commit que acrescentou Ele. A redução. view Para filas de assentos manuais corresp...
O feltro nunca viu um confronto, e um pote dobrável foi contado duas vezes
Dois defeitos que eram invisíveis pela mesma razão, e os dados uma mesa de poker Tem de apresentar um resultado. NINGUÉM PODE VER. finishHand() limpa table.cur...
Nova tabela 500'd em um ternário que desboxizou um botão nulo
Pressionando Nova tabela respondeu 500: NullPointerException: Não é possível invocar "java.lang.Integer.intValue()" porque o O valor de retorno de HoldemTable....
O relógio nunca poderia ter disparado, e um tudo-em nada reaberto
Dois defeitos encontrados lendo o código de volta, nenhum dos quais qualquer teste poderia ver. # # O relógio teria jogado no seu primeiro tique-taque `Holdem...
Spring Data não registra uma interface de repositório NESTED
O serviço de mídia caiu na imagem do Hold'em. Os seis repositórios enviados como interfaces aninhadas dentro de uma classe `HoldemRepositórios' — um arquivo em ...
Map.of lances em um valor nulo, então "sem jogo ainda" foi um 500
`gameWith` respondeu com `Map.of("game", ...)`, e `Map.of` rejeita um valor nulo com um NullPointerException. Assim, o ponto final cuja resposta normal document...
Deixe uma recusa manter a sentença que foi escrita com
O código de xadrez se recusa com razões destinadas a ser lidas — "não é a sua vez", "isto jogo não está em jogo", "movimento ilegal". Nenhum deles chegou a ning...
Parar de escrever "/" como destino de uma notificação de revisão
O Growth Hub não tem tela própria — o widget do kamo-internalRegistry diz isso onde decodificadores para dar ao widget um href: "o widget é o recurso". Então......
Um evento de status editado manteve seu tipo, e afixar a redação
Duas coisas, ambas encontradas escrevendo o teste para o caminho do actorName em vez de por A ler. MessageType estava sendo lido fora do corpo após a redação. ...
Pare a porta de presença silenciando cada notificação de correio
Um membro com um soquete MediaService ao vivo foi tratado como tendo já visto todos os push não-call, correio incluído. Isso é verdade no que viaja sobre isso s...
Crédito a uma inscrição cujas visualizações de página nunca foram gravadas
**************** foi a única coisa na frota que sempre inserido no WORKING VISITORS, então todo o gasoduto de conversão Dependeu silenciosamente de um farol de ...
Deixe um gerente aceitar o chat da web sobre o qual eles foram apenas chamados
Clicando em Aceitar em um pedido de web-chat fechou o popup e reabriu-lo um momento mais tarde, sem atribuição e sem janela de bate-papo — o mesmo cartão, repet...
Não arquive conversas em um tópico de suporte do org desativado
resolveTopic honrou um tópico configurado pelo id sozinho, de forma que desativando um a integração ainda apontando para ele e novos chats do site ainda aterris...
Diga ao widget o nome da org para que pare de falar como Kamo
O público-chat bootstrap carga útil transportado orgId, mas sem nome org, então o widget não tinha nada para marcar o assistente com e caiu de volta para um cód...
Repetir o carregamento do membro cada solicitação autenticada faz
AuthHelper.getCurrentMember foi a vítima mais comum de um Yugabyte bump de catálogo neste serviço — oito dos conflitos registrados em ambos os pods Uma janela d...
Prove a implantação por digest, não por tag
O commit anterior para `set image' sendo um no-op silencioso. Isto afirma que resultado: após o lançamento, a tag é resolvida para uma digest As cápsulas em exe...
A reconstrução do mesmo commit não implantou nada e relatou sucesso
A imagem é marcada com o commit SHA, então reconstruir o mesmo commit produz uma referência de imagem idêntica. `kubectl set image` então não muda nada, o A imp...
Compilar o URL avatar do remetente a partir da sua org, não da máquina de requisição
Um remetente de notificação de chat Avatar foi resolvido do X-Forwarded-Host, caindo de volta ao nome do servidor. Tanto o BFF do kamo-internal quanto o APIServ...
Parar dez trabalhos agendados de correr duas vezes agora MediaService tem dois pods
Scaling MediaService para duas réplicas teria dobrado cada varredura programada que possui. Dois de aqueles que enviam e-mail — MeetingReminderSweep e ChatEmail...
Parar de apagar o único pod de chat antes de iniciar a sua substituição
Implantes substituiu o único pod de cada serviço com nada para pegar os pedidos em Voo. Três configurações, aplicadas em toda a frota: - preStop dorme 10s ante...
A publicação precisa de GD, não de uma janela de modo- deus aberta
O interruptor era invisível para operadores ilegíveis a Deus. Estava fechado. * **************** - GD mais um vidro aberto a GD não é o mesmo que a ter activado...
Compila contra o SystemBugDispatchDTO de dois campos
Não relacionado com o trabalho OAuth no commit anterior — MediaService main não compilado desde que o terminal ad78dfa8 adicionado ao kamo-shared-library Termin...
A ligação profunda de chamada de entrada deve utilizar kamocopilot://
O esquema kamomobile:// de KamoMobile é o passo 2 de um renome que não aconteceu. O binário publicado registra kamocopilot sozinho, e uma ligação profunda para ...
Announce a message only once it can be read
POST /sessions/{guid}/messages is @Transactional, and the NATS publish of the message has always waited for the commit — with a comment saying exactly why: publ...
Recusar uma edição uma vez que outro membro tenha lido a mensagem
PATCH /api/media/mensages/{id} foi deliberadamente ungido em recibos, ao contrário do DELETE ao lado dele. O raciocínio escrito nele foi que não enviar faz pala...
Passe o site apaga antes que as substituições sejam escritas
A edição de um relatório voltou "O erro não pôde ser salvo: Servidor Interno Erro" sempre que o repórter deixou um site marcado — então cada edição sobre o títu...
Encaminhar removidoPorMembroId para o navegador
O relé copia campos nomeados fora do ChatMessageDto para o quadro STOMP, então um campo que não copia é deixado cair mesmo quando o DTO declara. MEMBRO REMOVED ...
Um relé só avança a sua própria conversa
ChatSessionSubscriptionManager publica para um tópico com o nome da sessão Assinado FOR, nunca depois da sessão o quadro veio. Isso é apenas seguro. enquanto o ...
Um anexo que não pode ser lido diz isso em vez de 500ing
O proxy de imagem já responde 410 para acesso revogado e para um removido mensagem, mas deixe o OpenRange IOException escapar sem ser pego — então o único caso ...
Uma reação comutada duas vezes ao mesmo tempo é um no-op, não um 500
setReaction lido, em seguida, salvo, em seguida, pegou a violação de restrição a leitura era suposto prevenir — o que não funciona: a violação surge no flush, a...
O lobby de uma criança org oferece seus próprios fundos, não a plataforma
A pasta que contém fundos de reunião de uma org e configuração do tema foi derivada de um nome de máquina — o pedido, ou o domínio org que o sidecar passou — to...
Um telefone, um alerta — colapso de destinos push duplicados
Os membros estavam recebendo a mesma mensagem de chat três vezes mais no telefone. As inscrições são únicas em (dispositivo token id, org id, push kind), NÃO n...
Ambigüidade do Route getChatSessions não lida através do PróprioAutorship
MediaController.getChatSessions laminada manualmente a versão pré-extração do "foi isto escrito por outra pessoa?" regra (rowVisitor != null && callerId Que só ...
Manuseamento consistente de erros e tratamento de camadas em duas conclusões de revisão
Resultados de revisão sobre as tarefas 14 e 15: - SystemBugController manteve um campo SystemBugRepository e queriá-lo diretamente para a contagem de novos bug...
Guardar a pesquisa não lida em si, não apenas a transmissão
Revisão da Tarefa 9: persistiInbound is @Transactional, and only the broadcast () chamada dentro do loop per-member era exception-safe (ele engole seus próprios...
Compila o padrão de pesquisa fora da consulta e analisa a consulta em um teste
likePattern transforma um termo de pesquisa ausente em '%s' para que nenhum parâmetro nulo atinge uma expressão de texto, e escapa % e no termo assim que uma ...
Selo cada quadro não lido com o instante em que suas contagens foram lidas
Os quatro lugares que construíram o instantâneo não lido de um membro — o REST lê, o frame enviado quando uma mensagem chega, o frame enviado quando uma sessão ...
Resolver o proprietário de um chat público sem andar uma associação preguiçosa
getChatSessions é executado fora de uma transação, então chegar ao proprietário da sessão através do visitante o proxy de sessão preguiçosa funcionou apenas enq...
Pare de ler o membro do sistema do org como visitante do web-chat
Quatro falhas relatadas, uma causa. Um visitante widget não tem membro, então o membro do SYSTEM da org — o proprietário, que trabalha na fila — representa-os c...
Tamanho da cápsula acima de seu próprio teto de pilha JVM [skip ci]
A imagem inicia a JVM com -XX:MaxRAMPercentagem=70 -XX:+ Sempre PreTouch, assim o heap sozinho pode tomar 70% do limite do recipiente e pré-toque mantém cada co...
O chat público lê suas páginas sem contar
Ambos os sites tomaram .getContent() e deixaram cair o total no chão, então ambos foram pagando pela mesma conta descartada sobre cada objeto na sessão que apen...
Tamanho do pod para a pilha que o JVM já está autorizado a tomar
O recipiente foi executado com um limite de 1Gi enquanto a imagem inicia o JVM com -XX:MáxRAMPercentagem=70 -XX:+SemprePreTouch. Leia o processo ao vivo, isto é...
Criar um tópico requer CREATE SUPPORT TOPICS, não o seu pai
O portão já estava lá e recusava chamadas — no GESTÃO SUPPORT, o pai — assim CREATE SUPPORT TOPICS lido como decorativo em cada editor enquanto sendo exatamente...
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.