Ukryj kartę ATF całkowicie, gdy wszystkie pola są zablokowane przez model stosowany
Probacja głównego modelu końcowego punktu końcowego i zaprawa ZastosowanaModel org ID
- Zamień bramę opartą na zastosowaniuModel.source-based z bezpośrednią sondą /api/security/master-model na górze; r.ok-false (409) oznacza org Jest regulowa...
Opcje karty cenzury bramy według zastosowanych ograniczeń modelu
- Ukryj przycisk EDIT MASTER MODEL, gdy org jest regulowany przez rodzaj gałęzi (użyj stosowanegoModel.source zamiast niewiarygodnej gałęzi kontekstu org) - U...
Mark-as-czytaj i wiadomości dla skrzynek pocztowych udostępnionych / członkowników
Tryb klasyczny ładuje teraz udostępnione wiadomości skrzynek pocztowych za pomocą poprawnego /messages/Afolder końcowy (wywołany nieistniejące /konwersje Punkt ...
Znak jak odczyt dla skrzynek pocztowych współdzielonych i członowych
EmailController.setFlags akceptuje teraz opcjonalną skrzynkę pocztową Param i Trasy przez resolveProviderWithMailbox, więc flagi członkowskie-mailbox są ustawia...
Użyj rozszerzeniaId jako identyfikator zewnętrzny, a nie węzeł przekaźnikowy id
FreePBX zwraca ten sam Relay (ZXh0ZW5zaW9uOg - "rozszerzenie:"). Każde rozszerzenie, ponieważ pole id nie jest zaludnione. Użycie go spowodowało wszystko Przedł...
Uchwyt IMAPInputStream w getMessage, aby zapobiec ClassCastException
JavaMail może zwrócić IMAPInputStream zamiast dekodowanych smyczowych z part.getContent() gdy treść wiadomości nie została wstępnie naciągnięta. Thezy, pocy i o...
Zwiększ TTL z lat 90-tych do 300, aby zapobiec fałszywemu OFFLINE na krojeniu karty
Przepisz wszystkie zapytania / dojazdy GQL przeciwko introspekcji schematu na żywo
Zweryfikować każdą nazwę pola i typ pod względem rzeczywistego schematu FreePBX 17. Pełny zestaw poprawek: Zapytania: - fetchAllExtensions: usunąć nieistniejąc...
Przekaż wybraneFolder do ThreadDetailView, więc e-mail:folder-changed fires z prawidłowym folderem
Rozmowa.folder jest zawsze niezdefiniowany, ponieważ Java ConversationEntity Nie ma pole ciągów folderId (tekst[]) nie jest to pole ciągnące folderów. Spowodowa...
Poprawna nazwa pola GraphQL do fetchAsteriskOkaz
FreePBX API zwraca "Czy chodziło ci o fetchAsteriskDetails?" - zmienić nazwę na zdrowie Zapytanie i odpowiednia akcetor jego ścieżki danych.
Dodaj nagłówki XHR / Accept i analizowanie reakcji na String do klienta GraphQL
Ten sam wzór, co FreePBXTokenCache: dodaj X-Requested- + Accept: application/json Aby stłumić odpowiedzi przekierowania HTML FreePBX i zmienić wszystkie trzy st...
Zsynchronizuj skrzynkę pocztową do podstawowej skrzynki pocztowej na ładunku
Dropdown domyślnie domyślnie elementu pierwszej listy, ponieważ zaznaczoneMailbox zainicjowane Bez skrzynki pocztowejId, powodując, że pkt. pkt. pkt., które prą...
Podniesienie limitu rozmiaru przesłania plików do 500 MB
Domyślne domyślne nakrętki na wielu części na 1MB, powodując obraz tła uploads do niepowodzenia z 500 w request.getParts(). Match SecurityService's Istniejące l...
Błędy HTTP powierzchniowe, więc awarie przesyłania są widoczne
Zastąpiony cichy console.warn z rzuconym błędem na statusie niebędącym OK, Tak więc użytkownik widzi faktyczną przyczynę awarii (status + body response) Zamiast...
Dodaj nagłówki Accept + XHR i analizowanie odpowiedzi surowych dla punktu końcowego tokena
FreePBX zwracał tekst/html, gdy był nazywany za pomocą klastra DNS, ponieważ Nagłówek hosta nie pasował do skonfigurowanego PBX_HOSTNAME. Dodawanie Akceptuj: ap...
Prowadź zminimalizowane wejście do taśmy poprzez sterowanie animacją
Przełącze animowane... na animate-tabControls złamało wpis Animacja: tabControls nie ma żadnego celowania na górze, więc przycisk pozostał W jego początkowej po...
Prawidłowe ciągi lune OAuth2 dla FreePBX API
Zakresy FreePBX to identyfikatory najwyższego poziomu: 'gql' (wszystkie GraphQL) i "Odpoczynek" (wszystkie REST). Format 'gql:czytaj' oznacza GQL dla modułu Naz...
Port wystawowy 8088 bezpośrednio w usłudze ClusterIP
Usługa miała tylko mapowanie portów 80-8088. Usługi wewnętrzne z wykorzystaniem (np. Krył API VOIPService Żądania) były wygaśnięciem czasu, ponieważ port 8088 n...
Zaufanie w toku na tonieCoń, drop client offsets
Backend onending onendingCo to jest teraz nieprzeczytane (liczby SUPPORT_TICKET Sesje Z wiadomościami nowszymi niż ostatni widok właściciela). Kiedy agent się o...
Dodaj brak fail2ban-config ConfigMap dla k1m1
Odniesienia do wdrożeń fail2ban-config ConfigMap (jail.local + Asterisk-security.conf) ale nie istniał, blokując kapsułę na MountVolume.Setup i zapobiegając roz...
MarkAsCzytaj po agentie wysyła tak ostatnie Wyświetlone zaliczki
W przypadku biletów wsparcia zarówno wiadomości odwiedzającego, jak i agenta są przechowywane pod Tego samego systemMemeniura, więc zapytanie o nieprzeczytane j...
Bilety wsparcia wymagają nieczytanych liczby członków agnostycznych
Wiadomości zwiedzających na biletach wsparcia są przechowywane w tym samym systemieMemberat Aby agent uwierzytelnił, tak jak istniejąca sesja CHAT-sesja nieczyt...
Podaj folder do przycisku loadThread retry
Błąd nośny ujęcia (threadId, folder); tylko przycisk próbowania w stanie błędu Mijał threadId, łamiąc kamo-wewnętrzną budowę. Dopasuj wezwanie do Podpis.
Poprawna własność JsonIdentityInfo od "niepowtarzalnego" do "id"
Podmiot członowy zadeklarował „JsonIdentityInfo” (własność – „niepowtarzalny”) ale Rzeczywiste pole kluczy pierwotne nazywa się "id". Jackson rzucił "nie można ...
Usuń osłonkę SSR powodującą niedopasowanie nawilżenia; drop SockJS dla natywnego WebSocket
- Hero.tsx: kontrola okna typu typeof wokół ParticleField — ParticleField Ma ssr:false, więc osłona wytworzyła niedopasowanie drzewa server/client (React . - ...
Jasne nieprzeczytane wskaźniki po otwarciu rozmowy
ThreadDetailZobacz teraz wysyła e-mail:folder-changeed po markConversationRead Odnosi się sukces, więc MailButton ponownie ścina navtop odznak odbiorczy. Konwer...
Przenieś CORS do Traefik za pośrednictwem kamo-middlewares, usuń w aplikacji CorsFilter
Aplikacja CorsFilter w Spring bezpiecznie nie stosowała nagłówków po tym, jak WebConfig.java został usunięty. CORS jest teraz całkowicie obsługiwany w warstwie ...
Używaj /public/-main--main-'tld' ścieżka dopasowująca rzeczywisty układ wiader MinIO
getThemePath() generował /domena/-tld'/'split'/kamosite paths, które Nie istnieje w MinIO — pliki tematyczne na żywo w wiadrze publicznymi kamocrm-com/, baddi3-...
Zerwanie łańcucha min-w-0, aby zawierał przewijanie e-mail tylko w kolumnie ciała
Dodaj min-w-0 do zewnętrznego pojemnika i głównej zawartości flex div, aby flex dzieci Nie można rozszerzać do szerokości wiadomości e-mail min-content, która p...
Dostawcy usług hostyk powyżej ToolProviders
Ta sama przyczyna, co wciągnik dla ChatWebSocketProvider: SupportTicketWindow Rozmowy - i rozmowy ChatBox użyjUnread().markAsRead(), ale oba okna narzędzi rende...
Dodaj tłumienieHydrationWarning i napraw uszkodzone obrazy zastępcze
TłumienieHydrationWarning na ?html> zapobiega błędowi React 418 spowodowanym przez przeglądarkę rozszerzenia (np. tłumaczenia, tryb ciemny) mutujące atrybuty ht...
Zezwalaj /domena / prefiks ścieżki na temat IngressRoute dla CORS
Temat na tematyce.kamormm.com/domena/... nie był dopasowany przez Istniejące zasady trasy (dozwolono tylko /public/ i /wewnętrzne/), więc Traefik Zwrócił 503 be...
Usuń duplikaty CorsFilter i pasek podstruuszaj nagłówki CORS w bramie
WebConfig.java zdefiniował drugą fasę CorsFilter konkurującą z CorsConfig.java fasoli, ryzykując duplikat nagłówka. Usunięto go tak, że istnieje tylko jeden Cor...
Usuń duplikat CorsFilter, powodujący podwójną nagłówek Access-Control-Allow-Origin
Wyraźny fasor i fasor CorsFilter spowodował drugi filtr CORS obok wiosny Wbudowana obsługa CORS zabezpieczeń (w tym, która wykorzystuje CorsConfigurationSource)...
Usuń debugowe instrukcje console.log i dodaj brakujące trasy
Usuń wszystkie tymczasowe rejestrowanie debugowania dodane podczas śledzenia WebSocket z ChatBox, TicketChat, MemberItem, ChatTool i useChatWebSocket; /help /su...
Zapobiegaj nagłówku wiadomości od rozszerzania kolumny na długich adresach
Lewe dziecko z elastycznym nagłówka nie miało min-w-0, tak długi nie do złamania e-maila Adresy w From/To/Cc zmusiły swoją szerokość zawartości min do wzrostu, ...
Hoist ChatWebSocketProvider powyżej ToolDostawcy
ToolDock (i jego okna narzędziowe, takie jak SupportTicketWindow - TicketChat) Zamontowany wewnątrz ToolProviders, który siedzi ABOVE PresenceWrapper na drzewie...
Drop Shadow DOM w rendere e-mail, więc przelew-x-auto strzela
Shadow DOM był przyczyną. Szeroka zawartość e-mail (postawy o stałej szerokości) Wewnątrz cienia drzewo pomalowane obok gospodarza bez przyczyniania się do Pude...
Align ChatWebSocketKonstekstowa ścieżka importu do dostawcy dopasowania
TicketChat i ChatNotificationListener zaimportowali kontekst za pośrednictwem "/app/contexts/..." alias, podczas gdy Oświadomość OFOwra (dostawca) importuje go ...
Siła cienia hosta z inline style + zawierają: layout
Klasa oparta na przepełnieniu-syfikatorze w cieniu nie była niezawodnie wygrywana W stosunku do cienia ':host' - all: initial ? '' reset, więc szeroki e-mail Za...
Przewiń szeroką zawartość e-mail w cieniu DOM, a nie na zewnątrz
Poprzednie próby dodawania przepełnienia-x-auto do światła przodków DOM Nie mógł złapać szerokiej zawartości e-mail, ponieważ jest to wizualne drzewo cienia Prz...
Użyj getHasAttachments() aby dopasować typ owijania Boolean
- jest boolejanem (wrapper), więc Lombok generuje getHasAttachments() nie isHasAttachments(). Te ostatnie tylko Istnieje dla prymitywnego booleana. Użyj Boolean...
Rozwiń skan repozytorium JPA, aby uwzględnić pakiet handlowy
Nowa kamo-wspólna biblioteka wprowadza w sobie : . Co wymaga ? (w com.kamo.z.shared.commerce). MediaService przeskanowany tylko donotmodify.dao.repos, więc brak...
Przywróć import HashMap w ChatWebSocketController
Poprzednia refaktorka usunęła import HashMap, ale uchwytTyping Metoda nadal konstruuje HashMap do ładowności typowania zdarzeń, powodując Forgejo buduje do pora...
Dodaj min-w-0 do treści e-mail div tak przelewowe-x-auto strzały
Bez min-w-0, flex-col domyślna minuta:automatyczna jest rozwiązywać min-content, pozwalając szerokim stołom e-mail rozszerzyć div obok kolumny Szerokość. Z zewn...
Usuwanie duplikaty połączenia connectStomp w sendMessage
Gdy pierwsza wiadomość utworzy nową sesję, onSessionCreated aktualizuje rekwizyty Który wyzwalacz używaEffect, aby wywołać connectStomp. Inline call in sendMess...
Proaktywnie tworzyć konsumenta NATS podczas tworzenia sesji, aby zapobiec utracie wiadomości
Wcześniej konsument NATS JetStream został utworzony tylko wtedy, gdy klient STOMP Wysłano /app/chat/subskrypcja. Z DeliverPolicy.Nowe, wszelkie wiadomości publi...
Close rekoneks nieosłaniającej luki powodujące upuszczanie wiadomości w czasie rzeczywistym
Usuń „połączony” z subskrypcjiEffect deps w TicketChat i ChatBox. Wcześniej każde połączenie WebSocket wywołało efekt Sprzątanie, które wywołało unsubscribe(), ...
Zezwalaj użytkownikowi system na zarządzanie org branding i naprawianie logo auth
- Dodaj obejście użytkownika systemu jako pierwsza osłona w canManageOrgBranding, więc platforma Użytkownik systemu ma pełną kontrolę marki na wszystkich nie-...
Jak to, co widzisz żeglugę?
Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.