KamoCRM

Live Change Log

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

17,374
Total Changes
5,891
Features
5,258
Fixes
30
Projects
Filter by project
All Projects17,374AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,822TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,321kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,631kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,891Fix5,258Other993Performance165Refactor278Revert23Style42Test159Upgrade1
December 4, 2025
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·10mo 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·10mo 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·10mo 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·10mo 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·10mo 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·10mo 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·10mo 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·10mo 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·10mo 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·10mo 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·10mo 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·10mo 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·10mo ago
OtherKlusterServices

Remove duplicate driver line - use driver=mysql directly

snadjafinia·10mo 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·10mo 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·10mo 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·10mo 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·10mo 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·10mo ago
OtherKlusterServices

Add dovecot_config_version as first line in main dovecot.conf

snadjafinia·10mo 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·10mo ago
Featurekamo-shared-library

Add market-based lead fields and custom form data support

- Add marketId field to Lead entity - Create LeadCustomFormData entity with JSONB column for custom form data - Add LeadCustomFormDataRepository - Update LeadDT...

snadjafinia·10mo ago
OtherKlusterServices

Create main dovecot.conf file that includes conf.d directory

snadjafinia·10mo ago
OtherKlusterServices

Create conf.d directory before writing config files

snadjafinia·10mo ago
OtherKlusterServices

Use Dovecot default configs with custom overrides

- Copy default Dovecot configs first - Add custom config in conf.d/99-custom.conf - This ensures all required settings are present - Fixes 'mail_location: Unkno...

snadjafinia·10mo ago
OtherKlusterServices

Remove plaintext auth - Dovecot defaults to secure

- Removed auth_allow_plaintext setting - Dovecot will require encryption for authentication by default - All requirements verified: ✅ K1M1 only deployment (...

snadjafinia·10mo ago
OtherKlusterServices

Use Dovecot 2.4 with proper configuration

- Use Alpine latest (has Dovecot 2.4) - Add dovecot_config_version = 2.4 as FIRST setting (required) - Fix Dovecot SQL user_query to include mail location - Ver...

snadjafinia·10mo ago
OtherKlusterServices

Add dict block as first setting for Dovecot config

snadjafinia·10mo ago
OtherKlusterServices

Add config version comment to Dovecot config

snadjafinia·10mo ago
OtherKlusterServices

WORKING SOLUTION: Alpine-based Dovecot with MySQL backend

- Use Alpine Linux base image with Dovecot installed from packages - Dovecot config created inline - no Docker image restrictions - Full control over configurat...

snadjafinia·10mo ago
OtherKlusterServices

Add initial accounts to postfix-accounts.cf for docker-mailserver

- docker-mailserver requires at least one account in postfix-accounts.cf - Added sage@, support@, sysadmin@kamocrm.com with hashed passwords - Password hash gen...

snadjafinia·10mo ago
OtherKlusterServices

Replace separate Postfix/Dovecot with docker-mailserver integrated solution

- Deploy docker-mailserver **************** - Integrated Postfix + Dovecot in single proven container - Configure MySQL backend for virtual mailboxes/domains/al...

snadjafinia·10mo ago
OtherKlusterServices

Try older Dovecot Alpine image to avoid strict config requirements

- Switch from dovecot/dovecot:latest to dovecot/dovecot:2.3.21-alpine - Older version may not have strict dovecot_config_version requirement - Keeps all databas...

snadjafinia·10mo ago
OtherKlusterServices

Dovecot config iteration - simplified further

- Removed problematic includes and dict blocks - Simplified to minimal configuration - Note: The official dovecot/dovecot image has strict config requirements

snadjafinia·10mo ago
OtherKlusterServices

Simplify Dovecot config - remove problematic version include

- Remove dovecot-version include that was causing errors - Use simpler configuration with just protocols and protocol includes - Restarted Roundcube pod to trig...

snadjafinia·10mo ago
OtherKlusterServices

Fix Dovecot version requirement and create roundcubemail database

- Dovecot: Add dovecot-version.conf.ext include (required as first setting) - MySQL Job: CREATE DATABASE roundcubemail before granting permissions - Fixes 'The ...

snadjafinia·10mo ago
OtherKlusterServices

Simplify Dovecot config and fix MySQL permissions job

- Dovecot: Use single complete dovecot.conf instead of conf.d fragments - Dovecot: Simplified configuration with minimal working setup - MySQL Job: Use root cre...

snadjafinia·10mo ago
OtherKlusterServices

Fix Dovecot configuration and add permissions job to CI/CD

- Dovecot: Move passdb/userdb config directly into 10-auth.conf - Dovecot: Remove problematic auth-sql.conf.ext include - CI/CD: Add mysql-permissions-job.yaml ...

snadjafinia·10mo ago
OtherKlusterServices

Fix Dovecot auth syntax and Roundcube database permissions

- Dovecot: Fix auth-sql.conf.ext syntax - passdb/userdb need section names - MySQL: Grant ALL PRIVILEGES on roundcubemail database to kamo user - Add mysql-perm...

snadjafinia·10mo ago
OtherKlusterServices

Fix Dovecot and Postfix configurations to resolve CrashLoopBackOff

- Dovecot: Use conf.d structure with official Dovecot image defaults - Dovecot: Split config into individual files (10-auth, 10-mail, 10-master, 10-ssl) - Postf...

snadjafinia·10mo ago
OtherKlusterServices

Trigger deployment after WireGuard fix

snadjafinia·10mo ago
OtherKlusterServices

Fix kubeconfig setup in CI/CD to use Tailscale IPs directly

- Replace sed commands with kubectl config set-cluster for reliable connection - Use 100.64.1.1 for K1M1 and 100.64.2.1 for K2M1 directly - Fixes 'dial tcp 100....

snadjafinia·10mo ago
OtherKlusterServices

Add complete mail server infrastructure with Postfix, Dovecot, Roundcube, and MySQL

- Deploy mail server (MySQL, Postfix, Dovecot, Roundcube) to K1M1 only - Configure HTTPS access via Traefik at https://mail.kamocrm.com - Set up multi-domain su...

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