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 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
FixMediaService

Remove duplicate WebSocket endpoint registration and improve logging

- Removed duplicate /ws endpoint registration (SockJS already handles native WebSocket) - Added null check for payload in subscribeToSession - This may fix WebS...

snadjafinia·10mo ago
FixMediaService

Remove invalid Spring Security path pattern /ws/**/websocket

- Spring Security does not allow path segments after /** pattern - /ws/** already matches all paths under /ws including websocket endpoints - This fixes Pattern...

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
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
FixSecurityService

Explicitly permit WebSocket endpoints in Spring Security

- Added explicit permitAll for /ws/** endpoints - WebSocket upgrade requests need explicit permission even in development mode - Fixes issue where WebSocket con...

snadjafinia·10mo ago
Fixkamo-shared-library

Search for existing chat sessions by participant membership, not just session owner

- Changed findOrCreateChatSession to search MediaSessionMember records instead of MediaSession.member - Now searches sessions where creator is a participant (me...

snadjafinia·10mo ago
FixSecurityService

Add detailed logging for message member ID retrieval

- Added logging to trace member ID for each message being returned - Logs member class name to detect proxy/stub issues - Logs distinct member IDs in response t...

snadjafinia·10mo ago
Fixkamo-shared-library

Add JOIN FETCH to eagerly load member in message queries

- Added JOIN FETCH m.member to both findBySessionAndIsRemovedFalse queries - Ensures member entity is eagerly loaded to avoid lazy loading issues - Fixes issue ...

snadjafinia·10mo ago
Fixkamo-shared-library

Automatically create NATS JetStream stream if it doesn't exist

- Added createStreamIfNotExists method to check and create the CHAT_MESSAGES stream - Stream is created with subjects from configuration (chat.>) - Fixes 'No ma...

snadjafinia·10mo ago
Fixkamo-internal

Extract large IDs from raw JSON to prevent JavaScript precision loss

- Extract memberID, userID, orgID, and securityOrgId from raw JSON string before parsing - Prevents precision loss for IDs > Number.MAX_SAFE_INTEGER (9007199254...

snadjafinia·10mo ago
Fixkamo-shared-library

Make NatsMessageService work with Optional JetStream injection

- Changed JetStream injection to Optional with @Autowired(required=false) to handle bean ordering issues - Removed @ConditionalOnBean to allow service creation ...

snadjafinia·10mo ago
Fixkamo-internal

Add detailed logging for member ID precision debugging

snadjafinia·10mo ago
FixSecurityService

Remove unused import

snadjafinia·10mo ago
Fixkamo-shared-library

Correct import for ConditionalOnProperty in NatsMessageService

snadjafinia·10mo ago
FixSecurityService

Fix syntax error in parentId handling

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