KamoCRM

Live Change Log

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

17,500
Total Changes
5,986
Features
5,284
Fixes
30
Projects
Filter by project
All Projects17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
March 11, 2026
FixSecurityService

Enable commerce beans via kamo.commerce.enabled property

CommerceService and EngagementLifecycle now use @ConditionalOnProperty instead of @ConditionalOnBean. Set kamo.commerce.enabled=true so they load in SecuritySer...

Kamo·7mo ago
March 10, 2026
FixSecurityService

Save sessionTimeoutMinutes on member update

Kamo·7mo ago
March 9, 2026
FixSecurityService

Remove duplicate session timeout system from Redis records

Session expiry is now managed solely by the Redis key TTL. The internal createdAt/expiresIn fields stored inside the Redis value have been removed — they formed...

Kamo·7mo ago
February 12, 2026
FixSecurityService

Enable commerce JPA repos for POSController/CommerceService

SecurityService POSController depends on CommerceService which uses engagement, order, intent, etc. repositories. These live in com.kamo.z.shared.commerce.* but...

Kamo·8mo ago
February 11, 2026
FixSecurityService

Resolve Map type inference in POS controllers for CI compilation

- Use explicit Map<String, Object> in ResponseEntity Map.of() calls - Fixes 'incompatible types: inference variable V has incompatible bounds' when mixing DTO...

Kamo·8mo ago
February 3, 2026
December 17, 2025
FixSecurityService

Update NATS and MinIO configuration to use new VPN IPs

- Update NATS URLs from old Tailscale IPs (100.64.x.x) to Kubernetes service DNS - Update MinIO IPs from old Tailscale IPs to new VPN IPs (10.8.x.x) - Fixes NAT...

snadjafinia·10mo ago
December 12, 2025
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·10mo 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·10mo 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·10mo 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·10mo ago
November 29, 2025
November 28, 2025
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·11mo ago
November 27, 2025
November 26, 2025
FixSecurityService

Interoghează toate avatarele de utilizator pentru a obține entitate reală în loc de proxy

- Obțineți userId de la avatar, apoi interogare găsiByUserId (returnează entități reale) - Găsiți potrivire avatar de pe listă și caz de verificare - Acest lucr...

snadjafinia·11mo ago
FixSecurityService

Utilizați Hibernat LazyInitializer pentru a obține clasa entității reale de la proxy

- Acceseaza HibernateProxy LazyInitializer pentru a obtine clasa persistenta - Verificaţi dacă clasa persistentă este AvatarFoto sau AvatarAvatar Creator - Iniţ...

snadjafinia·11mo ago
FixSecurityService

Utilizaţi distribuţia directă pentru a determina tipul de avatar în loc de reflexie

- Încercați turnare la AvatarFoto primul pentru a forța inițializarea proxy - Access getFileExtension () direct dupa distributie - Retrageţi-vă la AvatarAvatar ...

snadjafinia·11mo ago
FixSecurityService

Îmbunătățește detectarea tip proxy prin capturarea InvocationTargetException

- Manipulați clasaCastExcepție atunci când invocați metode pe proxy pentru a determina tipul real - Încercaţi să obţineţi FileExtension primul (foto), apoi obţi...

snadjafinia·11mo ago
FixSecurityService

Îmbunătățește manipularea proxy hibernat pentru detectarea de tip avatar

- ierarhie clasa de căutare și interfețe pentru metoda getFileExtension - Utilizaţi reflecţia pentru a detecta AvatarFoto vs AvatarAvatar Creator atunci când in...

snadjafinia·11mo ago
FixSecurityService

Reîncarcă avatarul din depozit pentru a rezolva instanța proxy hibernată a problemei

- Entităţile Avatare încărcate din relaţii pot fi proxies hibernare care eşuează instanţa de verificare - Reîncarcă avatarul din depozit pentru a obține tipul r...

snadjafinia·11mo ago
FixSecurityService

Determină avatar activ prin verificarea utilizatorului.getAvatar() în loc de RecordState

- Platforma marchează acum corect ce acţionează avatarul prin compararea cu utilizatorul.getAvatar() - Acest lucru asigură steagul isActive în răspunsul API ref...

snadjafinia·11mo ago
November 25, 2025
FixSecurityService

Manipulați formatul de date ISO și îmbunătățiți parizarea tip avatarId

- Suport adăugat pentru formatul datei ISO (AAAA-LL-ZZ) în plus faţă de M/d/aaaa - Imbunatatire avatarId parsing pentru a manipula Tipuri de numere (Duble, BigD...

snadjafinia·11mo ago
FixSecurityService

Add better error handling and logging for user/member save operations

- Added try-catch around user save operation with detailed error logging - Added try-catch around member save operation with detailed error logging - Improved d...

snadjafinia·11mo ago
FixSecurityService

Improve avatarId parsing to handle string, integer, and long types

- Added support for parsing avatarId from String type - Better error handling for invalid avatarId formats - Added logging for avatar assignment and errors

snadjafinia·11mo ago
FixSecurityService

Add detailed logging to updateMemberProfile for debugging

- Added logging at start of updateMemberProfile method - Added logging before and after saving user and member - Improved error response to include error detail...

snadjafinia·11mo ago
FixSecurityService

Add support for updating user name fields and dateOfBirth in member profile

- Added UserRepository to MemberController - Updated updateMemberProfile to handle namePrefix, nameFirst, nameMiddle, nameLast, nameSuffix, nameFirstAKA, nameLa...

snadjafinia·11mo ago
FixSecurityService

Use correct bucket and object path structure for MinIO uploads

- Change bucket name from domain-based to 'public' bucket - Include domain path (e.g., kamocrm-com) as part of object name, not bucket name - Fix object path st...

snadjafinia·11mo ago
FixSecurityService

Properly handle MinIO upload failures for avatars

- Remove silent exception swallowing in Avatar Creator avatar creation - Add proper error handling and rollback for failed uploads - Delete database record if f...

snadjafinia·11mo ago
FixSecurityService

Handle missing fileHash column gracefully

- Add try-catch around fileHash access to handle missing database column - Fall back to ID-based file naming if fileHash column doesn't exist yet - Allows code ...

snadjafinia·11mo ago
FixSecurityService

Ensure theme domain URL includes https:// protocol

snadjafinia·11mo ago
FixSecurityService

Remove transformAvatarUrl - use URLs directly from backend

snadjafinia·11mo ago
FixSecurityService

Complete switch to public bucket for all avatar operations

snadjafinia·11mo ago
FixSecurityService

Use theme domain for presigned URLs in AvatarController

snadjafinia·11mo ago
November 24, 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