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
December 5, 2025
FixSecurityService

Reload market after create/update to initialize lazy collections

- Updated createMarket and updateMarket to reload market using getMarketById - This ensures all lazy collections (marketCustomForms, vendorProducts) are initial...

snadjafinia·9mo ago
CISecurityService

Trigger pipeline after kamo-shared-library update

snadjafinia·9mo ago
CISecurityService

Trigger pipeline after kamo-shared-library update

snadjafinia·9mo ago
FixSecurityService

Correct path handling for mortgage fields and custom form data in lead imports

- Fixed mortgage fields to use 2-part paths (mortgageFields.loanAmount) in setNestedFieldOnCreateRequest - Fixed custom form data to use 3-part paths **********...

snadjafinia·9mo ago
FixSecurityService

Make email/username login case-insensitive

- Normalize input username/email to lowercase before comparison - Use LOWER() function on database column for case-insensitive matching - Fixes issue where user...

snadjafinia·9mo ago
December 4, 2025
FeatureSecurityService

Add backend validation for required fields in lead imports

- Add validateRequiredFields method to check required fields before import - Validate email, firstName, and lastName are present - Validate mortgage-specific fi...

snadjafinia·9mo ago
FeatureSecurityService

Refactor LeadImportController to use LeadService.createLead

- Replace manual field mapping with LeadService.createLead for consistency - Add mapRowDataToCreateLeadRequest to convert import mappings to CreateLeadRequest -...

snadjafinia·9mo ago
FeatureSecurityService

Add LeadController with CRUD endpoints and market config

- Add LeadController with GET, POST, PUT, DELETE endpoints - Add endpoint to get market configuration for a lead - Fix LeadImportController to use saveLead meth...

snadjafinia·9mo ago
December 3, 2025
FixSecurityService

Cast getOrDefault to Boolean in formatEmail method

- Fix compilation error: incompatible types Object to boolean - Add explicit Boolean cast for toLowerCase and trim config options

snadjafinia·9mo ago
December 1, 2025
November 30, 2025
November 29, 2025
FeatureSecurityService

Add CustomFormController for custom forms API endpoints

- Add REST controller at /api/security/custom-forms - Implement GET, POST, PUT, DELETE endpoints for form management - Support form structure with stacks and fi...

snadjafinia·10mo ago
November 28, 2025
FeatureSecurityService

Add LeadVendorController with full CRUD for vendors and products

snadjafinia·10mo ago
FeatureSecurityService

Add detailed logging to **************** for debugging

snadjafinia·10mo ago
FeatureSecurityService

Add LeadMarketController for managing lead markets via REST API

snadjafinia·10mo ago
FeatureSecurityService

Use organization streamGuid for organization-wide media feed

- Added OrganizationRepository to MediaStreamController - Updated getFeed to use organization's streamGuid instead of querying all sessions - Updated createPost...

snadjafinia·10mo ago
FixSecurityService

Fix compilation errors in MediaStreamController

- Fixed missing closing brace in getFeed method else block - Replaced Map.of() with HashMap for compatibility - Fixed stream variable to be effectively final fo...

snadjafinia·10mo ago
RefactorSecurityService

Rename MediaFeedController to MediaStreamController and add lead stream support

- Renamed MediaFeedController to MediaStreamController for generic media stream handling - Added support for lead-specific streams via streamGuid - Feed endpoin...

snadjafinia·10mo ago
CISecurityService

Trigger pipeline after shared lib update

snadjafinia·10mo ago
FeatureSecurityService

Add MediaFeedController for social media feed

- Add MediaFeedController with REST endpoints for posts, comments, likes - Implement paginated feed endpoint with access level filtering - Add image upload endp...

snadjafinia·10mo ago
November 27, 2025
November 26, 2025
OtherSecurityService

Invalidate existing session before creating new one during login

- Check for existing *** cookie in login request - Delete/invalidate existing session before creating new one - Prevents reusing old session cookies when loggin...

snadjafinia·10mo ago
OtherSecurityService

Clear session data before deleting key to ensure session is unusable

- Set session data to empty JSON ({}) before deleting the key - Ensures session is unusable even if deletion fails or there's replication lag - Add error handli...

snadjafinia·10mo ago
OtherSecurityService

Improve logout cookie clearing - clear cookies across all domain/path combinations

- Clear cookies with base domain (e.g., .kamocrm.com) to cover all subdomains - Clear cookies for current hostname without domain attribute - Clear cookies unre...

snadjafinia·10mo ago
OtherSecurityService

Use avatarType field instead of complex proxy detection

- Check avatarType field directly for simple type checking - Set avatarType when creating new avatars - Much simpler and more performant approach

snadjafinia·10mo ago
FixSecurityService

Query all user avatars to get real entity instead of proxy

- Get userId from avatar, then query findByUserId (returns real entities) - Find matching avatar from list and check instanceof - This avoids proxy issues that ...

snadjafinia·10mo ago
OtherSecurityService

Use simple filter to check if avatar is photo or Avatar Creator

- Remove complex proxy detection logic - Simply filter findById result to check if it's AvatarPhoto - If not photo, default to Avatar Creator - Much simpler app...

snadjafinia·10mo ago
FixSecurityService

Use Hibernate LazyInitializer to get actual entity class from proxy

- Access HibernateProxy's LazyInitializer to get persistent class - Check if persistent class is AvatarPhoto or AvatarAvatar Creator - Force initialization usin...

snadjafinia·10mo ago
FixSecurityService

Suppress unused variable warnings in avatar type detection

snadjafinia·10mo ago
FixSecurityService

Use direct cast to determine avatar type instead of reflection

- Try casting to AvatarPhoto first to force proxy initialization - Access getFileExtension() directly after cast - Fall back to AvatarAvatar Creator cast if pho...

snadjafinia·10mo ago
FixSecurityService

Improve proxy type detection by catching InvocationTargetException

- Handle ClassCastException when invoking methods on proxy to determine actual type - Try getFileExtension first (photo), then getStyle (Avatar Creator) - Bette...

snadjafinia·10mo ago
FixSecurityService

Improve Hibernate proxy handling for avatar type detection

- Search class hierarchy and interfaces for getFileExtension method - Use reflection to detect AvatarPhoto vs AvatarAvatar Creator when instanceof fails - Add f...

snadjafinia·10mo ago
FixSecurityService

Reload avatar from repository to resolve Hibernate proxy instanceof issue

- Avatar entities loaded from relationships may be Hibernate proxies that fail instanceof checks - Reload avatar from repository to get actual entity type (Avat...

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