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 26, 2025
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·11mo 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·11mo 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·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
OtherSecurityService

Add detailed logging to avatar URL generation for debugging

- Log when avatar URLs are generated, what URLs are created - Log when avatars are missing or URLs are null - This will help identify why avatars aren't showing...

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
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·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
OtherSecurityService

Add avatar URLs to members by-department endpoint with override mechanism

- Include avatar URL in each member response from **************** - Respect override mechanism: member avatar (if exists) → user avatar (default) - Frontend ...

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

Trigger pipeline

snadjafinia·11mo ago
Docskamo-internal

Add script to pre-cache GitHub Actions for Forgejo runner

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

Add comprehensive logging for security provider domain lookup

- Log networks array and all organization IDs - Log detailed comparison of org IDs with securityOrgId - Log domain extraction and URL construction steps - This ...

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