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
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
Featurekamo-internal

Preserve USERNAME and REMEMBER_ME cookies on logout and forward to kamo-login

- Exclude USERNAME and REMEMBER_ME cookies from deletion on logout - Forward logout request to kamo-login logout endpoint after clearing cookies

snadjafinia·11mo ago
Featurekamo-login

Add USERNAME and REMEMBER_ME cookies with domain-specific settings

- Set USERNAME cookie when remember me is checked on successful login (1 year expiration) - Clear USERNAME cookie when remember me is unchecked on any login att...

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
Otherkamo-login

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

- Clear all possible *** cookie variations (base domain, hostname, no domain) - Prevents reusing old session cookies from previous logins - Ensures new login al...

snadjafinia·11mo ago
Otherkamo-login

Fix logout: call SecurityService logout endpoint to fully invalidate session

- Call SecurityService /api/security/logout to properly invalidate session on Java backend - This ensures session is deleted, CSRF tokens are removed, and sessi...

snadjafinia·11mo ago
Otherkamo-internal

Fix logout: call SecurityService logout endpoint to fully invalidate session

- Call SecurityService /api/security/logout to properly invalidate session on Java backend - This ensures session is deleted, CSRF tokens are removed, and sessi...

snadjafinia·11mo ago
Otherkamo-login

Fix logout flow: clear cookies but still attempt auto-login

- Remove skipAutoLogin logic (auto-login should always work) - Add clearCookies param to logout redirect - Login page clears cookies when clearCookies=true, the...

snadjafinia·11mo ago
Otherkamo-login

Fix logout issue: prevent auto-login after logout

- Add skipAutoLogin query parameter to logout redirect - Skip auto-login check when skipAutoLogin=true is present - Enhanced cookie clearing on logout (multiple...

snadjafinia·11mo ago
Otherkamo-internal

Replace PersonIcon with user avatar in NavTop My Account link

- Fetch member avatar using fetchMemberAvatar utility - Display Avatar component with user's image or initials fallback - Matches design pattern used in other c...

snadjafinia·11mo ago
Otherkamo-shared-library

Add avatarType field to Avatar entity for simple type checking

- Add TYPE column to store 'photo' or 'Avatar Creator' - Remove duplicate constructors that conflicted with Lombok @NoArgsConstructor - Set avatarType when crea...

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

Add avatarType field to Avatar entity for simple type checking

- Add TYPE column to store 'photo' or 'Avatar Creator' - Set in constructors automatically - Avoids need for instanceof checks and proxy issues

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

Suppress unused variable warnings in avatar type detection

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