Użyj split First/After zapytań dla sesji czatu na stronie punktu końcowego
Adresy puste zakładki Czaty poprzez wysłanie na .
Podniesienie czasu odczytu klienta do 120s dla długich wiadomości
LibreTranslate uruchamia modele argosowe tylko procesora — wiadomość czatu o długości akapitu Do tłumaczenia jest to 20-30, a dłuższe mogą przesunąć się ponad 6...
Śledź czat wsparcia publicznego przez sesję GUID w Redis
Odwiedzający marketing korzystają /ws/public-chat-native bez memberId; bilety nadal Odniesienie do członka podmiotu notariusza org jako requestor. Przyrost PRES...
Zwiększ TTL z lat 90-tych do 300, aby zapobiec fałszywemu OFFLINE na krojeniu karty
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...
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...
Przekaźnik z core NATS
Match SecurityService podstawowe publikowanie: zapisz się z Dispatcherem Bezpieczeństwo.theme.provision. zamiast JetStream (stream obejmuje tylko czat).
Użyj PublicChatVisitor displayName na zapytanieOmach na bilety dla odwiedzających
Bilety inicjowane przez odwiedzających żądaj od kodu twardego do członka systemu org, więc DTO wyświetlało nazwisko właściciela org w kolumnie Requestor. Upadek...
Budowanie błędu w GeoLookupService i dodawanie NATS publikowanie wiadomości agentów
- Napraw opcjonalnie vs Lista niedopasowanie typu w - - Wstrzyknąć NatsMessageService do MediaController - Publikuj na czat.session.-guid po agentze tworzy wiad...
Dostawa czatu w czasie rzeczywistym, strony wiadomości, powiadomienia i synchronizacja nazw
Utrzymuj subskrypcję NATS przy wypisaniu się z klientem, aby uniknąć złamania agenta w czasie rzeczywistym - Tag wiadomości odwiedzającego z wiadomościąType-VIS...
Oznacz wiadomości odwiedzające jako typ VISITOR_MESSAGE, dodaj nadajnikName do wiadomości GET
- PublicChatService: ustawione messageType-VISITOR_MESSAGE, aby Frontend mógł się rozróżnić Odzwierciedla echa odpowiedzi agentów na temat STOMP - MediaContro...
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...
Dodaj voip.> do tematów strumieniowych NATS i obsłudze NielegalneWyjątekStateException w VoipStompRelaySAdministrator
Strumień NATS obejmował tylko czat.> subskrybowanie do voip.> rzucił IllegalStateException ([SUB-90007] Brak strumieni pasujących). Dodano voip.> Do badanych st...
Akceptuj - od query param dla cross-subdomain WebSocket auth
Odczyt - ID od ?? Najpierw kwerenda, spadając z powrotem na Ciasteczko. Dzięki temu frontend na stronie internal.kamorm.com jest uwierzytelniający WebSocket łąc...
Obsługa nieświeżego wiązania konsumentów NATS z unikalnym ponownym próbą konsumencką
- Wyodrębnij urządzenie obsługi wiadomości w createTloTnotMessageHandler() metodę - Dodaj logikę próbną z unikalną nazwą konsumenta, gdy "Konsumer już związany"...
Trasa WebSocket przez Traefik na porcie 443
- service.yaml: naprawić port 80-8443, aby dopasować rzeczywisty port słuchawkowy - ingressroute.yaml: schemat użycia https + port 8443 dla backendu - serwertra...
Użyj klastra-wewnętrznego DNS do połączenia NATS
Zmień domyślny URL NATS z WireGuard IPs (100.64.x.x) na Nats.kamo.svc.cluster.local dla serwera lokalnego. Węzła zdalne (k0m1, k2m1) na adres WireGuard IPs.
Uczyń certyfikat TLS opcjonalnym w wdrożeniu MediaService
- Dodaj opcjonalnie: true do tajnego tomu wildcard-kamocrm-com - Aktualizacja pojemnika init init z cert-converter, aby z wdziękiem poradzić sobie z brakującym ...
Dodaj konfigurację Buildx z konfiguracją rejestru niepewnego, aby rozwiązać 401 błędów
Użyj getUsernameAlias() zamiast nieistniejących metod getName() na Member
Dodaj tajemnice API Janus jako zmienne środowiskowe we wdrożeniu - Dodaj JANUS_API_SECRET, JANUS_TOKEN_SECRET i JANUS_ADMIN_SECRET env vars - Upewnij się, że tajemnice są dostępne za pośrednictwem zmiennych środowiskowych oprócz zmiennośrodków środowiskowych oprócz konfigmapy
Dodaj apiSecret do WebRTC config response dla uwierzytelnienia Janus
Odpowiednio skonfigurować Spring Security dla WebSocket - całkowicie wyłączyć CSRF, włączyć tworzenie sesji IF_REQUIRED dla WebSocket
Wyłącz CSRF dla punktów końcowych / węż i uprościć konfig zabezpieczeń, aby naprawić błąd SockJS /ws/info 405
Wyraźnie pozwól, aby metody GET/POST/HEAD dla punktów końcowych /ws/a naprawy na poprawki do błędu SockJS /ws/info 405
Usuń nieprawidłowe metody wywołania błędów kompilacji (getId on MediaSession, getStatusCode on ServerHttpResponse)
Dodaj oprogramowanie pośrednie i serwery WebSocketTransport do IngressRoute
- Dodano oprogramowanie middleware multi-websocket-upgrade dla webSocket upgrade nagłówków - Dodano media-websocket-transport, aby wyłączyć HTTP / 2 (WebSocket ...
WebSocket wiadomości na żywo - wyłapnij subskrypcję ChatMessageHandler, ulepszenie logowania
- Niepełnosprawna ChatMessageHandler subskrypcja na czat.session.> która spożywała wiadomości bez przesyłania do WebSocket - Ulepszone wycinki WebSocketKonfig d...
Użyj unikalnych nazw konsumentów NATS na sesję czatu - Każda sesja używa teraz nazwy konsumenta: chat-konsumencka-sessionaGuid - Zapobiega konfliktom konsumenckim, gdy wiele sesji jest aktywnych - Naprawia problem z wiadomościami na żywo, w których wiadomości nie były dostarczane
Trwałe połączenie WebSocket z agresywnym utrzymaniem
Bezczynność timeout ustawiona na 0, bicia serca 20s, odłączenie opóźnienia 30s, czas przedniea meczu
Ustawienia SSL z twardego kodu w ConfigMap do produkcji
- Usuń środowisko zmiennymi symbolami zastępczy - Hardcoded port 8443, włączony protokół SSL, ścieżka keystore - Fixes Spring Boot nie rozwiązując prawidłowo en...
Poprawa nazw zmiennych środowiskowych Spring Boot SSL
- Zmieniono SSL_ENABLED na SERVER_SSL_ENABLED - Zmiana SSL_KEY_STORE na SERVER_SSL_KEY_STORE - Zmieniono SSL_KEY_STORE_PASSWORD na SERVER_SSL_KEY_STORE_PASSWORD...
Użyj SSLHostConfig API dla konfiguracji Tomcat SSL
- Użyj SSLHostConfig i SSLHostConfigCertificate (poprawny Tomcat API) - Skonfiguruj certyfikat poprzez . - Naprawia błędy kompilacji z setAttribute/Property
Użyj setAttribute dla konfiguracji Tomcat SSL
- Zmienione z setKeystoreFile/Pass/Type/Alias na setAttribute - Tomcat 10+ wykorzystuje setAttribute dla właściwości SSL - Naprawiono błędy kompilacji
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.