KamoCRM

Live Change Log

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

17,659
Total Changes
6,077
Features
5,341
Fixes
30
Projects
Filter by project
All Projects17,659AIService260APIService174BillingService158ConversionService110DaemonService138DocsService223ESigService91EmailService587InitializerService329KBService151KlusterServices744MCPGatewayService261MediaService604RAGService79SecurityService1,874TranslateService62VOIPService250VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,412kamo-login340kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,681kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild16CI523Chore776Docs3,257Feature6,077Fix5,341Other998Performance165Refactor278Revert23Style42Test162Upgrade1
November 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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo ago
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·11mo 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·11mo 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·11mo 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·11mo 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·11mo ago
Fixkamo-internal

Enable SockJS fallback transports for WebSocket connection

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

snadjafinia·11mo 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·11mo ago
Refactorkamo-internal

Modernizzare il design ChatBox con la polish professionale

- Implementare sfondo bianco pulito con sottili gradienti grigi - Aggiungere lo stile personalizzato della barra di scorrimento integrato con lo schema di color...

snadjafinia·11mo ago
Fixkamo-internal

Rimuovere il controllo di proprietà non valido 'attivo' in usoChatWebSocket

Il tipo di cliente da @stomp/stompjs non ha una proprietà 'attiva'. Rimuoveto il controllo non valido dal client.activate() viene chiamato immediatamente dopo l...

snadjafinia·11mo ago
Fixkamo-internal

Attendere che SockJS si apra prima di attivare il client STOMP

- Fissare la condizione di gara in cui il client STOMP attivato prima della connessione SockJS era pronto - Spostare client.activate() a SockJS in callback aper...

snadjafinia·11mo ago
Otherkamo-internal

Add STOMP debug logging to diagnose connection issue

snadjafinia·11mo ago
Fixkamo-internal

Route ALL WebRTC API richieste alla porta 8443

- Aggiornato tutti i percorsi API WebRTC da utilizzare media.{domain}:8443 - Non usare più Traefik per gli endpoint WebRTC - Configurazione API e WebSocket

snadjafinia·11mo ago
Fixkamo-internal

Route ALL MediaService richieste al porto 8443 (bypass Traefik)

- Aggiornato tutti i media API percorsi da utilizzare media.{domain}:8443 - Non usare più Traefik per MediaService - Sia API che WebSocket vanno direttamente al...

snadjafinia·11mo ago
November 5, 2025
Fixkamo-internal

Collegare alla porta 8443 (esterno) che si dirige a NodePort 30843

- Router in avanti esterno 8443 a k1m1 NodePort 30843 - Browser utilizza media.kamocrm.com:8443 - Interno NodePort è 30843 (Kubernetes gamma valida)

snadjafinia·11mo ago
Featurekamo-internal

Connessione alla porta MediaService 8443 per WebSocket

- Collegamento WebSocket aggiornato per usare media.kamocrm.com:8443 - Bypasses Traefik per traffico WebSocket - Utilizza la connessione HTTPS/HTTP1.1 diretta a...

snadjafinia·11mo ago
Fixkamo-internal

Rimuovere la restrizione di trasporto solo WebSocket per la compatibilità HTTP/2

- WebSocket API non supporta HTTP/2 (RFC 8441 non implementato) - Native WebSocket richiede HTTP/1.1 Aggiornamento che non supera HTTP/2 - Let SockJS auto-selec...

snadjafinia·11mo ago
Fixkamo-internal

Utilizzare il trasporto WebSocket-only (disable XHR polling)

- Cambio di trasporto SockJS da [websocket, xhr-streaming, xhr-polling] a [websocket] - Rimuove l'errore a XHR polling - Forza connessione WebSocket pura - Fa i...

snadjafinia·11mo ago
Revertkamo-internal

Collegare WebSocket direttamente a media.kamocrm.com

- Ritornato all'approccio originale: collegarsi ai media.* subdomini direttamente - Rimozione della complessità non necessaria dell'origine - Rimuoveto /ws bypa...

snadjafinia·11mo ago
Fixkamo-internal

Rimuovere il riferimento esplicito namespace da kamowsmedia-service

- Entrambi i servizi sono nello stesso namespace (kamo) - Riferimenti espliciti namespace non necessari - Evita potenziali problemi trasversali

snadjafinia·11mo ago
Fixkamo-internal

Rimuovere /ws riscrivere dal prossimo. config (a cura di Traefik)

- Rimuoveto Next.js riscrittura per /ws percorsi - WebSocket routing ora gestito a livello Traefik IngressRoute - Traefik percorsi internal.kamocrm.com/ws -> Me...

snadjafinia·11mo ago
Fixkamo-internal

Route /ws richiede direttamente MediaService via Traefik

- Aggiunto il percorso dedicato per /ws percorsi in IngressRoute - Routes internal.kamocrm.com/ws -> MediaService direttamente - Utilizza gli stessi serverTrasp...

snadjafinia·11mo ago
Fixkamo-internal

Consentire /ws WebSocket endpoints senza auth redirect

- Aggiunto /ws percorso di bypass middleware - SockJS ha bisogno di connettersi a /ws/info senza reindirizzare - Le connessioni WebSocket avranno ancora un cook...

snadjafinia·11mo ago
Fixkamo-internal

Cambia connessione WebSocket con lo stesso indirizzo

- Cambiato da media.kamocrm.com alla stessa origine (internal.kamocrm.com) - Evita problemi di connessione WebSocket cross-origin - Aggiunto Next.js rewrite reg...

snadjafinia·11mo ago
Featurekamo-internal

Aggiungi percorsi proxy API per endpoint WebRTC

- Aggiunto /api/webrtc/config proxy a MediaService - Aggiunto /api/webrtc/token proxy per l'autenticazione Janus - Aggiunto /api/webrtc/call/initiate, risposta,...

snadjafinia·11mo ago
Fixkamo-internal

Rimuovi proprietà del coder non valide da getDisplayMedia

- Utilizzo di un semplice video: vero per la condivisione dello schermo - La costruzione dovrebbe avere successo

snadjafinia·11mo ago
Fixkamo-internal

Risolvere l'errore di costruzione - sostituire PhoneOff con CallEnd

- PhoneOff icona non esiste in @mui/icons-material - Utilizzando CallEnd che è l'icona MUI corretta - File duplicati non utilizzati (ChatBoxWithWebRTC, VideoCal...

snadjafinia·11mo ago
Featurekamo-internal

Chiamata completa peer-to-peer WebRTC con segnale

- Aggiunta usWebRTC gancio con supporto di segnale completo - Segnalazione integrata di WebSocket (offerta, risposte, candidati ICE) - Aggiunto le notifiche di ...

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