KamoCRM

Live Change Log

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

18,829
Total Changes
6,790
Features
5,684
Fixes
30
Projects
Filter by project
All Projects18,829AIService286APIService179BillingService166ConversionService121DaemonService151DocsService275ESigService101EmailService650InitializerService349KBService163KlusterServices775MCPGatewayService278MediaService627RAGService79SecurityService2,052TranslateService62VOIPService266VectorService11kamo-apps29kamo-asterisk-support29kamo-capcha17kamo-capcha-widget4kamo-internal8,868kamo-login346kamo-marketing642kamo-nowww20kamo-register216kamo-shared-library1,880kamo-signer-monorepo72kamolos115
Filter by type
All TypesBuild23CI528Chore796Docs3,293Feature6,790Fix5,684Other1,007Performance174Refactor285Revert23Style45Test180Upgrade1
November 18, 2025
Featurekamo-internal

Enhance phone number display field with modern animations

- Added auto-scroll to follow last dialed digit when number is too long - Implemented digit-by-digit pop-in animations with staggered timing - Added focus state...

snadjafinia·Nov 18, 2025
Fixkamo-internal

Remove duplicate onMouseLeave prop in dial pad buttons

- Combined duplicate onMouseLeave handlers into single handler - Fixes build error: No duplicate props allowed

snadjafinia·Nov 18, 2025
Featurekamo-internal

Improve dial pad with audio preloading and modern animations

- Preload all DTMF audio files when dialpad tab opens for instant playback - Add modern button animations with hover and press states - Implement visual feedbac...

snadjafinia·Nov 18, 2025
Featurekamo-internal

Add DTMF touch tone sounds to dial pad in chatbox

- Added DTMF tone generation script (generate-dtmf-tones.js) - Generated WAV files for all dial pad buttons (1-9, *, #, 0) - Integrated touch tone playback into...

snadjafinia·Nov 18, 2025
November 16, 2025
Fixkamo-internal

Resolve build errors in pipeline components

- Fixed Grid component usage: changed from Grid item xs={12} to Grid size={{ xs: 12 }} (MUI v6 Grid2 API) - Fixed invalid icon imports: replaced Package with In...

snadjafinia·Nov 16, 2025
Featurekamo-internal

Add Pipeline page with Applications, Orders, Shipments, and Returns tabs

- Created pipeline page using SettingsView component similar to account pages - Added Applications tab with application management and status tracking - Added O...

snadjafinia·Nov 16, 2025
Featurekamo-internal

Add Pipeline button to NavPri navigation

- Added Pipeline button with TimelineIcon after Accounts button - Links to /pipeline route - Always visible (not conditional on organization features)

snadjafinia·Nov 16, 2025
Featurekamo-internal

Update account page tabs to new account type categories

- Changed tabs from status-based to account type categories: - "Clients & Customers" (BusinessCenter icon) - "Members & Subscribers" (People icon) - "Empl...

snadjafinia·Nov 16, 2025
Refactorkamo-internal

Rename /hr/ folder to /account/ throughout the project

- Renamed app/hr/ to app/account/ - Renamed app/components/hr/ to app/components/account/ - Updated all references from /hr to /account in: - NavPri.tsx (navi...

snadjafinia·Nov 16, 2025
Fixkamo-internal

Simplify getDisplayName to use userInfo.usernameAlias directly

- Removed unnecessary fallback logic and error checks - Use userInfo.usernameAlias directly from *** session data - Only show ROFL if userInfo is missing or use...

snadjafinia·Nov 16, 2025
Fixkamo-internal

Resolve "Welcome back" user name display issue in NavTop

- Fixed getDisplayName() to only show "ROFL" on actual errors, not during loading - Added loading state handling to show "Welcome back..." while fetching user i...

snadjafinia·Nov 16, 2025
Otherkamo-internal

Add detailed logging to my-networks API route

- Added logging for request URL, headers, and cookie presence - Added specific logging for *** cookie detection - Added detailed error logging for 401 responses...

snadjafinia·Nov 16, 2025
Fixkamo-internal

Prevent automatic logout on 401 errors in network page

- Changed 401 error handling to show error message instead of immediately redirecting to /logout - Added retry button to error alert for easier recovery - Users...

snadjafinia·Nov 16, 2025
Featurekamo-internal

Add Employee Browser for HR page with EmployeeManager component

- Created EmployeeManager component similar to LeadManager with employee-specific fields - Updated /hr/page.tsx to match doc manager layout with gradient header...

snadjafinia·Nov 16, 2025
Fixkamo-internal

Remove invalid onWebSocketClose and onWebSocketError from ClientOptions

- Removed onWebSocketClose and onWebSocketError handlers as they are not valid ClientOptions properties - WebSocket close and error events are already handled i...

snadjafinia·Nov 16, 2025
Fixkamo-internal

Move onWebSocketClose and onWebSocketError to Client constructor options

- Moved onWebSocketClose and onWebSocketError from property assignment to Client constructor options - These handlers should be defined in ClientOptions, not as...

snadjafinia·Nov 16, 2025
Fixkamo-internal

Remove invalid 'active' property check from STOMP Client

- Removed clientRef.current.active check which doesn't exist on Client type - Using only clientRef.current.connected which is the correct property

snadjafinia·Nov 16, 2025
Fixkamo-internal

Replace StompSubscription with Subscription from @stomp/stompjs

- Changed import from StompSubscription to Subscription (correct export name) - Updated all type references to use Subscription instead of StompSubscription

snadjafinia·Nov 16, 2025
November 15, 2025
Fixkamo-internal

Remove invalid connectionTimeout property from STOMP ClientOptions

- Removed connectionTimeout property which is not part of ClientOptions type - Connection timeout is already handled manually via connectionTimeoutRef

snadjafinia·Nov 15, 2025
Fixkamo-internal

Resolve TypeScript build error in LeadManager component

- Fixed Chip icon prop type error by changing ReactNode to ReactElement - Removed unused imports and props - Fixed useMemo dependency warning by wrapping IdRend...

snadjafinia·Nov 15, 2025
Featurekamo-internal

Update leads page with LeadManager component matching doc manager layout

- Created LeadManager component similar to DocManager with lead-specific fields - Updated /leads/page.tsx to match doc manager layout with gradient header - Add...

snadjafinia·Nov 15, 2025
November 7, 2025
Fixkamo-internal

Auto-scroll chat to bottom on load and new messages

Track previous message count and scroll smoothly when new messages arrive; scroll immediately on initial load or when un-minimizing

snadjafinia·Nov 7, 2025
November 6, 2025
Fixkamo-internal

Frontend WebSocket persistence - match backend timing and faster reconnect

Heartbeat: 4s -> 20s to match backend, reconnect delay: 5s -> 1s, add 30s connection timeout

snadjafinia·Nov 6, 2025
Refactorkamo-internal

Unified header design spanning both chat and softphone panels

REMOVED: Status bar from softphone (wifi, signal, time - unnecessary for web app) SHARED HEADER: Title bar now spans both softphone and chat when expanded LAY...

snadjafinia·Nov 6, 2025
Fixkamo-internal

Optimize softphone to fit all content without scrolling at 680px height

CHATBOX HEIGHT: 550px -> 680px (optimal balance) PHONE DISPLAY: Reduced minHeight (100/75 -> 85/65), padding (14/16 -> 12/14) CALL CONTROLS: All 9 buttons - p...

snadjafinia·Nov 6, 2025
Fixkamo-internal

Reduce ChatBox height to more comfortable 550px

Changed from 85% viewport (750-850px) to fixed 550px for better UX WebRTC call controls remain fully intact and functional

snadjafinia·Nov 6, 2025
Featurekamo-internal

Add premium enterprise features - Analytics, CRM, AI Assistant, Advanced

ANALYTICS DASHBOARD - Real-time call metrics with interactive charts CRM INTEGRATION - Customer data, lifetime value, activity tracking AI ASSISTANT - Sentime...

snadjafinia·Nov 6, 2025
Featurekamo-internal

Implement 100% enterprise VoIP desk phone features

Complete implementation of 100+ features matching Cisco 8800, Polycom VVX 600, Yealink T58A 7 Tabs: Dialpad, Speed Dial/BLF, History, Voicemail, Contacts, Queu...

snadjafinia·Nov 6, 2025
Fixkamo-internal

Make softphone fully visible without scrolling - comprehensive compact layout

CHATBOX HEIGHT: - Changed from fixed 600px to 85% of viewport height - Uses Math.floor(window.innerHeight * 0.85) for responsive sizing - Provides much more ver...

snadjafinia·Nov 6, 2025
Fixkamo-internal

Eliminate horizontal scrollbars and increase softphone visibility

LAYOUT FIXES: - Increase DOCKED_HEIGHT from 480px to 600px for better vertical space - Add explicit width constraints (minWidth, maxWidth) to SoftphonePanel roo...

snadjafinia·Nov 6, 2025
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·Nov 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·Nov 6, 2025
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·Nov 6, 2025
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·Nov 6, 2025
Fixkamo-internal

Enable SockJS fallback transports for WebSocket connection

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

snadjafinia·Nov 6, 2025
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·Nov 6, 2025
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·Nov 6, 2025
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·Nov 6, 2025
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·Nov 6, 2025
Otherkamo-internal

Add STOMP debug logging to diagnose connection issue

snadjafinia·Nov 6, 2025
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·Nov 6, 2025
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·Nov 6, 2025
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·Nov 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·Nov 5, 2025
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·Nov 5, 2025
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·Nov 5, 2025
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·Nov 5, 2025
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·Nov 5, 2025
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·Nov 5, 2025
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·Nov 5, 2025

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