Değişiklik Günlüğü
Yeni ne var?
Gemideki her iyileştirme.
· EmailService
IMAP/SMTP-backed gönderi, klasör ve bulut meraklıları aramak
IMAP/SMTP delegasyonu AbstractImapBackedCloudProvider Zoho, BuzWarp, Exchange, Google Workspace ve Microsoft 365 genişliyor Bu. Temel sınıf MailSender, MailReader, KaterManager ve ve AramaProvider e-postaImapService, E-postaSmtpService ve SearchService üst kısmında - aynı hizmetler KamoMail kullanır - bu yüzden: - SMTP kimlikleri ile herhangi bir bulut sağlayıcı için kurtarma / kurtarmaDraft çalışması. - Tüm klasör işlemleri (create / yeniden / sil / hareket / setFlags / deleteMessage) IMAP aracılığıyla çalışır. - Mevcut Arama Hizmetine delegeler. - Operasyonları okuyun ve inline cid: Uygulama devam etmeye devam paylaşılan EmailImapService .. Kalan her beton sağlayıcısındaki boşluklar - Gerçek Zamanlayıcı (yerde bir yerde) uygulanabilir), DomainManager ve MailboxProvisioner - gerçekten ihtiyaç sağlayıcısı-native admin APIs (Microsoft Graph, Google Admin SDK, Zoho Admin API, EWS, BuzWarp yöneticisi) henüz bu codebase'e telmiyor. Her biri her stub şimdi onu uygulayacak API'yi isimlendiren bir TODO tarzı yorumu taşıyor.
· EmailService
IMAP-backed MailReader için bulut-provider stubs
Zoho, BuzWarp, Exchange, Google Workspace ve Microsoft 365 her şey IMAP'ı ortaya koyuyor. Bu yüzden her bulut-provider stub's MailReader e-postaImapService aracılığıyla yöntemler UnsupportedOperationException atmak yerine. Bu: - Sadece IMAP kimlikleri olduğunda bu sağlayıcıların mesajlarını okumak (Bugün en yaygın dağıtım). - Yeni içerikId/inline ek metadata akışı düzgün bir şekilde boyunca yapar Her sağlayıcı, E-postaImapService tek . olduğundan. - Inline-image endpoint çözelim cid: herhangi bir sağlayıcı için referanslar. Kalan bulut-provider yöntemleri (sending, klasör yönetimi, düzenleme, domain ops) hala desteklenmeyen birOperationException - bu ihtiyaç Sağlayıcı-native APIs ve burada kapsamaz. Ayrıca MailContext.toMailCredentials() so sağlayıcıları (ve mevcut olan kişiler). KamoMailReader adaptörü) tek bir kimlik doğrulama yardımcısını paylaşıyor.
· kamo-internal
Render inline cid: Yeni EmailService endpoint aracılığıyla görüntüler
Bir mesaj satır parçaları ortaya çıktığında (her biri bir içerik Id taşır), e-posta Former artık <img src="cid: ... Bağlantı zamanında referanslar **************** hangi proxy şimdi de aynı zamanda Bu nedenle tarayıcı önbellekli görüntüyü önbellekliyor. - E-postaAttachment (hem konuşmaTypes hem de yerel kopyada MesajBrowser) içerikId ve inline alanlarda kazanımlar sağlar. - SanitizedEmailRenderer inlineImageBaseUrl + inlineContentIds; on line cid: Tanıklar bilinen cids yeniden yazıyor ve geri kalanını saklıyor, mevcut olanlarla Terörist eller hala başka bir kırık görüntüyü saklıyor. - sanitizerde yaşayan özel cid striptiz yeniden yapılır - Yeniden yazı, mesaj bağlamının nerede var olduğu şeklindedir. - ThreadDetailView ve MesajBrowser İnline parçaları filtreler, böylece gömülü imza logoları artık görünmez indirilebilir ekler.
· EmailService
Inline image MIME parçaları ve yüzey Content-ID metadata
Render <img src="cid:..."> in the messages UI by maruz the inline parts HTML vücut referansları. Ayrıntılı bilgi için: a) ve inline bayrak. - parseMultipart and getAttachment share a single isAttachmentPart predicate Ve bir recursive walker, bu yüzden inline parçalar çoklu bölüm / ilgili bölümler içinde nested Yakalanır (ve onların indeksleri iki yöntem arasında hizalanır). Daha önce ebeveynin eks listesini geri almak, hangi Ayrıca yuvalanmış yapılarda gerçek ekleri bıraktı. -Attachment şimdi sadece doğrusal olmayan parçalar tarafından yönlendiriliyor - imza logoları hayır Artık her mesajda kağıtçıyı aydınlatın. - Yeni uç noktası GET **************** her ikisi de E-postaController ve PaylaşılanMailboxMailController; cid ile çözülür Parsed AmentInfo, Content-Disposition ile bölümü yayınlar: inline ve Cache-Control: özel, max-age=3600.
· KlusterServices
Fiyat ekle@kamocrm.com posta kutusu ve dış IMAP NodePort
- Yeni Servis posta/dovecot-imap-external (NodePort 30143 -> 143) bu yüzden IMAP, kümenin dışından $NODE:30143'te ulaşılabilir. - Tohum fiyatlandırması@kamocrm.com in mysql-init so a fresh DB Bottrap Posta kutusu yeniden yaratır; canlı satır zaten Natasha'da bulunur.
· kamo-internal
Yeniden tasarım ChatsList rows – zarif düzen, yatay bir kaydırma, online dots, daha kötüge, göreceli zamantamps
· 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.
· 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.
· 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.
· MediaService
Augment, sohbet listesi güncelleştirmeleri için ACTIVITY maaş yükü ile yayınlanmadı
· kamo-internal
Canlı sohbetler listesi NATS aracılığıyla güncellenmektedir
· kamo-internal
Üyeleri / sohbetleri etkileşim merkezi panelinde
· kamo-internal
Sonsuz kaydırma ile Chats listesi, IntersectionObserver aracılığıyla sanallaştırılmış
· kamo-internal
MemberList for beginning group chats
· kamo-internal
Avatar yığını, başlık popover ve üye picker
· kamo-internal
Drag-drop'la birlikte, ek cips bekleyen, multi-line giriş
· kamo-internal
Avatarlarla Mesaj balonu, gezi eylemleri ve gösterge gördü
· kamo-internal
Inline bağlanma ve ışık kutusu
· kamo-internal
Oturumlar için müşteri türleri ve kancalar, kuponlar, ekler
· kamo-internal
Find-or-create için Proxy rotaları, üyeler, ekler, proxy görüntüleme, mute, revoke
Paylaşılan ************ helper to app/lib/mediaServiceUrl.ts. Proxy rotaları ekleyin: aramalar, ekler (akım), mutes, geri dönüş,
· MediaService
Configmap entries for attachment limits and multipart
· 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.
· 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.
· MediaService
Real NATS publisher impl and READ_RECEIPT broadcast
· MediaService
Per-viewer mute endpoint and message filter
· kamo-shared-library
Ekle **************** to MediaSessionMuteRepository
· MediaService
Imaging proxy with HTTP Range support and per-member download tracking
· kamo-shared-library
Add MediaObjImgDownloadRepository with existsByObjImgIdAndMemberId
Required by ImagingProxyService (Task 10) to deduplicate per-member download tracking without a full table scan.
· kamo-shared-library
Add CHAT_ATTACHMENT assoc type with imaging-chat-attachments bucket
· kamo-shared-library
Service methods for exact-match find/create, member add, mute, revoke, read

Evreniniz sizi bekliyor.
Birkaç dakika içinde ücretsiz olarak başlatın. Hazır olduğunuzda ürünleri ekleyin - göç yok, yeni girişler yok.
Sonsuza kadar ücretsiz — kredi kartı gerekmiyor