KamoCRM

Live Change Log

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

15,120
Total Changes
5,169
Features
4,935
Fixes
30
Projects
Filter by project
All Projects15,120AIService197APIService161BillingService143ConversionService107DaemonService129DocsService215ESigService88EmailService518InitializerService318KBService105KlusterServices697MCPGatewayService85MediaService546RAGService71SecurityService1,658TranslateService55VOIPService205VectorService11kamo-apps25kamo-asterisk-support24kamo-capcha17kamo-capcha-widget4kamo-internal6,937kamo-login330kamo-marketing625kamo-nowww20kamo-register213kamo-shared-library1,455kamo-signer-monorepo53kamolos108
Filter by type
All TypesBuild11CI523Chore738Docs2,167Feature5,169Fix4,935Other986Performance157Refactor274Revert23Style42Test94Upgrade1
November 27, 2025
November 26, 2025
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·10mo 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·10mo ago
FixSecurityService

Suppress unused variable warnings in avatar type detection

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

Improve proxy type detection by catching InvocationTargetException

- Handle ClassCastException when invoking methods on proxy to determine actual type - Try getFileExtension first (photo), then getStyle (Avatar Creator) - Bette...

snadjafinia·10mo ago
FixSecurityService

Improve Hibernate proxy handling for avatar type detection

- Search class hierarchy and interfaces for getFileExtension method - Use reflection to detect AvatarPhoto vs AvatarAvatar Creator when instanceof fails - Add f...

snadjafinia·10mo ago
FixSecurityService

Reload avatar from repository to resolve Hibernate proxy instanceof issue

- Avatar entities loaded from relationships may be Hibernate proxies that fail instanceof checks - Reload avatar from repository to get actual entity type (Avat...

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

Determine active avatar by checking user.getAvatar() instead of RecordState

- Backend now correctly marks which avatar is active by comparing to user.getAvatar() - This ensures the isActive flag in the API response reflects the actual a...

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

Add .js extension to remaining dynamic import

snadjafinia·10mo ago
Fixkamo-internal

Use GitHub actions directly instead of code.forgejo.org to avoid 503 errors

- Changed actions/checkout@v4 to **************** - Changed docker/login-action@v3 to **************** - Changed docker/build-push-action@v5 to ****************...

snadjafinia·10mo ago
Fixkamo-internal

Fetch security provider organization directly by ID instead of from networks array

- Created new API route /api/security/org/[id] to proxy SecurityService organization by ID endpoint - Updated SettingsView to fetch security provider org direct...

snadjafinia·10mo ago
Fixkamo-internal

Use same URL pattern for security provider logo as current org logo

- Replace the first folder in the current org logo URL path with security provider domain - Replace dots with dashes in security provider domain for folder name...

snadjafinia·10mo ago
Fixkamo-internal

Simplify logo URL generation to match ThemeLogo and network page patterns

- For current org (Membership & Permissions): Use getThemePath() directly like ThemeLogo does - For security provider (Profile): Use getThemePathForDomain() wit...

snadjafinia·10mo ago
Fixkamo-internal

Improve logo display in tabs - use icon prop with Box wrapper and add fallback logic

- Switched back to using Tab icon prop with Box wrapper for better MUI compatibility - Added fallback to use domains[0] if domain field is not available - Added...

snadjafinia·10mo ago
Fixkamo-internal

Fix logo display in tab labels - use img tag in label instead of icon prop

- Changed from using Tab icon prop to embedding logo directly in label using Box with img tag - Added console logging to debug logo fetching and URL generation ...

snadjafinia·10mo ago
Fixkamo-internal

Increase kubectl rollout timeout from 300s to 900s

- Increased kubectl rollout status timeout to 900 seconds (15 minutes) for both k1m1 and k2m1 deployments - This matches the increased progressDeadlineSeconds o...

snadjafinia·10mo ago
Fixkamo-internal

Increase deployment progressDeadlineSeconds from 60s to 600s

- Increased progressDeadlineSeconds to 600 seconds (10 minutes) to allow Next.js app sufficient time to build and start - Previous 60 second timeout was too sho...

snadjafinia·10mo ago
FixSecurityService

Handle ISO date format and improve avatarId type parsing

- Added support for ISO date format (YYYY-MM-DD) in addition to M/d/yyyy - Improved avatarId parsing to handle Number types (Double, BigDecimal, etc.) from JSON...

snadjafinia·10mo ago
FixSecurityService

Add better error handling and logging for user/member save operations

- Added try-catch around user save operation with detailed error logging - Added try-catch around member save operation with detailed error logging - Improved d...

snadjafinia·10mo ago
FixSecurityService

Improve avatarId parsing to handle string, integer, and long types

- Added support for parsing avatarId from String type - Better error handling for invalid avatarId formats - Added logging for avatar assignment and errors

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