KamoCRM

Live Change Log

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

18,403
Total Changes
6,535
Features
5,539
Fixes
30
Projects
Filter by project
All Projects18,403AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService622InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,996TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,697kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,826kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,535Fix5,539Other1,001Performance174Refactor282Revert23Style45Test175Upgrade1
December 5, 2025
OtherKlusterServices

Fix postfix command to use apt-get instead of apk

boky/postfix is Debian-based, not Alpine

snadjafinia·11mo ago
OtherKlusterServices

Add postfix-mysql support for MySQL virtual maps

Installed postfix-mysql package at container startup to enable MySQL dictionary lookups for virtual domains/users/aliases

snadjafinia·11mo ago
OtherKlusterServices

Add auth debugging and ensure MySQL driver packages for Dovecot

- Enable auth_debug, auth_debug_passwords, auth_verbose - Add dovecot-mysql package for proper SQL support - Add mariadb-connector-c for MySQL protocol compatib...

snadjafinia·11mo ago
OtherKlusterServices

Add MySQL auth fix job for MariaDB client compatibility

Changes kamo user from caching_sha2_password to mysql_native_password Required for Dovecot (Alpine/MariaDB) to connect to MySQL 8

snadjafinia·11mo ago
OtherKlusterServices

Replace Roundcube logo with Kamo logo

Added skin_logo config pointing to **************** Updated deployment annotation to trigger pod restart

snadjafinia·11mo ago
OtherKlusterServices

Fix MySQL auth: change kamo user to mysql_native_password

Alpine's MariaDB client doesn't support caching_sha2_password plugin This prevents Dovecot from connecting to MySQL for authentication

snadjafinia·11mo ago
OtherKlusterServices

Force Roundcube pod restart to pick up ConfigMap change

Added annotation to trigger pod recreation since ConfigMap with subPath doesn't auto-update in running pods

snadjafinia·11mo ago
Fixkamo-internal

Remove 'name' property reference in updateLead function

- Lead interface only has 'primaryContact', not 'name' - Removed fallback to patch.name in updateLead - Completes the fix for type safety

snadjafinia·11mo ago
Fixkamo-internal

Remove non-existent 'name' property references in leadsApi

- Lead interface only has 'primaryContact', not 'name' - Removed fallback to leadData.name in createLead and updateLead - Ensures type safety and correct API be...

snadjafinia·11mo ago
OtherKlusterServices

Fix Roundcube redirect loop - disable force_https

Traefik handles TLS termination, so internal traffic is HTTP Setting force_https=true caused Roundcube to redirect to HTTPS internally creating an infinite redi...

snadjafinia·11mo ago
OtherKlusterServices

Reference kamocrm.com wildcard cert in mail IngressRoute

The certificate secret is in kamo namespace, copied to mail namespace tls.secretName explicitly references wildcard-kamocrm-com

snadjafinia·11mo ago
OtherKlusterServices

Fix mail IngressRoute to use auto-cert service

Changed tls from certResolver: letsencrypt to tls: {} This allows the auto-cert service to automatically generate certs when mail.kamocrm.com is accessed

snadjafinia·11mo ago
OtherKlusterServices

Fix Roundcube readiness probe - use TCP socket instead of HTTP

Roundcube redirects / to login page (302), failing HTTP readiness probe TCP socket check on port 80 works correctly

snadjafinia·11mo ago
Fixkamo-internal

Replace remaining Grid closing tags with GridLegacy in CreateLeadClient

- Fixed all remaining </Grid> tags that should be </GridLegacy> - Ensures proper closing of GridLegacy item components - Resolves JSX syntax error

snadjafinia·11mo ago
OtherKlusterServices

Switch to Alpine 3.18 with Dovecot 2.3.20 for stable SQL auth

Dovecot 2.4 has incompatible configuration changes without clear docs Alpine 3.18 has Dovecot 2.3.20 which uses traditional well-documented syntax - mail_locati...

snadjafinia·11mo ago
December 4, 2025
Fixkamo-internal

Replace Grid with GridLegacy for item prop in CreateLeadClient

- MUI v7 moved 'item' prop to GridLegacy component - Updated all Grid item instances to GridLegacy - Required for compatibility with MUI v7

snadjafinia·11mo ago
Fixkamo-internal

Add missing 'email' property to Lead interface

- leadsApi.createLead expects email as a separate property - Email is also available in primaryContact.email but API needs it at Lead level - Required for lead ...

snadjafinia·11mo ago
Fixkamo-internal

Cast customFormData to correct type in CreateLeadClient

- TypeScript was complaining about type mismatch between Record<string, Record<string, unknown>> and Record<string, CustomFormData> - Added type assertion to ma...

snadjafinia·11mo ago
OtherKlusterServices

Remove address setting from inet_listener - not valid in Dovecot 2.4.2

The listen = * at top level handles binding to all interfaces

snadjafinia·11mo ago
Fixkamo-internal

Add missing 'vendorLeadID' property to Lead interface

- Property exists in Java Lead bean but was missing from TypeScript interface - Required for lead creation and import functionality

snadjafinia·11mo ago
OtherKlusterServices

Fix Dovecot 2.4.2 config: mail_location renamed to mail_path

In Dovecot 2.4.2: - mail_location is now mail_path (top-level setting, no blocks) - Added dovecot_storage_version = 2.4.2 (required) - Updated SQL user_query to...

snadjafinia·11mo ago
Fixkamo-internal

Add missing 'languages' property to primaryContact in CreateLeadClient

- Contact interface requires 'languages' property - Initialize with empty array to satisfy type requirements

snadjafinia·11mo ago
Fixkamo-internal

Use GridLegacy for Grid component with item prop in MortgageFieldsComponent

- MUI v7 moved Grid with item prop to GridLegacy - Update import to use GridLegacy to fix TypeScript error

snadjafinia·11mo ago
OtherKlusterServices

Fix Dovecot 2.4 config syntax - use mail{} and ssl{} blocks

- Put mail_location, uid, gid settings inside mail { } block (Dovecot 2.4 requirement) - Put ssl settings inside ssl { } block - Add initContainer to create mai...

snadjafinia·11mo ago
Fixkamo-internal

Use GridLegacy for Grid component with item prop in CustomFormFieldsComponent

- MUI v7 moved Grid with item prop to GridLegacy - Update import to use GridLegacy to fix TypeScript error

snadjafinia·11mo ago
Otherkamo-internal

Fix TypeScript type error in CustomFormFieldsComponent

snadjafinia·11mo ago
Fixkamo-internal

Replace all 'any' types with proper TypeScript types

- Replace Record<string, any> with Record<string, unknown> - Replace any parameter types with unknown or specific types - Remove unused imports (authenticatedFe...

snadjafinia·11mo ago
FixKlusterServices

Remove heredoc whitespace issue - use echo commands and ConfigMap

The heredocs had leading whitespace from YAML indentation causing parse errors - Use echo commands to create dovecot.conf without leading whitespace - Mount aut...

snadjafinia·11mo ago
OtherKlusterServices

Go back to args with external SQL config file - mysql blocks don't work

The mysql { } block syntax causes 'Unknown section name: mysql' error Use passdb sql { driver = sql; args = **************** } External file has correct format:...

snadjafinia·11mo ago
OtherKlusterServices

Use Dovecot 2.4.2 format: mysql connection block + named sections with query

Found in actual examples: - sql_driver = mysql - mysql hostname { user, password, dbname } connection block - passdb sql { query = ... } with named sections - u...

snadjafinia·11mo ago
Fixkamo-internal

Resolve compilation errors in CustomFormFieldsComponent and LeadManager

- Remove stray fragment closing tag (</>) in CustomFormFieldsComponent.tsx - Remove duplicate leadId declaration in LeadManager.tsx IdRenderer

snadjafinia·11mo ago
OtherKlusterServices

Remove named sections - try passdb/userdb without names, use args

Error said 'Unknown section name: mysql' - the mysql block was wrong Try passdb/userdb WITHOUT names (just passdb { and userdb {) Use args = **************** Ex...

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

Add validation for required fields in lead imports

- Mark email, firstName, and lastName as required fields in leadFields.ts - Add validation in handleStartImport to check all required fields are mapped - Add va...

snadjafinia·11mo ago
OtherKlusterServices

Try sql_host, sql_user, sql_password, sql_db instead of connect or args

Based on error suggesting passdb_sql_args - maybe SQL settings use sql_ prefix - Named sections: passdb sql { and userdb sql { - driver = sql with sql_driver = ...

snadjafinia·11mo ago
OtherKlusterServices

Use args parameter with named sections - external SQL config file

Based on examples found: Dovecot 2.4 allows args with named sections - Named sections: passdb sql { and userdb sql { - driver = sql - args = **************** (r...

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

Add dynamic field mapping for lead imports based on market configuration

- Update leadFields.ts to include mortgage fields and getAllSystemFields function - Add MORTGAGE_FIELDS array with all LeadClaimMortgage fields - Update LeadMan...

snadjafinia·11mo ago
FixKlusterServices

Use driver=sql with sql_driver=mysql and inline connect

Based on official Dovecot 2.4 examples found online: - Named sections: passdb sql { and userdb sql { - driver = sql (not driver = mysql) - sql_driver = mysql (s...

snadjafinia·11mo ago
FixKlusterServices

Use driver=mysql (not driver=sql) with inline connect in Dovecot 2.4

Based on official Dovecot 2.4 examples: - Named sections: passdb sql { and userdb sql { - Use driver = mysql (not driver = sql) - Inline connect, default_pass_s...

snadjafinia·11mo ago
OtherKlusterServices

Try using args parameter with named sections in Dovecot 2.4

- Use 'passdb sql {' and 'userdb sql {' (named sections required) - Use 'driver = sql' with 'args = **************** - Maybe args works with named sections even...

snadjafinia·11mo ago
OtherKlusterServices

Add names to passdb/userdb sections (required in Dovecot 2.4)

- Use 'passdb sql {' and 'userdb sql {' with named sections - Keep SQL settings inline (no args parameter) - Both requirements: named sections AND inline SQL se...

snadjafinia·11mo ago
OtherKlusterServices

Remove duplicate driver line - use driver=mysql directly

snadjafinia·11mo ago
FixKlusterServices

Dovecot 2.4 requires SQL settings inline, not args parameter

- Dovecot 2.4 removed 'args' parameter for passdb/userdb - SQL connection settings must be specified directly in passdb/userdb blocks - Put driver=mysql, connec...

snadjafinia·11mo ago
OtherKlusterServices

Fix Dovecot 2.4 passdb/userdb - must have names (passdb sql, userdb sql)

- Dovecot 2.4 requires named passdb/userdb sections - Changed from 'passdb {' to 'passdb sql {' - Changed from 'userdb {' to 'userdb sql {'

snadjafinia·11mo ago
Featurekamo-internal

Remove all mock data and make leads system production-ready

- Remove all mock data generation from leadsApi.ts (mockStore, ensureMock, faker.js) - Remove withMock wrapper function and all fallback logic - Remove generate...

snadjafinia·11mo ago
OtherKlusterServices

Fix passdb syntax - use separate auth-sql.conf.ext file

- Create auth-sql.conf.ext with proper passdb/userdb blocks - Include it in 10-auth.conf instead of inline blocks - This fixes 'passdb { } is missing section na...

snadjafinia·11mo ago
OtherKlusterServices

Fix Dovecot config - use proper config files (10-mail.conf, 10-auth.conf, 10-master.conf)

- Override mail_location in 10-mail.conf (where it belongs) - Configure SQL auth in 10-auth.conf - Configure services in 10-master.conf - This matches Dovecot's...

snadjafinia·11mo ago
OtherKlusterServices

Add dovecot_config_version as first line in main dovecot.conf

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