Logging zum UploadBackground Endpunkt hinzufügen
Log org/index, Dateiinfos, userId, authene Entscheidungen und MinIO-Staging Schlüssel, um zu verfolgen, warum Hintergrund-Uploads nicht in Staging Bucket ersche...
Logging zur Upload-Background-Proxy-Route hinzufügen
Log org/index, Dateiname/Größe/Typ und upstream-Antwortstatus um zu diagnostizieren, warum Hintergrund-Uploads den APIService nicht erreichen.
Orts-Spalte zu Ticket Datagrid hinzufügen
Liest ************ direkt aus dem SupportTicketDTO (jetzt Schnappschüsse auf der Ticket-Entität zu Erstellungszeit - keine Extra-Rundreise). Renders Flagge + St...
Store Geo auf Ticket bei der Erstellung, Drop GeoLite liest
**************** fängt jetzt das Geo des Besuchers ein einmal (via GeoLookupService) und fortbesteht ip/country/city/subdivision on das SupportTicket selbst. S...
Snapshot Besucher Geo auf Ticket-Entität
VISITOR_IP_ADDRESS, VISITOR_COUNTRY_CODE, VISITOR_COUNTRY_NAME, VISITOR_CITY, VISITOR_SUBDIVISION Spalten. Gefangen bei der Ticket-Erstellung so die Liste/detai...
Bulk-Lot-Besucher und überspringen GeoLite Lookup in der Liste
Der Endpunkt /api/support/tickets list lief, pro Seite von 20 Zeilen: - 20 ************ Anrufe (N+1) - 20 Anrufe in GeoLookupService.lookup, von denen jeder...
findBySessionGuidIn für die Massenbelastung hinzufügen
Wird durch den Endpunkt der Support-Ticket-Liste, um alle Besucher für eine zu holen Seite in einer Abfrage anstelle von N separaten findBySessionGuid-Anrufen.
Pass-Ordner zum Laden vonThread-Retry-Button
loadThread takes (threadId, Ordner); nur der Fehler-State-Retry-Button übergeben ThreadId, brechen die kamo-internen Build. Passen Sie den Aufruf an die Signatu...
Rebuild zu holen Mitglied JsonIdentityInfo fix von kamo-shared-Bibliothek
kamo-shared-Bibliothek b57d156 fixes @JsonIdentityInfo(Eigentum = "uniqueId") "id" auf Mitglied, Lösung von 400 Fehlern auf PUT /api/security/org/{id'.
Korrigieren JsonIdentityInfo Eigenschaft von 'uniqueId' zu 'id'
Mitgliedsunternehmen erklärt @JsonIdentityInfo(Eigentum = "uniqueId") aber die das tatsächliche Primärschlüsselfeld wird 'id' genannt. Jackson geworfen "kann ke...
Fügen Sie /ws/public-chat-native plain WebSocket Endpoint neben SockJS hinzu
Registriert einen zweiten STOMP Endpunkt ohne SockJS bei /ws/public-chat-native so dass sich das Frontend ohne Notwendigkeit mit einem nativen WebSocket (broker...
Entfernen SSR Wache verursacht Hydratation Mismatch; Drop SockJS für native WebSocket
- Hero.tsx: Entfernen Sie Typ-Fenster-Check um ParticleField bereits hat ssr:false, so dass der Wächter ein Server/Client-Baum-Mischung produziert hat (Reagie...
Pro-Ticket ungelesener Abzeichen + 'Nur neue Nachrichten' Filter
- Ticketliste zeigt eine Chat-Bubble-Plakette mit der ungelesenen Zählung neben Ticket# wann immer die Sitzung Nachrichten hat, die neuer sind als die des Age...
Sendung ungelesen zählt zu Agent auf Besucher-Nachricht
Nachdem ein Besucher eine Support-Nachricht sendet, schieben Sie die neuesten ungelesenen Zähler Nutzlast für ************ so die Ticket-Liste des Agenten Abzei...
SUPPORT_TICKET-Sitzungen in ungelesene Mitgliedschaftsfrage einschließen
findChatMembershipsByMemberId gibt jetzt Mitgliedschaften für CHAT und SUPPORT_TICKET Sitzungstypen, also die bestehende ungelesige Zahl pro Mitglied Infrastruk...
Klare ungelesene Indikatoren, wenn Konversation geöffnet wird
ThreadDetailView sendet jetzt E-Mail:folder-changed after markConversationRead ist so MailButton renoviert die nvtop Inbox-Plakette zählen. ConversationListView...
CORS zu Traefik über Kamo-Middlewares bewegen, In-App entfernen
Die CorsFilter @Bean in der Frühjahrs-App war still nicht Anwendung Header nach WebConfig.java wurde entfernt. CORS wird nun vollständig an der Traefik-Schicht ...
Verwenden /public/{mainDomain"-{tld" Pfad passend zum tatsächlichen MinIO-Eimer-Layout
Der getThemePath() erzeugte /domain/{tld'/{split'/kamosite Pfade, nicht in MinIO existieren - Themendateien live in der Öffentlichkeit Eimer unter kamocrm-com/,...
Break min-w-0-Kette, um E-Mail-Scroll in Körperspalte enthalten
Fügen Sie min-w-0 zu äußeren Behälter und Hauptinhalt flex div so flex Kinder kann nicht auf E-Mail-Min-Content-Breite erweitern, was die Seite-weite verursacht...
Hoist Anbieter über ToolProviders
Die gleiche Ursache wie der ChatWebSocketProvider Hebeer: SupportTicketWindow Anrufe ************ und ChatBox-Anrufe useUnread().markAsRead(), aber beide Werkze...
Hinzufügen von unterdrückenHydrationWarning und reparieren defekte Platzhalter-Bilder
suppressHydrationWarnung auf <html" verhindert React-Fehler #418 durch Browser verursacht Erweiterungen (z.B. übersetzen, dunkler Modus) mutierende html-Attribu...
Lassen /domain/ Pfad-Präfix auf Thema IngressRoute für CORS
Das Thema Konfiguration unter theme.kamocrm.com/domain/... wurde nicht von der bestehende Streckenregeln (nur / öffentlich/ und /intern/ erlaubt), also Traefik ...
Entfernen Sie doppelte CorsFilter und Streifen upstream CORS-Header im Gateway
WebConfig.java definierte eine zweite CorsFilter-Beine, die mit CorsConfig.javas konkurrierte Bohnen, riskieren doppelte Header schreibt. Gelöscht es, so dass n...
Entfernen Sie Duplikat CorsFilter-Beine verursacht doppelte Access-Control-Allow-Origin-Header
Die explizite CorsFilter-Bohne verursachte neben Spring einen zweiten CORS-Filter Die integrierte CORS-Unterstützung von Security (die CorsConfigurationSource v...
Entfernen debug console.log-Anweisungen und fügen Sie fehlende Routen hinzu
Entfernen Sie alle temporären debug Logging hinzugefügt während WebSocket-Tracing aus ChatBox, TicketChat, MemberItem, ChatTool und nutzenChatWebSocket; hinzufü...
Verhindere Nachrichten-Header von Erweiterung Spalte auf langen Adressen
Das linke Flex-Kind des Headers hatte keine min-w-0, so lange unzerbrechliche E-Mail Adressen in From/To/Cc zwangen seine Min-Content-Breite zu wachsen, ziehend...
Hoist ChatWebSocketProvider über ToolProviders
ToolDock (und seine Werkzeugfenster wie SupportTicketWindow - TicketChat) ist eingemountet in ToolProviders, die ABOVE PresenceWrapper im Baum sitzt um das Abhä...
Drop Shadow DOM in E-Mail-Renderer so overflow-x-auto feuert
Shadow DOM war die Ursache. Breiter E-Mail-Inhalt (Festbreite Tabellen) im Schattenbaum am Wirt vorbei gemalt, ohne einen Beitrag zu leisten die Layout-Box des ...
Align ChatWebSocketContext Import Pfad zum Match Provider
TicketChat und ChatNotificationListener importierte den Kontext über die '@/app/contexts/...' alias while PresenceWrapper (der Anbieter) importiert es über den ...
Temporäre console.log zu verfolgen TicketChat STOMP Abonnement Pfad
Fügt Konsolenprotokolle in jeder Phase der Abonnenten-Pipeline hinzu (Effektfeuer, Wachpass, Anmeldung() Anruf, AttachSSessionAbonnement, client.subscribe, /app...
Force Shadow Host Containment mit Inline-Stile + enthalten: Layout
Klasse-basiertes Überlauf-x-auto auf dem Schattenhost war nicht zuverlässig gewinnen gegen den Schatten ':host { all: initial .' zurückgesetzt, so breite E-Mail...
Scrollen Sie breiten E-Mail-Inhalt innerhalb Schatten DOM, nicht außerhalb
Die bisherigen Versuche, Overflow-x-auto zu beleuchten DOM-Vorfahren hinzuzufügen konnte nicht breiten E-Mail-Inhalt zu fangen, weil der Schattenbaum ist visuel...
Verwenden Sie getHasAntachments() zum Boolean Wrapper Typ
************ ist ein Booleaner (Wrapper), also Lombok generiert getHasAntachments() nicht isHasAttachments(). Nur letztere existiert für primitive boolean. Verw...
JPA-Repository-Scan erweitern, um Commerce-Paket enthalten
Die neue Kamo-Shad-Bibliothek bringt ************ in die **************** erfordert (in com.kamo.z.shared.commerce). MediaService nur gescannt donotmodify.dao.r...
HashMap-Import in ChatWebSocketController wiederherstellen
Der vorherige Refaktor entfernte den HashMap-Import, aber das handleTyping Methode konstruiert immer noch eine HashMap für die Eingabe-Event-Nage-Nage-Nage-Nage...
Min-w-0 zu E-Mail Inhalten hinzufügen div so overflow-x-auto fires
Ohne min-w-0, die flex-col Kind Standard min-breite:auto löst sich auf min-Inhalt, lassen breite E-Mail-Tabellen erweitern die div Vergangenheit der Spalte Brei...
Entfernen von doppelten connectStomp-Anruf in sendMessage
Wenn die erste Nachricht eine neue Sitzung erstellt, aktualisiert onSessionCreated Requisiten die mitEffect ausgelöst werden, um connectStomp aufzurufen. Der In...
Erstellen Sie NATS-Konsument bei der Erstellung von Sitzungen, um Nachrichtenverlust zu verhindern
Zuvor wurde der NATS JetStream Push Consumer nur erstellt, wenn ein STOMP-Client gesendet /app/chat/subscribe. Mit DeliverPolicy.New, alle Nachrichten veröffent...
Schließen Sie wieder Verbindungslücke verursacht fallengelassene Echtzeit-Nachrichten
Entfernen Sie "connected" von der Abonnement-NutzungEffect deps in TicketChat und ChatBox. Zuvor löste jede WebSocket-Wiederverbindung den Effekt aus Bereinigun...
Erlauben Sie dem Systembenutzer, Org Branding zu verwalten und Logo auth zu fixieren
- System-Benutzer-Bypass als erste Wache in canManageOrgBranding so platform hinzufügen Systembenutzer hat volle Branding-Kontrolle über alle nicht-elparenten...
fügen Sie horizontalen Überlauf in E-Mail-Ansichtsablauf zur 3. Spalte
- Überlauf-x-versteckter zu MessageBrowser Außencontainer als harte Grenze hinzufügen - Überlauf-x-versteckt zu Spalte 3 Wrapper und Overflow-x-auto zum E-Mail-...
Produktion scheitert2ban mit PJSIP-Gefängnchen und anhaltendem Zustand
- Fügen Sie fail2ban-configmap.yaml mit [asterisk] und [freepbx-web] Gefängnissen hinzu, schrittweise Verbot Eskalation (1h-24h-30d Decke), LAN-Akignop, und e...
Coqui TTS mit Piper TTS (en_US-norman-medium) ersetzen
Coqui VCTK-Modell hat keine benannten Lautsprecher - ersetzen mit Piper TTS, die die genaue norman[medium] Stimme. Piper-Binär (ca. 3 MB) und Modell (ca. 60 MB)...
Reset abgestandene hat Anhäufe auf Synchronisation und richtig ansammeln
- Reset hat_attachments=false zu Beginn der Bulk-Sync so abgestandene wahre Werte von der alten falsch-positiven MIME-Erkennung werden vor der Re-Indizes gelö...
ResetHasAttachmentsForFolder Abfrage zu ConversationRepository hinzufügen
Ermöglicht Synchronisierung, um abgestandene has_attachments Flaggen vor der Re-Indexierung zurücksetzen Eine korrigierte MIME-Erkennung kann das Feld aus den t...
Integrieren Coqui TTS mit Norman-Stimme (VCTK p267)
- Einsatz von coqui-tts Server (VCTK VITS-Modell, CPU-only) als ClusterIP-Dienst am Port 5002 mit Modell-Cache bei /var/lib/coqui-tts auf k1m1 - coqui_tts.agi...
Pre-populate FROM on Antwort/Forward und fix senden von Address
- DraftMessage trägt jetzt von Address, so dass es von openNewMessage fließt bis zum Komponisten - MessageBrowser speichert die aktive Mailbox-E-MailAdresse (...
Unterstützung von Address override auf Senden
Fügt FromAddressRequest zu EmailSendRequest hinzu, so dass das Frontend angeben kann die Alias/Shared/Mailbox-Adresse zum Absenden von. SmtpOnlyProvider jetzt v...
LAN DNS pod für split-DNS auf k1m1 hinzufügen
Entstellt ein dnsmasq pod mit hostNetwork auf k1m1, das auf hört 192.168.4.22:53. Überrepostet pbx.k1.kluster.kamocrm.com - 192.168.4.22 So erreichen LAN-Telefo...
local_net für split-DNS / LAN Client RTP fix hinzufügen
Telefone im selben LAN wie k1m1 über split DNS verbinden (domain löst auf 192.168.4.22 intern). Ohne local_net wirbt Asterisk immer noch für die externe Domain ...
Wie, was Sie sehen Versand?
Alles kommt in Ihrem Arbeitsbereich für sich. Starten Sie mit dem kostenlosen Plan und lesen Sie diese Seite in einem Monat wieder.
