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...
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...
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...
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 ...
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...
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...
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...
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...
Fix Redis import in logout route - use static import for getRedisReadClient
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 ...
Add verification logging to confirm Redis session is deleted during logout
Add verification logging to confirm Redis session is deleted during logout
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...
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...
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...
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...
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...
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...
Trigger pipeline after kamo-shared-library avatarType field update
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...
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
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
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 ...
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...
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...
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...
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...
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...
Fix TypeScript errors: Replace 'any' types with proper interface in MemberListProvider
Add logging to MemberListProvider to debug avatar URL display issues in member list
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...
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
Add detailed logging to getThemeDomain and getPublicBucketUrl to debug avatar URL generation issues
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...
Add detailed logging to avatarUtils for debugging avatar display issues
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...
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...
Fix TypeScript error - add explicit type annotation for find callback
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...
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...
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...
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'
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...
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...
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...
Revert to relative paths for dynamic imports - Next.js may not resolve path aliases in dynamic imports at build time
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.