Przejdź do treści
KAMOUniverse

Changelog

Co nowego.

Każde ulepszenie platformy, jak to wysyła.

  1. · EmailService

    IMAP/SMTP-backed wysyłaj, folder i wyszukiwanie przekąsów

    Wyciąg wzorzec delegowania IMAP/SMTP do AbstractImapBackedCloudProvider I mają Zoho, IceWarp, Exchange, Google Workspace i Microsoft 365 To się robi. Klasa podstawowa implementuje MailSender, MailReader, FolderManager, i SearchProvider na górze EmailImapService, EmailSmtpService i SearchService — te same usługi używane przez KamoMail — tak: - wyślij / saveDraft work dla dowolnego dostawcy chmury z poświadczeniami SMTP. - Wszystkie operacje folderów (zatwórz / zmień nazwę / usuwanie / move / setFlags / TredMessage) działa za pośrednictwem IMAP. - Szukaj delegatów do istniejącej usługi wyszukiwania. - Czytaj operacje i inline cid: rendering kontynuuj przepływ przez Podzielony EmailImapService parser. Pozostałe ćwieki w każdym betonowym dostawcy — RealtimeNotifier (gdzie W przypadku usługi DomainManager i MailboxProvisioner — naprawdę potrzebują API administratorów (Microsoft Graph, Google Admin SDK, Zoho Admin API, EWS, IceWarp admin), które nie są jeszcze podłączone do tej bazy kodu. Każdy z nas stub ma teraz komentarz w stylu TODO, nazewnik API, który go zaimplementował.

  2. · EmailService

    Zatercony przez IMAP MailReader dla zagłuszacza w chmurze

    Zoho, IceWarp, Exchange, Google Workspace i Microsoft 365 ujawniają IMAP, Przejrzyj więc wszystkie metody MailReader dla każdego dostawcy chmury za pomocą EmailImapService Zamiast rzucać UnsupportedOperationException. To: - Odblokowuje odczytywanie wiadomości o tych dostawcach, gdy tylko poświadczenia IMAP są Skonfigurowane (najczęściejjsze wdrożenie dzisiaj). - Uczy nową zawartośćID / inline metadane metadanych jednolicie przez Każdy dostawca, ponieważ EmailImapService jest pojedynczym parserem. - Pozwala na rozwiązanie punktu końcowego w linii w linii: referencje dla każdego dostawcy. Pozostałe metody dostarczania w chmurze (wysyłanie, zarządzanie folderami, rezerwacja, Dome niespodziewanie nieobsługiwania — te potrzeby Użytkowniki dostawców i nie mają tu zasięgu. Dodaj również MailContext.toMailCredentials() tak dostawców (i istniejące Adapter KamoMailReader) udostępnia pojedynczy pomocnik konwersji porównawczej.

  3. · kamo-internal

    Render inline Cid: obrazy za pomocą nowego punktu końcowego EmailService

    Gdy wiadomość eksponuje części inline (każdy nosi treśćId), e-mail Renderator teraz przepisuje "img src""cid:..."> odniesienia w czasie montażu do - które teraz również pełnomocnik Przewiń Cache-Control na włączony, więc przeglądarka całuje napastowany obraz. - EmailAttachment (zarówno w konwersacjiTypes, jak i kopia lokalna w MessageBrowser) zyskuje pole contentID i inline. - SanitizedEmailRenderer akceptuje inlineImageBaseUrl + inlineContentIds; Cid: imgs, przepisuje znane cydry i ukrywa resztę, z istniejącymi Posługa osób z przerażeniem jednorazowym wciąż ukrywającym każdy inny zepsuty obraz. - Dedykowane odebranie cytryny, które żyło w dezynfekcie, jest przywrócone - Przepisywanie należy do renderowania, gdzie istnieje kontekst wiadomości. - Widoczne załączniki z listy w ThreadDetailView i MessageBrowser Filtry inline części, więc wbudowane logotypy nie są już wyświetlane jako Załączniki do pobrania.

  4. · EmailService

    Podawać w linii obrazu MIME części i powierzchowy metadane Content-ID

    Renderuj "img src"cid:..."> w komunikatach UI poprzez ujawnienie części w linii To do odniesienia przez ciało HTML. - AttachmentInfo zyskuje zawartośćId (bez wsporników kątowych) i flagę w linii. - parseMultipart i getAttachment share a single isAttachmentPart predicate i rekurencyjny spacerowicz, więc części wbudowanych wewnątrz wieloczęściowy / powiązany Są przechwytywane (a ich indeksy pozostają wyrównane w dwóch metodach). Poprzednio rekurencja napisała listę załączników rodzica, która Upuścił również prawdziwe przystawki w zagnieżdżonych strukturach. - hasAttachment jest teraz napędzany tylko przez części nieinlinowe - podpis logo nie Dłużej zapalić spinacz do każdej wiadomości. - Nowy punkt końcowy GET - na obu EmailController i współdzielonyMailboxMailMailController; rozwiązuje cid przez Parsed AttachmentInfo, przesyła część z Content-Disposition: inline I Cache-Control: prywatny, max-age?3600.

  5. · KlusterServices

    Dodaj skrzynkę pocztową .kamorm.com i zewnętrzny IMAP NodePort

    - Nowa usługa mail/dovecot-imap-external (NodePort 30143 -> 143), więc IMAP można dotrzeć spoza klastra na $NODE:30143. - Seed pricing-kamorm.com w mysql-init, więc świeży DB bootstrap odtwarza skrzynkę pocztową; wiersz na żywo jest już obecny w MySQL.

  6. · kamo-internal

    Przeprojektuj czatyList rzędy — elegancki układ, brak poziomego przewijania, kropki online, nieprzeczytana odznaka, względne znaczniki czasu

  7. · MediaService

    Dodaj punkt końcowy GET /sesje/-guid/members z priorytetem nazwy wyświetlacza

    Lista członków zwraca z nazwą rozwiązaną za pomocą nazwy użytkownikaAlias - pełnaName - alias - nazwa użytkownika, Dopasowanie tego samego priorytetu co lista sesji czatu. To zawiera ChatBox.loadMembers() paska tytułów okienka narzędzia może pokazać poprawną preferowaną nazwę.

  8. · kamo-internal

    Tytuł okna narzędzia do wyboru i wysyłki od członków sesji

    Dodaje onMembersChange callback do ChatBox; ChatTool wywodzi tytuł (pojedyncza nazwa dla 1 na 1 lub ''na nazwa> (+N więcej' dla grup) i depeszy Narzędzie: uprawa do dynamicznej aktualizacji paska tytułowego ToolWindowShell.

  9. · kamo-internal

    Wyszukiwarka powyszeni powyżek powyżek po stronie paska kart, podziel się zapytaniem między tabelami Członkowie i

    Przenosi wyszukiwanie TextField z MemberList do NavTopPanel nad Tabs. Przekazuje searchQuery jako rekwizyt zarówno do MemberList, jak i ChatsList tak jedno pole Filtruje obie zakładki. ChatsList filtruje wiersze, dopasowując imię użytkownika niebędące samolubem.

  10. · MediaService

    Rozszerzanie nieprzeczytanej transmisji z ładunkiem ACTIVITY dla aktualizacji listy czatów

  11. · kamo-internal

    Aktualizacje na żywo-lista za pośrednictwem kanału nieczytanego NATS

  12. · kamo-internal

    Tabs dla członków / czaty w panelu centrum interakcji

  13. · kamo-internal

    Lista czatów z nieskończonym przewijaniem, zwirtualizowana przez IntersectionObserver

  14. · kamo-internal

    Wieloselekt w MemberList do rozpoczynania czatów grupowych

  15. · kamo-internal

    Czatuj nagłówek ze stosem awatarów, wyskakującym tytułem i zbieraczami członków

  16. · kamo-internal

    Kompozytor z przeciągnij-kropl, oczekujące chipsy mocujące, wejście wieloliniowe

  17. · kamo-internal

    Bańka wiadomości z awatarami, akcjami unoszącymi się i widocznym wskaźnikiem

  18. · kamo-internal

    Inline rendering i lightbox

  19. · kamo-internal

    Rodzaje klientów i haczyki do sesji, paragony, załączników

  20. · kamo-internal

    Trasy proxy do find-or-create, członków, załączników, proxy do obrazowania, wyciszeń,

    Wyodrębnij współdzielonego pomocnika do aplikacji/lib/mediaServiceUrl.ts. Dodaj trasy proxy: find-or-create, członkowie, paragony, załączniki (użytkły), wyciszenia, cofnięcie,

  21. · MediaService

    Wpisy Configmap dla limitów załączników i wieloczęściowych

  22. · MediaService

    Lista czatu Paged z podglądami, członkami, nieprzeczytanymi liczbami

    To zwraca wiersze ChatListRowDto, w tym ostatni podgląd wiadomości, członek Suma podsumowań, liczby nieprzesłyczawek na sesji i własneLastViewedAt.

  23. · kamo-shared-library

    Dodaj countUnread After (przewodnik, członekId, od tego czasu) do MediaObjRepository

    Potrzebny przez stronniczony punkt końcowy listy czatu, aby obliczyć liczbę nieprzestrzegania sesji Kiedy ownLastViewedAt jest wskaźnikem LocalDateTime, a nie wiadomości UUID.

  24. · MediaService

    Real NATS wydawca impl i READ_RECEIPT

  25. · MediaService

    Per-viewer wycisz punkt końcowy i filtr wiadomości

  26. · kamo-shared-library

    Dodaj do MediaSessionMuteRepository

  27. · MediaService

    Serwer proxy z obsługą HTTP Range i śledzenie pobierania na osobę

  28. · kamo-shared-library

    Dodaj do koszykaBObjImgDownloadRepozytorium z istniejącymObjgIdIdIdImberId

    Wymagane przez ImagingProxyService (Task 10) do deduplikacji na osobę Śledzenie pobierania bez pełnego skanowania stołu.

  29. · kamo-shared-library

    Dodaj CHAT_ATTACHMENT typu assoc z wiadrem do obrazowania-czatatów

  30. · kamo-shared-library

    Metody usługowe do dokładnego znajdowania/tworzenia, dodawanie członków, wyciszania, cofania, czytania

Twój wszechświat czeka.

Rozpocznij bezpłatnie w kilka minut.Dodaj produkty, kiedy tylko będziesz gotowy — bez migracji, bez nowych logowań.

Bezpłatne na zawsze — nie wymaga karty kredytowej