Ir para o conteúdo
KAMOUniverse

Changelog

O que há de novo.

Cada melhoria para a plataforma, como ele envia.

  1. · EmailService

    IMAP/SMTP-backed enviar, pasta e procurar por stubs de nuvem

    Extrair o padrão de delegação IMAP/SMTP em AbstractImapBackedCloudProvider e ter Zoho, IceWarp, Exchange, Google Workspace, e Microsoft 365 estender Ele. A classe base implementa MailSender, MailReader, FolderManager, e SearchProvider no topo do EmailImapService, EmailSmtpService e SearchService — os mesmos serviços que o KamoMail utiliza, - envie / salveTrabalho de draft para qualquer provedor de nuvem com credenciais SMTP. - Todas as operações de pastas (criar / renomear / excluir / mover / setFlags / deleteMessage) funciona através do IMAP. - Procurar delegados para o serviço de pesquisa existente. - Operações de leitura e cid em linha: a renderização continua a fluir através do e-mail compartilhadoImapService parser. Os restos de cada fornecedor de betão — Aviso em tempo real (em que aplicável), DomainManager, e MailboxProvisioner — realmente precisa APIs de administrador nativas do provedor (Microsoft Graph, Google Admin SDK, Zoho Admin API, EWS, IceWarp admin) que ainda não estão ligados a esta base de códigos. Cada stub agora carrega um comentário estilo TODO nomeando a API que iria implementá-lo.

  2. · EmailService

    MailReader apoiado por IMAP para os stubs de provedor de nuvem

    Zoho, IceWarp, Exchange, Google Workspace e Microsoft 365 expõem IMAP, Então, envie os métodos MailReader de cada provedor de nuvem através do EmailImapService em vez de lançar Operação Não SuportadaExcepção. Isto: - Desbloqueia a leitura de mensagens nesses provedores quando apenas credenciais IMAP são configurada (a implantação mais comum hoje). - Faz com que o novo conteúdoId/inline de metadados de anexos flua uniformemente cada provedor, uma vez que EmailImapService é o analisador único. - Permite que o endpoint inline-image resolva cid: referências para qualquer provedor. Os restantes métodos de fornecimento de nuvem (envio, gestão de pastas, provisionamento, domain ops) ainda não são suportadosOperaçãoExcepção — essas necessidades APIs provedor-nativas e não estão em escopo aqui. Também adiciona MailContext.toMailCredentials() para provedores (e os existentes Adaptador KamoMailReader) compartilhar um único helper de conversão de credenciais.

  3. · kamo-internal

    Renderizar cid em linha: imagens através do novo endpoint do EmailService

    Quando uma mensagem expõe partes em linha (cada uma carregando um conteúdoId), o email renderer agora reescreve <img src="cid:..."> referências no tempo de montagem para * ************* que o representante agora também encaminha o Cache-Control para que o navegador faça cache na imagem obtida. - EmailAttachment (tanto em conversaçãoTypes e a cópia local em MessageBrowser) ganha campos de conteúdoId e inline. - SanitizedEmailRenderer aceita inlineImageBaseUrl + inlineContentIds; on cid: imgs reescreve cids conhecidos e esconde o resto, com o onerror handler ainda escondendo qualquer outra imagem quebrada. - Reverte-se o desfibrilador dedicado que vivia no higiénico. reescrever pertence ao tempo de renderização, onde o contexto da mensagem existe. - A lista de anexos visíveis no ThreadDetailView e MessageBrowser filtra as peças em linha para que os logotipos de assinatura incorporados já não apareçam como anexos para download.

  4. · EmailService

    Servir imagens em linha partes MIME e metadados de superfície Content-ID

    Renderize <img src="cid:..."> nas mensagens UI, expondo as partes em linha que o corpo HTML se refere. - AnexoInfo ganha conteúdoId (sem parênteses de ângulo) e bandeira em linha. - processarMultipart e getAttachment compartilhar um único isAttachmentParte predicate e um caminhante recursivo, por isso em linha peças aninhadas dentro multiparte / relacionado são capturados (e seus índices permanecem alinhados entre os dois métodos). Anteriormente, a recursão sobrescrevia a lista de anexos do pai, que também deixou cair anexos reais em estruturas aninhadas. - o acesso é agora conduzido apenas por peças não-in-line — logótipos de assinatura mais tempo iluminar o clipe de papel em cada mensagem. - Novo ponto final. EmailController e SharedMailboxMailController; resolve cid através do Anexamento analisadoInfo, transmite a parte com Conteúdo-Disposição: inline e Cache-Control: privado, max-age=3600.

  5. · KlusterServices

    Adicionar preço@kamocrm.com caixa de correio e IMAP NodePort externo

    - Novo correio de serviço/dovecot-imap-external (NodePort 30143 -> 143) IMAP pode ser alcançado de fora do cluster em $NODE:30143. - Preço de sementes@kamocrm.com em mysql-init para um bootstrap DB fresco recria a caixa de correio; a linha ao vivo já está presente no MySQL.

  6. · kamo-internal

    Reprojetar ChatsLista de linhas — layout elegante, sem rolagem horizontal, pontos online, crachá não lido, datas relativas

  7. · MediaService

    Add GET /sessions/{guid}/members endpoint with display-name priority

    Returns member list with name resolved via usernameAlias → fullName → alias → username, matching the same priority as the chat sessions list. This feeds ChatBox.loadMembers() so the tool window title bar can show the correct preferred name.

  8. · kamo-internal

    Derive and dispatch tool window title from session members

    Adds onMembersChange callback to ChatBox; ChatTool derives the title (single name for 1-on-1, or '<name> (+N more)' for groups) and dispatches tool:title to update the ToolWindowShell title bar dynamically.

  9. · kamo-internal

    Lift search above tab strip, share query across Members and Chats tabs

    Moves the search TextField from MemberList into NavTopPanel above the Tabs. Passes searchQuery as a prop to both MemberList and ChatsList so a single field filters both tabs. ChatsList filters rows by matching any non-self member's name.

  10. · MediaService

    Aumente a transmissão não lida com carga útil da ACTIVITY para atualizações da lista de chats

  11. · kamo-internal

    Atualizações da lista de chats ao vivo via canal NATS não lido

  12. · kamo-internal

    Páginas para membros/chats no painel do centro de interação

  13. · kamo-internal

    Lista de conversas com rolagem infinita, virtualizada via IntersectionObserver

  14. · kamo-internal

    Multi-selecionar na Lista de Membros para iniciar chats em grupo

  15. · kamo-internal

    Cabeçalho de bate-papo com pilha avatar, popover de título e selecionador de membros

  16. · kamo-internal

    Compositor com drag-drop, chips de anexos pendentes, entrada multi-linha

  17. · kamo-internal

    Bubble de mensagem com avatares, ações hover e indicador visto

  18. · kamo-internal

    Renderização de anexos em linha e caixa de luz

  19. · kamo-internal

    Tipos de clientes e ganchos para sessões, recibos, anexos

  20. · kamo-internal

    Rotas de proxy para encontrar ou criar, membros, anexos, proxy de imagem, mudo, revogar

    Extrair compartilhado ********** Ajudador para app/lib/mediaServiceUrl.ts. Adicionar rotas proxy: find-or-create, membros, recibos, anexos (streaming), mudos, revogar,

  21. · MediaService

    Configmap entries for attachment limits and multipart

  22. · MediaService

    Paged chat list with previews, members, unread counts

    that returns ChatListRowDto rows including last message preview, member summaries, per-session unread counts, and ownLastViewedAt.

  23. · kamo-shared-library

    Add countUnreadAfter(guid, memberId, since) to MediaObjRepository

    Needed by paged chat-list endpoint to compute per-session unread counts when ownLastViewedAt is a LocalDateTime pointer rather than a message UUID.

  24. · MediaService

    Real NATS publisher impl and READ_RECEIPT broadcast

  25. · MediaService

    Per-viewer mute endpoint and message filter

  26. · kamo-shared-library

    Adicione ************* para MediaSessionMuteRepository

  27. · MediaService

    Imaging proxy with HTTP Range support and per-member download tracking

  28. · kamo-shared-library

    Add MediaObjImgDownloadRepository with existsByObjImgIdAndMemberId

    Required by ImagingProxyService (Task 10) to deduplicate per-member download tracking without a full table scan.

  29. · kamo-shared-library

    Add CHAT_ATTACHMENT assoc type with imaging-chat-attachments bucket

  30. · kamo-shared-library

    Service methods for exact-match find/create, member add, mute, revoke, read

Seu universo está esperando.

Comece gratuitamente em minutos.Adicione produtos sempre que estiver pronto — sem migração, sem novos logins.

Gratuito para sempre — não é necessário cartão de crédito