Fix NPE in getChatSessions from Map.of() rejecting null nextcoder
java.util.Map.of() throws NullPointerException when nextcoder is null (no more pages). Replace with HashMap that accepts null values. Also wrap entire handler i...
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...
Fix upload 500 (missing EmbRecordState) and empty chats tab (Timestamp cast)
Defect A: ChatAttachmentService.upload omitted **************** causing a NOT NULL violation on imgs.is_active. Added the default recordState. Also hardened Cha...
Prefer usernameAlias over User.name in memberDisplayName
Switches display name priority to: Member.usernameAlias → User.name → User.alias → User.username. Also includes the paged query dispatch fix from the previous c...
Use split First/After queries for chat sessions paged endpoint
Addresses empty Chats tab by dispatching to ****************
Reconstruiește împotriva fc5ee35 kamo-shared-library (MediaObjTransit @Maps Id)
Declanşator reconstrucţie pentru a ridica kamo-shared-library 094e80d (MediaObjTransit @IdClass)
Augment necitit transmision cu activitate sarcină utilă pentru actualizări chat-list
Paged chat list with previews, members, unread counts
that returns ChatListRowDto rows including last message preview, member summaries, per-session unread counts, and ownLastViewedAt.
Imaging proxy with HTTP Range support and per-member download tracking
Raise client read timeout to 120s for long messages
LibreTranslate runs CPU-only argos models — a paragraph-length chat message takes 20-30s to translate, and longer ones can push past 60s. The 8-second read time...
Cache-only bulk translate, FE handles fills
Bulk message-fetch endpoints now return only translations that are already cached and tag missing rows with needsTranslation:true. The chat UIs (kamo-internal C...
On-demand translation for chat and support messages
Captures the source language for every chat / support message and adds an optional ?lang=XX param on the message-fetch endpoints plus a per-message POST /transl...
Scope concurrency to build jobs, not Kubernetes deploys
Workflow-level concurrency serialized the whole pipeline (including kubectl rollouts). Move the group to the build job only so deploy jobs from different runs c...
Urmăriți chat-ul de suport public prin sesiune GUID în Redis
Vizitatorii de marketing folosesc /ws/public-chat-nativ fără membruId; bilete încă se referă la membrul titular de org ca solicitant. PRESENCE PUBLIC tastele ST...
Crește TTL de la 90 la 300 pentru a preveni fals OFFLINE pe trepidație filă
Difuzare în curs de numărare + necitite pe agentul citit & vizitator trimite
- ***************acum delegaţii Nu-ţi face griji. reflectă sesiunile cu mesaje vizitatori necitite și decrements atunci când Agentul îl cheamă pe MarkAsRead. - ...
Reconstrui pentru a trage cele mai recente kamo-împărțit-library
Picks the new *************** întrebări și Ramura de sprijin TICKET în *************
Magazin geo pe bilet la crearea, picătură GeoLite citește
Acum capturează geografia vizitatorilor. o dată (prin GeoLookupService) și persistă ip/țară/oraș/subdivision pe Tichetul de sprijin în sine. SuportTicketServic...
Vizitatori de încărcare în vrac și săriți căutarea GeoLite în listă
Scopul listei /api/suport/bilete a fost de funcționare, pe pagina de 20 de rânduri: - 20 de apeluri. - 20 apeluri în GeoLookupService.lookup, fiecare dintre car...
Adăugați /ws/public-chat-nativ simplu WebSocket obiectiv alături de SockJS
Înregistrează un al doilea criteriu de evaluare STOMF fără SockJS la /ws/public-chat-nativ astfel că frontend se poate conecta cu un WebSocket nativ (brokerURL)...
Contorizare necitită difuzată către agent la mesajul vizitatorilor
După ce un vizitator trimite un mesaj de sprijin, împingeți cele mai recente numere necitite Încărcătura la ************* astfel încât lista de bilete a agentul...
Extinde scanarea depozitului JPA pentru a include pachetul comercial
Noul librar kamo-împărtășește aduce în *************** care necesită - Nu. (în com.kamo.z.shared. commerce). MediaService doar scanat numodifica.dao.repos, deci...
Restaurare HashMap import în ChatWebSocketController
Refactorul anterior a eliminat importul HashMap dar manerTyping metoda construiește încă un HashMap pentru sarcina utilă eveniment de dactilografiere, cauzând F...
Creează activ consumatorul NAT la crearea sesiunii pentru a preveni pierderea mesajelor
Din episoadele anterioare: trimis /app/chat/subscribe. Cu DeliverPolicy. Nou, orice mesaje publicate înainte de consumatorul există sunt permanent pierdute Nic...
Furnizarea de teme de bază NATS
Match SecurityService core published: subscribe with Dispatcher on Security.theme.provision.* in loc de JetStream (stream acopera doar chat).
Rebuild for kamo-shared-library update (remove OrganizationType, adaugati isTopLevel)
Rebuild for kamo-shared-library update (remove OrganizationType, adaugati isTopLevel)
Utilizați PublicChatVizitor AfișareNume pentru solicitantNume pe biletele vizitatorilor
Vizitator-inițiat bilete hardcode solicita la membru al sistemului org, așa DTO a fost suprapuse numele proprietarului org în coloana solicitant. Cădere înapoi ...
Expune oraș și subdiviziuni în căutare geo vizitatori
- Extindeți recordul GeoResult cu câmpurile de orașe și subdiviziuni - Switch SupportTicketService.toDTO() to use GeoLookupService (IP-level) Lookup) în loc de ...
Construiți eroare în GeoLookupService și adăugați NATS publica pentru mesaje de agent
- Fix Opţional vs Lista de nepotrivire de tip în ************* - Injectaţi NatsMessageService în MediaController - Publish to chat.session. agentul și vizitator...
Real-time chat delivery, message sides, notifications, and name sync
- Keep NATS subscription alive on client unsubscribe to avoid breaking agent real-time delivery - Tag visitor messages with messageType=VISITOR_MESSAGE in getMe...
Arată steagul vizitatorilor și locația în antetul biletului de sprijin
- Injectați PublicChatVisitorRepositor și GeoLiteLocationRepositor în SuportTicketService - Populate visitorIpAddress, visitorCountryCode, visitorCountryName in...
Tag-ul de mesaje vizitatori ca tip VISITOR Message, adăugați numele expeditorului pentru a obține mesaje
- PublicChatService: set messageType=VISITOR Message astfel încât frontend poate distinge vizitatori ecouri din răspunsurile agent pe tema STOMP - MediaControll...
Fixează chat public de la un capăt la altul în timp real prin STOMP/NATS
- Elimina cerintele interne de la PublicChatWebSocketInterceptor astfel încât vizitatorii să se poată conecta direct folosind doar sesiunea Token - Include afiș...
Three support/chat issues — NATS relay, auto-popup, topic fallback
1. Switch SupportNotificationService and SupportStompRelayController from JetStream to core NATS — the CHAT_MESSAGES stream only covers chat.> so JetStrea...
Write contact form description as chat message on public ticket creation
The description was only stored on the ticket entity and never appeared in the chat window. Added writeTextMessage() helper and call it after the system event s...
Live pending support ticket count via NATS — notify org owner on new tickets, add pending-count REST endpoint
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
