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....
Update date column widths and replace action buttons
- Change date column widths from 155px to 170px (Created and Assigned) - Update date filter field containers to match 170px width - Replace 'Export Selected', '...
Add thin light gray border bottom to secondary tabs
- Add borderBottom: '1px solid rgba(0, 0, 0, 0.12)' to status tabs container - Matches the styling found on /leads/view/ page - Creates visual separation betwee...
Add gray backgrounds to remaining filter fields and align to bottom
- Change filter row alignment from center to flex-end (bottom alignment) - Add gray background (#f8fafc) to all remaining filter field containers - Add border r...
Stack date filter fields vertically with isolated gray background
- Change date filter fields from horizontal to vertical layout (flexDirection: column) - Add gray background (#f8fafc) only to date filter boxes, not entire fil...
Improve UI layout and increase mock data
- Make text smaller for date filter fields (fontSize: 0.75rem for input, 0.7rem for labels) - Move Quick Search to same line as status tabs, aligned to the righ...
Add date range filter components for Created and Assigned columns
- Add state variables for Created and Assigned date range filters (start/end dates) - Create date range filter components with Start Date and End Date fields - ...
Make contact names clickable links and add double-click to open lead
- Update ContactRenderer to display first and last name as underlined clickable links - Add onClick handler to contact names that opens the lead via onViewLead ...
Add icons to sub-status dropdown filter and update Contracts Sent
- Update 'Contracts Signed' to 'Contracts Sent' to match Java enum - Change icon for Contracts Sent from Assignment to Send icon - Add icons to sub-status dropd...
Add unique icons for each sub-status with parent status colors
- Add unique, relevant icons for each sub-status (e.g., PersonAdd for New Lead, Message for Left Message) - Icons maintain parent status color (green for Fresh,...
Add icons to sub-status column matching parent status colors
- Add getSubStatusIcon helper function to determine icon based on parent status - Sub-status icons use same icons and colors as their parent status - Fresh sub-...
Move urgent badge to Lead ID column and remove email from Contact
- Move Urgent badge from Contact column to Lead ID column - Position badge to the left of account icon in Lead ID - Remove 'Urgent' label text, keep only the ic...
Add bidirectional sync between status tabs and filter dropdown
- When status tab changes → updates filter dropdown (already existed) - When filter dropdown changes → updates active status tab (new) - Prevents circular u...
Replace AG Grid floating filters with custom filter row
- Remove all floatingFilterComponent references from columnDefs - Set floatingFilter: false on all columns - Create custom filter row above grid with full contr...
Improve filter behavior and styling
- Sub Status dropdown now only shows sub-statuses for selected Status filter - Sub Status dropdown is disabled when no Status is selected - Auto-set Status filt...
Improve dropdown filter styling and functionality
- Align all dropdown filters to the left with 5px padding above - Add StatusFloatingFilter component with icons in dropdown menu items - Icons appear to the lef...
Add Status column with icons and dynamic Sub Status filter
- Add Status column before Sub Status with icons (Fresh, Reckoning, Farm, Grim, Void) - Create StatusRenderer component that displays status with appropriate ic...
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.
