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

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
December 1, 2025
Otherkamo-internal

Fix syntax errors in startScreenShare room creation

snadjafinia·10mo ago
Otherkamo-internal

Complete room creation fix for startScreenShare function

snadjafinia·10mo ago
November 30, 2025
November 27, 2025
Otherkamo-login

Add logging for rememberMe value and type conversion

- Add type conversion for rememberMe to handle string/boolean/number - Add detailed logging to trace cookie setting logic - Log rememberMe value and type to deb...

snadjafinia·11mo ago
Otherkamo-login

Add comprehensive logging for USERNAME and REMEMBER_ME cookie operations

- Add detailed logging for cookie reading on page load - Add logging to verify cookies are set after login response - Add Set-Cookie header logging in login API...

snadjafinia·11mo ago
November 26, 2025
Otherkamo-login

Update hidden username field to use formKey for remount

- Add key to hidden username input to force remount after logout - Ensures all username-related fields are completely fresh after logout

snadjafinia·11mo ago
Otherkamo-login

Force form remount after logout to prevent browser autofill

- Add formKey state that changes after logout to force component remount - Change TextField key to include formKey - Change motion.div key to include formKey - ...

snadjafinia·11mo ago
Otherkamo-login

Use randomized field names to prevent browser autofill recognition

- Generate random suffix for username field names on each page load - Prevents browser from recognizing field as same one across page loads - Combined with auto...

snadjafinia·11mo ago
Otherkamo-login

Prevent browser autofill from restoring old username after logout

- Change autocomplete from 'username' to 'off' on username field - Change form autocomplete from 'on' to 'off' - Clear username and password state when coming f...

snadjafinia·11mo ago
Otherkamo-login

Delete ALL cookies indiscriminately during logout

- Delete all cookies on kamo-login logout page (client-side) - Delete all cookies on kamo-login logout API (server-side) - Clear localStorage and sessionStorage...

snadjafinia·11mo ago
Otherkamo-internal

Delete ALL cookies indiscriminately during logout

- Delete all cookies on kamo-internal logout page (client-side) - Delete all cookies on kamo-internal logout API (server-side) - Clear localStorage and sessionS...

snadjafinia·11mo ago
Otherkamo-internal

Invalidate existing session before validating OTK

- Check for existing *** cookie in validate request - Clear and delete any existing session before validating OTK - Verify session data is not empty JSON (clear...

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

Disable activity tracking and session extension during logout

- Add disableClientActivityTracker() function to stop activity tracking - Stop session monitor when logout is initiated - Prevent screen movement/activity from ...

snadjafinia·11mo ago
Otherkamo-login

Clear session data before deleting key in logout endpoint

- 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 handling wi...

snadjafinia·11mo ago
Otherkamo-internal

Clear session data before deleting key in logout endpoint

- 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 handling wi...

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

Clear existing *** cookies before setting new one during validate

- Clear all possible *** cookie variations before setting new cookie - Prevents reusing old session cookies from previous logins - Ensures validate always uses ...

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