Reject cross-org satış ajanları; geniş bottrap önbellek otobüs
satışAgentId, istek gövdesinden kontrol edilmedi, bu yüzden bir haç-org veya dangling agent id bir WebChatIntegration'da depolanabilir. Güvenli başarısız oldu s...
Exclude non-ACTIVE üyeleri sohbet katılımı ve routing
A non-ACTIVE ************ üye olarak görünmemelidir veya olma Hedef olarak, canlı bir sohbet katılımcısı. Kapı her sohbet yolunda paylaşılan-lib ***************...
WebChatIntegration create() @Transactional (gresyon-save başarısızlığında yeten anahtar)
Resolve public-chat system member per-org (drop hardcoded snadjafinia alias)
backSession,Public, yaratır ve sahibi bildirim Tüm yardımcılar org'un "sistem üyesi"ni zor bir kodlanmış bir şekilde çözdüler. Alias="snadjafinia" görünümü, bu ...
Mesaj içeriğini kaçırılmış e-postalara koymayı bırak
Mesajı iptal etmek, öncü PREVIEW yazmak ve MesajPurban şablon değişkeni; includePurban tercihini bırakın. E-postalar şimdi gönderici + sayı + CTA sadece - içeri...
Persist, hedeflenen güncelleştirme aracılığıyla sabit bayraklar planladı
Dönüşüm boru hattı olarak aynı detached-entity yetimRemoval sorunu: başsız süpürme Bir detached ImgDat ve kurtarmak()/merge() cascaded into the image collection...
Bu yüzden MediaService derleyicileri yükleme
MinIOStorageService.. kontrol edici bir dışlama atar() ne yazık ki Yakaladı ya da ilan etti - en iyi düzeltilmiş düzeltme. Gül ve Bir runtime istisnası olarak y...
MeetingParticipant.isGuest() (Guest aldı, derlemeyecek); repoint transcript to general endpoint
ToplantıParticipant açığa çıkıyor (primitive boolean getter),Guest(). Ayrıca, paylaşılan /api/convers /transcript'de özetleme çağrısı yapın.
Persist katılımcıları davet etti, MANAGE MEET SETTINGS'i uyguluyor, çift-invite yolunu bırak
- oluşturmakMeeting: davetli üyeler UUID dizeleri değil, sayısal karflake kimliklerdir - Onlara yaratıcı gibi uzunToUUID yoluyla yollayın. Daha önce UUID. FromS...
Set MinIO hizmeti DNS; down deprecated WireGuard/CGNAT IPs kullanın ve k2m1 /k0m1
Resmi ek yarışı düzeltmek için işlemden sonra yayınlanan NATS CREATE olayı
NATS mesajı @Transactional vücut içinde yayınlandı, bu da anlamına geliyordu. Alıcılar CREATE olayını alabilir ve görüntüyü görüntüyü kullanarak talep edebilir ...
Serialize attachments in WS relay and message history; allow attachment-only sends
Three bugs fixed: 1. ChatSessionSubscriptionManager was building the STOMP messageMap manually and omitting attachments, sourceLanguageId, readMemberId, msg...
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...
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 ****************
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...
Redis'te oturum GUID'de oturumla halka açık destek
Pazarlama ziyaretçileri, üyeId olmadan /ws/public-chat-native kullanıyor; biletler hala İsteci olarak org placeholder üyesine atıfta bulun. Arement PRESENCE PUB...
Ticaret paketi eklemek için JPA repository taramasını genişletin
Yeni kamo-shared-library, ************************ hangisini gerektirir **************** ( com.kamo.z.shared.ticaret). MediaService sadece tarandı.dao.repos, bu...
Download HashMap import in ChatWebSocketController
Önceki refaksiyon HashMap ithalatını kaldırdı, ancak handleTyping Yöntem hala tipleme olayı ödeme yükü için bir HashMap inşa ediyor, neden Forgejo ‘kant bulmak ...
Proaktif olarak mesaj kaybı önlemek için oturum oluşturmada NATS tüketicisi oluşturun
Daha önce NATS JetStream push tüketici sadece STOMP istemcisi olduğunda yaratıldı Gönder /app /chat /subscribe. TeslimatPolicy ile. Yeni, daha önce yayınlanan h...
Ana NATS'den gerçekleştirilen Relay tema hükmü
Match SecurityService core yayın: Dispatcher ile abone Güvenlik.theme.provision.* yerine JetStream (yalnızca sohbetleri kapsar).
PublicChatVisitor showName for requestorName on ziyaretçi bileti
Ziyaretçi destekli biletler, sistem üyesine zor kodlu istekler verdi, bu yüzden DTO, Kullanıcı sütununda org sahibinin ismini ortaya çıkardı. Sonbahar PublicCha...
GeoBakupService'da hata oluşturun ve NATS'yi ajan mesajları için yayımlayın
- Fix Seçmeli vs List tipi yanlış bir eşleşme ************************ - Index NatsMessageService into MediaController - sohbet etmek için.session.{guid} ajanda...
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...
Tag ziyaretçi mesajları VISITOR MESSAGE type olarak, GET mesajlarına göndericiName ekleyin
- PublicChatService: set messageType=VISITOR MESSAGE so frontend ayırt edebilir Ziyaretçi STOMP konuyla ilgili ajan yanıtlarından yankılar - MediaController.get...
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...
Add debug logging and robust rights parsing for webinar controller
Adds info/warn logging for session data and rights on POST /types to diagnose 403 errors. Also adds fallback parsing for rights stored as JSON strings in Redis ...
Resolve org theme backgrounds not appearing in meet virtual backgrounds
- Add domain-based theme URL resolution for internal K8s service-to-service calls - getPublicBackgrounds now accepts optional domain param to derive correct the...
Upload meet backgrounds to public MinIO bucket with hash-based naming
Was uploading to private 'imaging-meet-recordings' bucket via **************** which caused: - MinIO region mismatch errors on the primary node - Connection tim...
Return serialization-safe Maps instead of raw JPA entities in MeetConfigController
All config/background endpoints were returning raw JPA entities with @ManyToOne(fetch=LAZY) Organization references. Jackson failed to serialize the Hibernate p...
Remove duplicate endpoints from MeetController, add org-themes to MeetConfigController
MeetConfigController already handled config/background endpoints. The duplicate endpoints in MeetController caused ambiguous mapping. Added org-theme background...
Update health probes to HTTP port 80 to match new server config
Startup, readiness, and liveness probes were still pointing to port 8443 with HTTPS scheme, causing pod restart loops.
Switch MediaService to HTTP port 80 — TLS termination at Traefik
Internal cluster traffic doesn't need HTTPS. Traefik handles TLS for external clients. This aligns MediaService with all other services.
Send chat invites to correct WebSocket topic /topic/chat/incoming/{memberId}
Was publishing to /topic/chat/member/{id} but kamo-internal subscribes to /topic/chat/incoming/{id}. Also fixed Member entity field access **************** inst...
Voip.> NATS yayın konularına ekleyin ve VoipStompRelayController'de Yasadışı Devletin Belirlenmesi
NATS akışı sadece sohbetle kaplıdır.> bu yüzden voip.> attı IlStatelegalException ([SUB-90007) eşleşen akışlar yok. voip.> Bu yüzden her iki konu da kapılır ve ...
Kabul - çapraz domain WebSocket auth için sorgu param
Read - ID from? ***= query parameter first, falling back to kurabiye. Bu, iç.kamocrm.com'da önyüklemeye izin verir WebSocket bağlantıları medya.kamocrm.com çapr...
Benzersiz tüketici retry ile stale NATS tüketicisi bağlayıcı
-NatsMessageHandler() yöntemi oluşturmak için mesaj eller - "Consumer zaten sınırlandığında eşsiz tüketici adı ile yeniden deneme mantığı ekleyin" hata sunucu y...
Rota WebSocket through Traefik on port 443
- hizmet.yaml: pod'un gerçek dinleyici limanıyla eşleşmek için port 80→8443 - ingressroute.yaml: https + port 8443 for backend - sunuculartransport.yaml: Geri d...
NATS bağlantısı için küme-internal DNS kullanın
WireGuard IPs'ten varsayılan NATS URL'yi değiştirmek için (100.64.x.x) nats.kamo.svc.cluster.local for the local server. Uzak düğümler (k0m1, k2m1) WireGuard IP...
MediaService deployment'ta TLS sertifikası opsiyonu yapın
- Seçmeli ekleyin: vahşi kart-kamocrm-com gizli hacim Güncelleme cert-converter init konteyneri eksik sertifika nezaketle idare etmek için
401 auth hataları çözmek için güvensiz kayıt yapılandırması ile Buildx kurulumu ekleyin
Kullanıcı Adı Alias(), mevcut olmayan bir getName() yöntemi yerine Üye Olun
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.
