Add LeadVendorController with full CRUD for vendors and products
Add full CRUD support for LeadVendor and LeadVendorProduct with String IDs
Add Next.js API routes for lead-markets to proxy to SecurityService
Add LeadMarketController for managing lead markets via REST API
Add LeadMarket entity, repository, service, and DTOs for CRM markets management
Rebuild LeadMarketManager UI component with modern design and API integration
Add CRM settings page with Markets & Fields, Vendors & Products, Manual Lead Imports, and Integrated Lead Imports tabs
Use organization streamGuid for organization-wide media feed
- Added OrganizationRepository to MediaStreamController - Updated getFeed to use organization's streamGuid instead of querying all sessions - Updated createPost...
Add streamGuid field to Organization for organization-wide media feed
Add LIKE enum value to MediaBlockReasonType for social media likes
Create reusable MediaStream component and lead communications
- Created reusable MediaStream component for all media stream contexts - Refactored FeedTimeline to use MediaStream component - Created LeadCommunications compo...
Add streamGuid to Lead and support lead-specific media streams
- Added streamGuid field to Lead.java to reference MediaSession stream - Updated MediaSessionPost to support optional lead association - Updated ***************...
Modernize social media feed design with hip, polished styling
Implement social media feed timeline
- Replace clubhouse page with FeedTimeline component - Add PostComposer for creating posts with images - Add PostCard component with like, comment, edit, delete...
Add MediaFeedController for social media feed
- Add MediaFeedController with REST endpoints for posts, comments, likes - Implement paginated feed endpoint with access level filtering - Add image upload endp...
Add MediaObjReportRepository and update media services for social feed
- Add MediaObjReportRepository for like/reaction system - Update MediaService with createPostSession and NATS event publishing - Update MediaSessionRepository w...
Add filter header to Members & Subscribers tab with all column filters aligned
Add filter header to EmployeeManager datagrid with employment status and other filters
Update EmployeeManager with backend integration and add account API routes
Add AccountController with endpoints for Members & Subscribers and Employees & Contractors
Add MemberType enum and memberType field to Member entity for efficient database queries
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
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...
Add organization logos to Profile and Membership & Permissions tabs
- Fetch security provider organization logo and display next to Profile tab - Fetch current organization logo and display next to Membership & Permissions tab -...
Add Manage Backgrounds button in MemberHeader
- Added handleManageBackgroundsClick prop to MemberHeader - Added Manage Backgrounds button next to URL input when custom background is enabled - BackgroundMana...
Store avatar hash and extension in *** session data
- Added updateSession method to KSessionService for updating session fields - Updated setActiveAvatar to store userAvatarHash and userAvatarExtension in session...
Include avatar URLs in member profile response
- Added helper methods to generate avatar URLs (getThemeDomain, getPublicBucketName, generateFileHash, getPublicBucketUrl, generateAvatarUrl) - Updated getMembe...
Add avatar fallback logic to chat components and member list
- Created avatarUtils.ts with utility functions for avatar fallback (member -> user -> initials) - Updated HexHeadGroup to fetch and display avatars with fallba...
Update Create Avatar layout to match kamo-register design
- Reorganize Create Avatar tab with top row for quick settings (Style, Seed) - Split bottom row into two columns: Preview (left) and Advanced Settings (right) -...
Implement hash-based file storage for avatars
- Generate SHA-256 hash from avatar ID after persistence - Store hash in database fileHash field - Upload files to MinIO using hash-based naming: {hash}.{fileEx...
Add fileHash field to Avatar entity for secure file storage
- Add fileHash column to store SHA-256 hash of avatar ID - Hash is used for MinIO file naming to prevent enumeration attacks - Format: {hash}.{fileExtension} in...
Rebuild avatar UI - modern, interactive, polished. Backend returns URLs directly
Rebuild avatar system - backend generates presigned URLs directly like backgrounds
Generate presigned URLs in Next.js using MinIO SDK with theme domain
Add getPresignedUrlWithEndpoint method for custom endpoint presigned URLs
Add Avatar Creator avatar creation, background management with reordering, and full avatar/background library support
Add AvatarPhoto and AvatarAvatar Creator classes, refactor Avatar inheritance structure
Organize MinIO storage with folder structure and add Avatar Creator SVG support
- Updated storage paths to use organized folder structure: * members/avatars/photos/ for photo avatars * members/avatars/vector/ for Avatar Creator SVG avat...
Add avatar, background, and member profile management endpoints
- Added AvatarController with CRUD operations for avatars (photo and Avatar Creator) - Added UserBackgroundController for managing user background images - Exte...
Add Avatar and UserBackground repositories and presigned URL support
- Added AvatarRepository with methods to find avatars by user - Added UserBackgroundRepository with methods to find backgrounds by user/member - Added getPresig...
Add UserPhoto and UserBackground entities with User/Member relationships
- Created UserPhoto entity for storing user and member profile photos - Created UserBackground entity for storing user and member background images - Both entit...
Add shared MemberHeader component with member-level avatar/background overrides
- Created shared MemberHeader component with background images and avatar display - Added member-level override options for avatar and background (use default u...
Change grid to autoHeight layout to show all records without scrollbar
- Set domLayout to autoHeight so grid expands to fit all rows - Remove overflow: hidden from grid container boxes - Remove height: 100% constraint from grid wra...
Replace Address column with State and Street columns
- Remove Address column and AddressRenderer - Add State column after Contact (shows subdivision/state code) - Add Street column after State (shows 'street, city...
Update column widths to specified values
- Change Lead ID column width from 300px to 245px - Contact column remains flex: 1 to take up remaining width - Change Status column width from 200px to 65px - ...
Update mock lead IDs to random alphanumeric and set address column to 170px
- Add generateRandomLeadId function to create random alphanumeric strings of length 13 - Change mock lead IDs from sequential numbers to random alphanumeric (e....
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.