KamoCRM

Live Change Log

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

15,120
Total Changes
5,169
Features
4,935
Fixes
30
Projects
Filter by project
All Projects15,120AIService197APIService161BillingService143ConversionService107DaemonService129DocsService215ESigService88EmailService518InitializerService318KBService105KlusterServices697MCPGatewayService85MediaService546RAGService71SecurityService1,658TranslateService55VOIPService205VectorService11kamo-apps25kamo-asterisk-support24kamo-capcha17kamo-capcha-widget4kamo-internal6,937kamo-login330kamo-marketing625kamo-nowww20kamo-register213kamo-shared-library1,455kamo-signer-monorepo53kamolos108
Filter by type
All TypesBuild11CI523Chore738Docs2,167Feature5,169Fix4,935Other986Performance157Refactor274Revert23Style42Test94Upgrade1
November 6, 2025
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
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
November 5, 2025
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
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
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
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
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
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
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
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
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
November 4, 2025
Fixkamo-internal

Ensure messages route is recognized by Next.js

- Added logging to verify route is being hit - Route file exists and structure is correct for Next.js 15

snadjafinia·10mo ago
Fixkamo-internal

Remove non-existent 'active' property from STOMP Client logging

- STOMP Client doesn't have an 'active' property - Only check 'connected' property which is the correct state indicator

snadjafinia·10mo ago
Fixkamo-internal

Remove unsupported onWebSocketError handler from STOMP client

- onWebSocketError is not a valid property in ClientOptions - SockJS error handlers (onerror, onclose) already provide error handling

snadjafinia·10mo ago
Fixkamo-internal

Improve connection timeout handling with ref cleanup

snadjafinia·10mo ago
Fixkamo-internal

Add comprehensive WebSocket error handling and logging

- Added SockJS error handlers (onopen, onerror, onclose) to catch connection failures - Added connection timeout detection (10 seconds) to identify silent failu...

snadjafinia·10mo ago
Fixkamo-internal

Remove incorrect HTTPS agent workaround

- Reverted changes that bypassed certificate validation - Certificates are issued by auto-cert service (Let's Encrypt), not self-signed - Need to investigate wh...

snadjafinia·10mo ago
Fixkamo-internal

Use HTTPS with agent that accepts self-signed certificates

- Reverted to always use HTTPS (not HTTP) - Added HTTPS agent with rejectUnauthorized: false for self-signed certs - This allows server-side Next.js routes to c...

snadjafinia·10mo ago
Fixkamo-internal

Use Kubernetes service name for MediaService to avoid SSL cert issues

- Server-side Next.js routes now use **************** - This avoids self-signed certificate errors when connecting to https://media.kamocrm.com - Client-side re...

snadjafinia·10mo ago
Fixkamo-internal

Remove old /api/security/media/ routes that were intercepting requests

- Old routes were forwarding to APIService which no longer has media endpoints - All media requests should go through /api/media/ routes directly to MediaServic...

snadjafinia·10mo ago
Featurekamo-internal

Add detailed error logging for MediaService session creation

- Log MediaService URL being called - Log response headers - Enhanced error logging with full error details - Include URL in error response for debugging

snadjafinia·10mo ago
Fixkamo-internal

Add actions/checkout@v4 to deploy_k1m1 job as well

snadjafinia·10mo ago
Fixkamo-internal

Revert to actions/checkout@v4 to match other Next.js projects

- Remove complex manual checkout logic that was causing hangs - Use standard actions/checkout@v4 like kamo-login and kamo-register - Simplify Docker build conte...

snadjafinia·10mo ago
Fixkamo-internal

Use shallow clone with timeout to prevent hanging

- Use --depth 1 for faster cloning - Add timeout (120s for shallow, 300s for full) - Fallback to full clone if shallow fails - Fetch specific commit if needed a...

snadjafinia·10mo ago
Fixkamo-internal

Change to valid directory before git clone to avoid working directory error

- Change to /tmp or / before removing/cloning workspace - Only remove directory if it exists but is not a git repo - Prevents 'Unable to read current working di...

snadjafinia·10mo ago
Fixkamo-internal

Use hardcoded repository URL and set GITHUB_WORKSPACE env var

- Use direct repository URL to avoid DNS/hostname resolution issues - Set GITHUB_WORKSPACE environment variable for subsequent steps - Use env var in Docker bui...

snadjafinia·10mo ago
Fixkamo-internal

Use git clone directly instead of relying on empty workspace

- Clone repository using git directly with repository URL - Handle both fresh clone and existing repository cases - Use working-directory for Docker build actio...

snadjafinia·10mo ago
Fixkamo-internal

Simplify all checkout steps - remove git operations that hang

- Remove git fetch/reset/clean from deploy jobs - Forgejo runner already has code checked out - Just verify GITHUB_WORKSPACE is valid

snadjafinia·10mo ago
Fixkamo-internal

Simplify checkout step - remove git clone that was hanging

- Remove git clone logic that was causing 20+ minute hangs - Forgejo runner already has code checked out, just verify directory - Remove unnecessary git fetch/r...

snadjafinia·10mo ago
Fixkamo-internal

Improve checkout and Docker build context handling

- Add proper repository cloning if not already checked out - Verify Dockerfile exists before building - Use absolute paths for Docker build context - Fix workin...

snadjafinia·10mo ago
Fixkamo-internal

Replace actions/checkout with manual git checkout to avoid DNS issues

- Replace actions/checkout@v4 with manual git checkout commands - Forgejo runner already has code checked out, just need to ensure clean state - Fixes DNS looku...

snadjafinia·10mo ago
Featurekamo-internal

Add direct MediaService routes via media.{domain} for WebSocket support

- Create new /api/media/* routes that forward directly to media.{domain} - These routes bypass APIService to allow secure WebSocket connections - MediaService r...

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