KamoCRM

Live Change Log

Every feature, fix and improvement, posted as it ships. Nothing is held back for a launch.

17,488
Total Changes
5,978
Features
5,281
Fixes
30
Projects
Filter by project
All Projects17,488AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService574InitializerService329KBService151KlusterServices738MCPGatewayService246MediaService602RAGService79SecurityService1,846TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,347kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,254Feature5,978Fix5,281Other994Performance165Refactor278Revert23Style42Test160Upgrade1
November 5, 2025
FixMediaService

Use setProperty on protocol handler

snadjafinia·11mo ago
FixMediaService

Use setAttribute for Tomcat SSL configuration

- Changed from setKeystoreFile/Pass/Type/Alias to setAttribute - Tomcat 10+ uses setAttribute for SSL properties - Fixes compilation errors

snadjafinia·11mo ago
FixMediaService

Run MediaService on BOTH ports 80 (HTTP API) and 8443 (HTTPS WebSocket)

- Reverted service.yaml and ingressroute.yaml to use port 80 - Removed forced SERVER_PORT and SSL_ENABLED env vars - Added DualPortConfig to programmatically ad...

snadjafinia·11mo ago
Fixkamo-internal

Conectează-te la portul 8443 (extern) pe care se îndreaptă către NodePort 30843

- Router forwards extern 8443 to k1m1 NodePort 30843 - Browser folosește media.kamocrm.com:8443 - NodePort intern este 30843 (Raza Kubernetes valid)

snadjafinia·11mo ago
FixMediaService

Use NodePort 30843 instead of hostPort for WebSocket

- hostPort may be blocked by firewall rules - NodePort 30843 is in valid range (30000-32767) - Browser connects to external port 8443 - Router forwards 8443 -> ...

snadjafinia·11mo ago
FixMediaService

Add SSL configuration to k8s ConfigMap

- ConfigMap was missing SSL config from application.yml - Added server.ssl settings with environment variable support - Matches local application.yml configurat...

snadjafinia·11mo ago
FixMediaService

Use hostPort instead of NodePort for 8443

- NodePort range is 30000-32767, cannot use 8443 - Use hostPort to bind directly to host port 8443 - Removed service-websocket.yaml

snadjafinia·11mo ago
Fixkamo-internal

Elimina restrictia de transport numai pe WebSocket pentru compatibilitate HTTP/2

- Browser WebSocket API nu suporta HTTP/2 (RFC 8441 nu este implementat) - WebSocket nativ necesită HTTP/1.1 Upgrade care nu reușește peste HTTP/2 - Să SockJS a...

snadjafinia·11mo ago
FixMediaService

Use explicit Host() for /ws route to enable TLSOption

- Changed /ws route from HostRegexp to Host(media.kamocrm.com) - TLSOption can only be applied to explicit hosts (not regex) - ALPN negotiation happens during T...

snadjafinia·11mo ago
FixMediaService

Force HTTP/1.1 for MediaService ONLY via TLSOption

- Created media-tls-http1 TLSOption with alpnProtocols: [http/1.1] - Referenced ONLY in media-route IngressRoute - Does not affect other Traefik routes - Fixes ...

snadjafinia·11mo ago
FixMediaService

Separate /ws route for WebSocket, keep HTTP/2 for API

- Added two routes: /ws for WebSocket (higher priority), rest for API - Only /ws uses media-websocket-transport (HTTP/2 disabled) - API routes can use HTTP/2 fo...

snadjafinia·11mo ago
FixMediaService

Use Host() instead of HostRegexp() for media-route

- Simplified to Host(media.kamocrm.com) - Avoids regex escaping issues with backticks - Tests show route is working with simple Host match

snadjafinia·11mo ago
FixMediaService

Force HTTP/1.1 via TLSOption for WebSocket compatibility

- Created TLSOption to disable HTTP/2 ALPN negotiation - Forces browsers to use HTTP/1.1 for media.kamocrm.com - WebSocket upgrades require HTTP/1.1 protocol - ...

snadjafinia·11mo ago
FixKlusterServices

Disable idle timeout for WebSocket connections

- Added idleTimeout=0 to websecure entrypoint - Prevents Traefik from closing WebSocket connections due to inactivity - Fixes SockJS WebSocket timeout issues

snadjafinia·11mo ago
Fixkamo-internal

Utilizați doar transportul WebSocket (dezactivează sondajele XHR)

- Transporturi SockJS modificate de la [websocket, xhr-streaming, xhr-polling] la [websocket] - Elimină retragerea la sondajul XHR - Forte conexiune WebSocket p...

snadjafinia·11mo ago
Fixkamo-internal

Elimină trimiterea explicită de namespace din kamowsmedia-service

- Ambele servicii sunt în același namespace (kamo) - Nu este nevoie de referinţă explicită de namespace - Evita potentiale probleme inter-namespace

snadjafinia·11mo ago
Fixkamo-internal

Elimină /ws rescrie de la următoarea. config (handled by Traefik)

- Eliminat Next.js rescrie pentru /ws căi - rutare WebSocket acum manipulate la nivelul Traefik IngressRoute - Traefik routes intern.kamocrm.com/ws -> MediaServ...

snadjafinia·11mo ago
Fixkamo-internal

Solicitări direct către MediaService via Traefik

- Adauga trasee dedicate pentru /ws trasee in IngressRoute - Trasee interne.kamocrm.com/ws -> MediaService direct - Foloseste aceleasi servere Transportare ca m...

snadjafinia·11mo ago
Fixkamo-internal

Permite /ws WebSocket obiective fără redirecționare aut

- Calea Adăugat /ws la middleware bypass - SockJS trebuie să se conecteze la /ws/info fără redirecţionare - Conexiunile WebSocket vor avea în continuare *** coo...

snadjafinia·11mo ago
Fixkamo-internal

Schimbă conexiunea WebSocket cu aceeași origine

- Schimbat de la media.kamocrm.com la aceeaşi origine (intern.kamocrm.com) - Evita problemele legate de conexiunea WebSocket - Adăugat Next.js rescrie regula pe...

snadjafinia·11mo ago
FixMediaService

Remove @kubernetescrd suffix from serversTransport reference

- Traefik error: cross-namespace format not allowed when crossnamespace disabled - IngressRoute and ServersTransport are in same namespace (kamo) - Use simple n...

snadjafinia·11mo ago
Fixkamo-internal

Elimină proprietatea coder invalid de la getDisplayMedia

- Folosind video simplu: adevarat pentru partajarea ecranului - Construcţia ar trebui să reuşească

snadjafinia·11mo ago
Fixkamo-internal

Rezolvați eroarea de construire - înlocuiți TelefonOff cu CallEnd

- Pictograma telefonică nu există în @mui/icons-material - Folosind CallEnd care este pictograma MUI corectă - Elimină fișierele duplicate neutilizate (ChatBoxW...

snadjafinia·11mo ago
FixKlusterServices

Split port ranges to avoid conflicts

- Coturn relay: 52000-65535 (13,536 ports) - Avoids: Janus RTP (10000-49151) and WireGuard (51820-51821) - No overlap between services

snadjafinia·11mo ago
FixKlusterServices

Adjust relay port range to avoid WireGuard/VPN ports

- Changed max-port from 65535 to 51800 to avoid conflicts - Avoids WireGuard on UDP 51820 and other VPN services on 51821 - Provides 2,649 ports (49152-51800) f...

snadjafinia·11mo ago
FixKlusterServices

Resolve CrashLoopBackOff by fixing probes and config

- Replace netstat-based health probes with TCP socket checks (netstat not available in coturn/coturn:latest Alpine image) - Remove conflicting no-stdout-log dir...

snadjafinia·11mo ago
FixMediaService

Use full Kubernetes CRD provider name for ServersTransport reference

Traefik requires the @kubernetescrd suffix when referencing CRD resources like ServersTransport.

snadjafinia·11mo ago
FixMediaService

Simplify MediaService WebSocket IngressRoute configuration

Remove media-websocket-upgrade middleware that was forcing headers and causing WebSocket handshake issues. Traefik automatically handles WebSocket upgrade when ...

snadjafinia·11mo ago
Fixkamo-internal

Skip WebSocket transport în SockJS pentru a evita probleme HTTP/2

- Utilizați xhr-streaming și xhr-polling transporturi în loc de websocket - Aceste transporturi lucreaza atat cu HTTP/1.1 cat si cu HTTP/2 fara a necesita upgra...

snadjafinia·11mo ago
FixMediaService

Add end anchor to WebSocket path regex pattern

- Add $ to end of PathRegexp to ensure exact match - Fixes regex parsing error in Traefik - /ws/info is now working (200 OK) but WebSocket upgrade route needs p...

snadjafinia·11mo ago
FixMediaService

Only apply WebSocket upgrade middleware to actual WebSocket paths

- Change route match from PathPrefix(/ws/) to **************** - /ws/info is a regular HTTP request, not a WebSocket upgrade - Adding Upgrade header to /ws/info...

snadjafinia·11mo ago
FixKlusterServices

Add Connection: Upgrade header to WebSocket upgrade middleware

- Add Connection: Upgrade header along with Upgrade: websocket - Both headers are required for proper WebSocket upgrade handshake - This ensures HTTP/2 Extended...

snadjafinia·11mo ago
FixMediaService

Add separate route for WebSocket paths with upgrade middleware

- Create separate route matching /ws/** paths with media-websocket-upgrade middleware - This ensures Upgrade: websocket header is added for WebSocket upgrade re...

snadjafinia·11mo ago
FixMediaService

Use ServersTransport to disable HTTP/2 for WebSocket connections

- Create ServersTransport resource with disableHTTP2: true - Reference ServersTransport in IngressRoute service configuration - Remove invalid disableHTTP2 fiel...

snadjafinia·11mo ago
FixMediaService

Disable HTTP/2 for MediaService backend connection

- Add disableHTTP2: true to force HTTP/1.1 for backend connections - HTTP/2 Extended CONNECT is not properly converting Upgrade header - WebSocket upgrades requ...

snadjafinia·11mo ago
FixMediaService

Configurează schema de servicii IngressRoute pentru suport WebSocket

- Setare sistem: http pentru a asigura buna manipulare HTTP/1.1 pentru upgrade-uri WebSocket - HTTP/2 Extended CONNECT are nevoie de o conversie adecvată la HTT...

snadjafinia·11mo ago
FixMediaService

Elimină handshake-ul invalid și repară configurația SockJS

- Înlăturați suprascrierea implicită invalidăHandshakeHandler (metoda nu există) - Înlăturați setul invalidSupressCors call (metoda nu există) - Păstrați HttpSe...

snadjafinia·11mo ago
FixMediaService

Adaugă strângere de mână WebSocket și configurare SockJS

- Adăugați handshake handler și interceptor logare pentru a diagnostica probleme de conexiune WebSocket - Configurați SockJS pentru a suprima CORS (manipulat de...

snadjafinia·11mo ago
Fixkamo-internal

Configurează transporturile SockJS pentru a gestiona problemele de actualizare HTTP/2 WebSocket

- Configurați explicit comanda de transport SockJS pentru a prefera WebSocket, apoi revenire la xhr-streaming / xhr-polling - upgrade-uri HTTP/2 WebSocket poate...

snadjafinia·11mo ago
FixMediaService

Remove media-cors middleware from IngressRoute to allow WebSocket connections

- media-cors middleware was clearing CORS headers which interfered with WebSocket upgrades - WebSocket connections require direct pass-through without header mo...

snadjafinia·11mo ago
November 4, 2025
FixMediaService

Remove invalid Spring Security pattern /ws/**/info

- PatternParseException: No more pattern data allowed after {*...} or ** - /ws/** already covers all paths under /ws including /ws/info - This was causing 500 e...

snadjafinia·11mo ago
FixMediaService

Apply media-cors middleware to MediaService IngressRoute

- Apply media-cors middleware to allow CORS headers for WebSocket connections - Matches the pattern used for theme domains

snadjafinia·11mo ago
FixMediaService

Explicitly permit OPTIONS requests for CORS preflight

- Add explicit permit for OPTIONS method on all paths - Add explicit permit for /ws/info endpoint (SockJS handshake) - This ensures CORS preflight requests reac...

snadjafinia·11mo ago
FixMediaService

Make CORS configuration more permissive for WebSocket connections

- Explicitly handle '*' wildcard for origins, methods, and headers - Add WebSocket-related headers to exposed headers - Add logging to verify CORS configuration...

snadjafinia·11mo ago
FixMediaService

Add logging and configure SockJS heartbeat/disconnect settings

- Add logging to verify WebSocket endpoint registration - Configure SockJS heartbeat and disconnect delay - This should help diagnose why SockJS handshake isn't...

snadjafinia·11mo ago
Fixkamo-internal

Asigurați-vă că ruta mesajelor este recunoscută de Next.js

- Adauga logare pentru a verifica ruta este lovit - Există fişier traseu şi structura este corectă pentru Next.js 15

snadjafinia·11mo ago
Fixkamo-internal

Elimină proprietatea "activă" inexistentă din STOMP Arhivarea clienților

- STOMP Clientul nu are o proprietate "activă" - Verificaţi numai proprietatea "conectată" care este indicatorul de stat corect

snadjafinia·11mo ago
Fixkamo-internal

Eliminați nesuportat peWebSocketError handler de la client STOMP

- onWebSocketError nu este o proprietate validă în ClientOptions - Manipulatori de eroare SockJS (onerror, onclose) deja oferă o manipulare a erorilor

snadjafinia·11mo ago

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.

Start Free ForeverView Pricing