Live Change Log

See what we're building, in real-time. Every feature, fix, and improvement shipped across the platform.

17,865
Total Changes
4,581
Features
4,512
Fixes
32
Projects
Filter by project
All Projects17,865AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService348InitializerService299KBService74KlusterServices539MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,553kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore670Docs226Feature4,581Fix4,512Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
November 5, 2025
Featurekamo-internal

Connect to MediaService port 8443 for WebSocket

- Updated WebSocket connection to use media.kamocrm.com:8443 - Bypasses Traefik for WebSocket-only traffic - Uses direct HTTPS/HTTP1.1 connection to MediaServic...

snadjafinia·10mo ago
FeatureMediaService

Expose MediaService on port 8443 for WebSocket over HTTPS/HTTP1.1

- Added NodePort service on 8443 for direct WebSocket access (bypasses Traefik) - Mount wildcard-kamocrm-com SSL certificate - Init container converts PEM to PK...

snadjafinia·10mo ago
Fixkamo-internal

Remove WebSocket-only transport restriction for HTTP/2 compatibility

- Browser WebSocket API doesn't support HTTP/2 (RFC 8441 not implemented) - Native WebSocket requires HTTP/1.1 Upgrade which fails over HTTP/2 - Let SockJS auto...

snadjafinia·10mo ago
RevertMediaService

Restore HTTP/2 for WebSockets (RFC 8441 support)

- WebSockets CAN work over HTTP/2 via RFC 8441 - Removed TLSOption (not needed) - Removed ServersTransport reference (let HTTP/2 work) - Restored simple domain-...

snadjafinia·10mo 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·10mo 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·10mo ago
OtherKlusterServices

Revert "fix(traefik): disable idle timeout for WebSocket connections"

This reverts commit ****************

snadjafinia·10mo ago
OtherMediaService

Delete TLSOption (not needed with separate routes)

snadjafinia·10mo 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·10mo 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·10mo 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·10mo 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·10mo ago
Fixkamo-internal

Use WebSocket-only transport (disable XHR polling)

- Changed SockJS transports from [websocket, xhr-streaming, xhr-polling] to [websocket] - Removes fallback to XHR polling - Forces pure WebSocket connection - F...

snadjafinia·10mo ago
FeatureMediaService

Add CORS middleware to media-route for cross-origin WebSocket

- Added cors middleware to allow cross-origin connections - Enables WebSocket connections from internal.* to media.* - Allows all origins, methods, and headers ...

snadjafinia·10mo ago
Revertkamo-internal

Connect WebSocket directly to media.kamocrm.com

- Reverted to original approach: connect to media.* subdomain directly - Removed unnecessary same-origin complexity - Removed /ws bypass from middleware (not ne...

snadjafinia·10mo ago
Fixkamo-internal

Remove explicit namespace reference from kamowsmedia-service

- Both services are in same namespace (kamo) - Explicit namespace reference not needed - Avoids potential cross-namespace issues

snadjafinia·10mo ago
Fixkamo-internal

Remove /ws rewrite from next.config (handled by Traefik)

- Removed Next.js rewrite for /ws paths - WebSocket routing now handled at Traefik IngressRoute level - Traefik routes internal.kamocrm.com/ws -> MediaService d...

snadjafinia·10mo ago
Fixkamo-internal

Route /ws requests directly to MediaService via Traefik

- Added dedicated route for /ws paths in IngressRoute - Routes internal.kamocrm.com/ws -> MediaService directly - Uses same ServersTransport as media-route for ...

snadjafinia·10mo ago
Fixkamo-internal

Allow /ws WebSocket endpoints without auth redirect

- Added /ws path to middleware bypass - SockJS needs to connect to /ws/info without redirect - WebSocket connections will still have *** cookie - Fixes WebSocke...

snadjafinia·10mo ago
Fixkamo-internal

Change WebSocket connection to same-origin

- Changed from media.kamocrm.com to same origin (internal.kamocrm.com) - Avoids cross-origin WebSocket connection issues - Added Next.js rewrite rule to proxy /...

snadjafinia·10mo ago
Featurekamo-internal

Add API proxy routes for WebRTC endpoints

- Added /api/webrtc/config proxy to MediaService - Added /api/webrtc/token proxy for Janus authentication - Added /api/webrtc/call/initiate, answer, end proxies...

snadjafinia·10mo 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·10mo ago
Fixkamo-internal

Remove invalid coder property from getDisplayMedia

- Using simple video: true for screen sharing - Build should now succeed

snadjafinia·10mo ago
Fixkamo-internal

Resolve build error - replace PhoneOff with CallEnd

- PhoneOff icon doesn't exist in @mui/icons-material - Using CallEnd which is the correct MUI icon - Removed unused duplicate files (ChatBoxWithWebRTC, VideoCal...

snadjafinia·10mo ago
Featurekamo-internal

Complete peer-to-peer WebRTC calling with signaling

- Added useWebRTC hook with full signaling support - Integrated WebSocket signaling (offers, answers, ICE candidates) - Added incoming call notifications with a...

snadjafinia·10mo ago
FeatureMediaService

Add WebSocket signaling for peer-to-peer calls

- Added WebRTCSignalingController for call signaling - Handles offer/answer exchange via STOMP - Forwards ICE candidates between peers - Manages call hangup not...

snadjafinia·10mo ago
Featurekamo-internal

Add Janus WebRTC integration for audio/video calls

- Added useJanusWebRTC hook for WebRTC call management - Added VideoCallPanel component for in-chat video display - Integrated with ChatBox for seamless call ex...

snadjafinia·10mo ago
FeatureMediaService

Add Janus WebRTC integration

- Added WebRTCController for token generation and call management - Configured Janus API URL and secrets (api, token, admin) - Configured STUN/TURN servers (kam...

snadjafinia·10mo ago
FeatureKlusterServices

Update TURN server credentials with secure values

- Updated turn-secret with secure random value - Updated turn-password for Janus authentication - Credentials match MediaService WebRTC configuration

snadjafinia·10mo 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·10mo 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·10mo 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·10mo ago
FixMediaService

Use full Kubernetes CRD provider name for ServersTransport reference

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

snadjafinia·10mo ago
FeatureKlusterServices

Add ServersTransport deployment to CI/CD workflow

Deploy traefik/serverstransport.yaml as part of Traefik deployment to both K1M1 and K2M1. This enables HTTP/1.1 backend connections for MediaService WebSocket s...

snadjafinia·10mo ago
FeatureKlusterServices

Add ServersTransport for MediaService WebSocket connections

Add media-websocket-transport ServersTransport resource to disable HTTP/2 for backend connections to MediaService. This is required for proper WebSocket upgrade...

snadjafinia·10mo 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·10mo ago
Revertkamo-internal

Restore WebSocket transport in SockJS

- Revert to using websocket transport (not polling) - WebSockets are standard and should work properly - Focus on fixing the actual WebSocket connection issue

snadjafinia·10mo ago
Fixkamo-internal

Skip WebSocket transport in SockJS to avoid HTTP/2 issues

- Use xhr-streaming and xhr-polling transports instead of websocket - These transports work with both HTTP/1.1 and HTTP/2 without requiring WebSocket upgrades -...

snadjafinia·10mo 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·10mo 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·10mo 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·10mo 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·10mo ago
FeatureKlusterServices

Add media-websocket-upgrade middleware to force Upgrade header

- Add Upgrade: websocket header for WebSocket paths to fix HTTP/2 Extended CONNECT conversion - This ensures HTTP/2 WebSocket upgrade requests are properly conv...

snadjafinia·10mo 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·10mo 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·10mo ago
FixMediaService

Configure IngressRoute service scheme for WebSocket support

- Set scheme: http to ensure proper HTTP/1.1 handling for WebSocket upgrades - HTTP/2 Extended CONNECT needs proper conversion to HTTP/1.1 Upgrade header - This...

snadjafinia·10mo ago
FixMediaService

Remove invalid handshake handler and fix SockJS configuration

- Remove invalid DefaultHandshakeHandler override (method doesn't exist) - Remove invalid setSupressCors call (method doesn't exist) - Keep HttpSessionHandshake...

snadjafinia·10mo ago
FixMediaService

Add WebSocket handshake logging and SockJS configuration

- Add handshake handler and interceptor logging to diagnose WebSocket connection issues - Configure SockJS to suppress CORS (handled by Spring Security) and dis...

snadjafinia·10mo ago
Fixkamo-internal

Configure SockJS transports to handle HTTP/2 WebSocket upgrade issues

- Explicitly configure SockJS transport order to prefer WebSocket, then fallback to xhr-streaming/xhr-polling - HTTP/2 WebSocket upgrades may fail, so SockJS wi...

snadjafinia·10mo 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·10mo ago

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing