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
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
November 26, 2025
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
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-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
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-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-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
Fixkamo-internal

Ensure initials SVG is always created when avatar is missing in HexHeadGroup

- Add error handling fallback to create initials SVG if avatar fetch fails - Consolidate initials SVG creation logic - Ensure avatarSrc is never empty string

snadjafinia·11mo ago
Fixkamo-internal

Refresh avatars list after setting avatar as active

- After setting avatar as active, refresh the full avatars list to get updated isActive flags - Find and set the active avatar from the refreshed list - This en...

snadjafinia·11mo ago
Fixkamo-internal

Load active avatar from avatars list on Profile page

- Fetch avatars list and find the one marked as active - Set activeAvatar from the full avatar object in the list (has all details and URL) - Remove redundant a...

snadjafinia·11mo ago
Otherkamo-internal

Fix avatar not displaying on Profile page after refresh

- Ensure avatar URL from member profile is preserved when setting activeAvatar - Update profileData with avatar URL when avatar is loaded - Preserve URL in sync...

snadjafinia·11mo ago
Otherkamo-internal

Add detailed logging for avatar selection debugging

- Log full avatar object when handleSelectAvatar is called - Add validation for avatar.id before processing - Log API URL being called - Better error messages f...

snadjafinia·11mo ago
Otherkamo-internal

Fix TypeScript type error - handle null body in apiProxy

- Convert null to undefined for BodyInit type compatibility - Fixes: Type 'null' is not assignable to type 'BodyInit | undefined'

snadjafinia·11mo ago
Otherkamo-internal

Fix PUT request body handling for set-active endpoint

- Explicitly set body to undefined for PUT requests without body - Improve body handling in apiProxy to gracefully handle empty requests - Prevents body consump...

snadjafinia·11mo ago
Otherkamo-internal

Improve error handling for set-active avatar endpoint

- Forward actual backend error messages instead of generic message - Better error parsing in frontend (handle both JSON and text responses) - Enhanced logging t...

snadjafinia·11mo ago
Otherkamo-internal

Use static imports instead of dynamic imports for avatarUtils

- Replace dynamic imports with static imports at top of file - Avoids module resolution issues with TypeScript moduleResolution node16 - Functions are always ne...

snadjafinia·11mo ago
Otherkamo-internal

Fix path alias - use @/lib/avatarUtils instead of @/app/lib/avatarUtils

- @/ maps to project root, so @/lib/avatarUtils is correct path - @/app/lib/avatarUtils was incorrect (would look for app/app/lib/avatarUtils)

snadjafinia·11mo ago
Otherkamo-internal

Fix dynamic imports - use path alias @/app/lib/avatarUtils for Next.js webpack resolution

- Change relative paths to path alias @/app/lib/avatarUtils - Next.js webpack can't resolve .js extensions for .ts files in dynamic imports - Path aliases work ...

snadjafinia·11mo ago
Otherkamo-internal

Fix TypeScript ESM dynamic imports - add .js extension required for node16/nodenext module resolution

- TypeScript with moduleResolution node16/nodenext requires explicit .js extensions in dynamic imports - TypeScript will resolve .js imports to .ts files at bui...

snadjafinia·11mo ago
Otherkamo-internal

Fix remaining .js extension in HexHeadGroup dynamic import

snadjafinia·11mo ago
Otherkamo-internal

Fix TypeScript module resolution - remove .js extension from dynamic imports

- Change dynamic imports from avatarUtils.js to avatarUtils (no extension) - Fixes build error: Module not found: Can't resolve '../../lib/avatarUtils.js' - Typ...

snadjafinia·11mo ago
Otherkamo-internal

Fix avatar display with override mechanism support

- ProfileTab: Always show USER avatar (no override mechanism) - MembershipPermissionsTab: Always show MEMBER avatar (no override mechanism) - Site-wide displays...

snadjafinia·11mo ago
Fixkamo-internal

Detect member avatar override on page load even if returned as 'avatar'

- Add logging to see what API returns on initial load - Check if member has avatarId/memberAvatarId set to detect member override - If avatar ID matches memberA...

snadjafinia·11mo ago
Fixkamo-internal

Ensure avatarId is always sent when activeAvatar exists

- Use corrected useDefaultUserAvatar value directly in save logic - If activeAvatar exists, always send avatarId (member override) regardless of flag - Improved...

snadjafinia·11mo ago
Fixkamo-internal

Preserve avatar URL when saving and add defensive check

- Preserve profilePicture from activeAvatar when updating profileData after save - Add warning if activeAvatar exists but useDefaultUserAvatar is incorrectly tr...

snadjafinia·11mo ago
Otherkamo-internal

Add detailed logging to track avatar state during save

- Log current state (useDefaultUserAvatar, activeAvatar, avatarIdToSend) before save - Log API response after save (memberAvatar, avatar) - Log refreshed profil...

snadjafinia·11mo ago
Fixkamo-internal

Preserve avatar state after save to prevent revert

- Fixed save logic to properly send avatarId when avatar is selected - Preserve current activeAvatar and useDefaultUserAvatar state before refresh - If refresh ...

snadjafinia·11mo ago
Fixkamo-internal

Update avatar state after saving profile to prevent revert

- After saving profile, refresh and update activeAvatar state from API response - Update useDefaultUserAvatar flag to match saved state - Ensures avatar remains...

snadjafinia·11mo ago
Fixkamo-internal

Prevent avatar from switching to empty avatar when selecting

- Immediately set selected avatar in UI for instant feedback - Only update with refreshed data if it has a URL and is the same avatar - Prevents overwriting sel...

snadjafinia·11mo ago
Fixkamo-internal

Keep avatar manager dialog open and fix profile avatar display

- Removed handleClose() calls when selecting, creating, or uploading avatars - Dialog now stays open so users can continue selecting/managing avatars - After cr...

snadjafinia·11mo ago
Fixkamo-internal

Ensure avatar URL is properly preserved and displayed from database

- Changed URL handling to preserve empty strings (use ?? instead of ||) - Updated MemberHeader props to prioritize profileData.profilePicture which contains the...

snadjafinia·11mo ago
Fixkamo-internal

Ensure avatar is properly set from database on profile tab load

- Fixed URL handling to use original API response URL instead of potentially null transformed value - Added synchronization between activeAvatar and userAvatars...

snadjafinia·11mo ago
November 25, 2025
Fixkamo-internal

Resolve avatar display and persistence issues in profile tab

- Fix initial avatar display to show correct primary avatar instead of default initials - Fix avatar selection from list to properly update member avatar and pe...

snadjafinia·11mo ago
Fixkamo-internal

Add .js extension to remaining dynamic import

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