Live Change Log

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

18,042
Total Changes
4,671
Features
4,589
Fixes
32
Projects
Filter by project
All Projects18,042AIService114APIService140BillingService133ConversionService87DaemonService109DocsService191ESigService80EmailService392InitializerService304KBService76KlusterServices550MCPGatewayService45MediaService466RAGService63SecurityService1,532TranslateService47VOIPService175VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,606kamo-login319kamo-marketing590kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,332kamo-signer-monorepo50kamolos104
Filter by type
All TypesBuild24CI523Chore670Docs231Feature4,671Fix4,589Other6,781Performance136Refactor274Revert23Style48Test71Upgrade1
November 6, 2025
Otherkamo-analytics

Merge pull request #3683 from analytics-software/dev

v3

Mike Cao·10mo ago
Refactorkamo-internal

Elevate softphone to enterprise-grade with premium features

ENTERPRISE FEATURES: - Call Recording with visual indicator and pulsing animation - Call Transfer functionality for seamless handoffs - Call Notes with expandab...

snadjafinia·10mo ago
Featurekamo-internal

Add expandable softphone panel to ChatBox

- Add PhoneInTalk icon button to ChatBox header for softphone toggle - Create comprehensive SoftphonePanel component with full UI - Implement dialpad with 0-9, ...

snadjafinia·10mo ago
Fixkamo-internal

Remove connected check and add debug logging for STOMP activation

STOMP client was not activating because connected check was preventing it. Added debug logs to diagnose.

snadjafinia·10mo ago
Fixkamo-internal

Activate STOMP client only after SockJS opens

Critical bug fix: STOMP client was being activated before SockJS opened, causing immediate disconnect. Now waits for SockJS onopen event before activating STOMP...

snadjafinia·10mo ago
Fixkamo-internal

Enable SockJS fallback transports for WebSocket connection

Allow xhr-streaming and xhr-polling as fallback if WebSocket upgrade fails.

snadjafinia·10mo ago
Refactorkamo-internal

Enhance ChatBox with dynamic color system and increased height

- Increase message viewing area by 33% (DOCKED_HEIGHT: 360 -> 480) - Create ChatBoxStyles.tsx with dynamic CSS variable-based color system - Apply primary color...

snadjafinia·10mo ago
Refactorkamo-internal

Modernize ChatBox design with professional polish

- Implement clean white background with subtle gray gradients - Add custom scrollbar styling integrated with primary color scheme - Enhance message bubbles with...

snadjafinia·10mo ago
Fixkamo-internal

Remove invalid 'active' property check in useChatWebSocket

The Client type from @stomp/stompjs doesn't have an 'active' property. Removed the invalid check since client.activate() is called immediately after client crea...

snadjafinia·10mo ago
Fixkamo-internal

Wait for SockJS to open before activating STOMP client

- Fix race condition where STOMP client activated before SockJS connection was ready - Move client.activate() to SockJS onopen callback - This should fix immedi...

snadjafinia·10mo ago
FeatureMediaService

Add STOMP frame logging to diagnose connection issues

snadjafinia·10mo ago
FeatureMediaService

Add TomcatConnectorCustomizer to force SSL keystore config

- Spring Boot's application.yml SSL config not being applied - Use TomcatConnectorCustomizer to programmatically set keystore - Forces connector to use /etc/ssl...

snadjafinia·10mo ago
FixMediaService

Hardcode SSL settings in ConfigMap for production

- Removed environment variable placeholders - Hardcoded port 8443, SSL enabled, keystore path - Fixes Spring Boot not resolving env vars correctly

snadjafinia·10mo ago
FixMediaService

Correct Spring Boot SSL environment variable names

- Changed SSL_ENABLED to SERVER_SSL_ENABLED - Changed SSL_KEY_STORE to SERVER_SSL_KEY_STORE - Changed SSL_KEY_STORE_PASSWORD to SERVER_SSL_KEY_STORE_PASSWORD - ...

snadjafinia·10mo ago
OtherMediaService

Add afterHandshake logging to diagnose WebSocket issues

snadjafinia·10mo ago
Otherkamo-internal

Add STOMP debug logging to diagnose connection issue

snadjafinia·10mo ago
Fixkamo-internal

Route ALL WebRTC API requests to port 8443

- Updated all WebRTC API routes to use media.{domain}:8443 - No longer using Traefik for WebRTC endpoints - Matches media API and WebSocket configuration

snadjafinia·10mo ago
Fixkamo-internal

Route ALL MediaService requests to port 8443 (bypass Traefik)

- Updated all media API routes to use media.{domain}:8443 - No longer using Traefik for MediaService - Both API and WebSocket go direct to port 8443 - internal....

snadjafinia·10mo ago
RevertMediaService

Simplify to HTTPS:8443 only, remove dual port config

- MediaService runs ONLY on port 8443 (HTTPS) - No more Traefik routing for MediaService - Removed DualPortConfig complexity - All traffic (API + WebSocket) goe...

snadjafinia·10mo ago
November 5, 2025
FixMediaService

Use SSLHostConfig API for Tomcat SSL configuration

- Use SSLHostConfig and SSLHostConfigCertificate (correct Tomcat API) - Configure certificate via **************** - Fixes compilation errors with setAttribute/...

snadjafinia·10mo ago
FixMediaService

Use setProperty on protocol handler

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

Connect to port 8443 (external) which routes to NodePort 30843

- Router forwards external 8443 to k1m1 NodePort 30843 - Browser uses media.kamocrm.com:8443 - Internal NodePort is 30843 (Kubernetes valid range)

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

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