Skip to content
KAMOUniverse

Changelog

What's new.

Every improvement to the platform, as it ships.

  1. · SecurityService

    Add LeadVendorController with full CRUD for vendors and products

  2. · kamo-shared-library

    Add full CRUD support for LeadVendor and LeadVendorProduct with String IDs

  3. · kamo-internal

    Add Next.js API routes for lead-markets to proxy to SecurityService

  4. · SecurityService

    Add detailed logging to **************** for debugging

  5. · SecurityService

    Add LeadMarketController for managing lead markets via REST API

  6. · kamo-shared-library

    Add LeadMarket entity, repository, service, and DTOs for CRM markets management

  7. · kamo-internal

    Rebuild LeadMarketManager UI component with modern design and API integration

  8. · kamo-internal

    Add CRM settings page with Markets & Fields, Vendors & Products, Manual Lead Imports, and Integrated Lead Imports tabs

  9. · SecurityService

    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 to create posts in organization's stream instead of individual sessions - Organization-wide feed now uses a single stream like lead feeds

  10. · kamo-shared-library

    Add streamGuid field to Organization for organization-wide media feed

  11. · kamo-shared-library

    Add LIKE enum value to MediaBlockReasonType for social media likes

  12. · kamo-internal

    Create reusable MediaStream component and lead communications

    - Created reusable MediaStream component for all media stream contexts - Refactored FeedTimeline to use MediaStream component - Created LeadCommunications component for lead-specific comments - Updated PostComposer to support optional leadId prop - Updated MediaStream to pass leadId to PostComposer - Integrated LeadCommunications into LeadViewClient Communications tab - Updated types to include leadId in CreatePostRequest

  13. · kamo-shared-library

    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 **************** to accept optional Lead parameter - Updated MediaSessionRepository with query methods for lead streams

  14. · kamo-internal

    Modernize social media feed design with hip, polished styling

  15. · kamo-internal

    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 actions - Add CommentThread with nested reply support - Add ImageGallery with lightbox viewer - Add PostSkeleton for loading states - Add useMediaFeedWebSocket hook for real-time updates - Add TypeScript interfaces for media types - Add Next.js API routes for all media feed endpoints - Implement infinite scroll with error handling and retry logic

  16. · SecurityService

    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 endpoint for post images - Integrate with MediaService and ImageService - Support post creation, editing, deletion, and commenting - Implement like/unlike functionality using MediaObjReport - Generate proper image URLs using storage proxy endpoint

  17. · kamo-shared-library

    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 with organization-based feed queries - Update Employee.java employmentStatus field handling

  18. · kamo-internal

    Add filter header to Members & Subscribers tab with all column filters aligned

  19. · kamo-internal

    Add filter header to EmployeeManager datagrid with employment status and other filters

  20. · kamo-internal

    Update EmployeeManager with backend integration and add account API routes

  21. · SecurityService

    Add AccountController with endpoints for Members & Subscribers and Employees & Contractors

  22. · kamo-shared-library

    Add MemberType enum and memberType field to Member entity for efficient database queries

  23. · kamo-internal

    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

  24. · kamo-login

    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 attempt - Set REMEMBER_ME cookie to '1' or '0' based on checkbox state - Auto-populate username field from USERNAME cookie on page load - Auto-check remember me checkbox if REMEMBER_ME cookie is '1' - Preserve USERNAME and REMEMBER_ME cookies on logout (both kamo-login and kamo-internal) - All cookies are domain-specific (not cross-subdomain accessible)

  25. · kamo-internal

    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 - Use Avatar component to display logos (20x20px) with proper styling - Logos are fetched from organization networks API and constructed using theme path logic

  26. · kamo-internal

    Add Manage Backgrounds button in MemberHeader

    - Added handleManageBackgroundsClick prop to MemberHeader - Added Manage Backgrounds button next to URL input when custom background is enabled - BackgroundManager now supports external control via open and onOpenChange props - ProfileTab controls BackgroundManager dialog state and passes handler to MemberHeader

  27. · SecurityService

    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 - Updated updateMemberProfile to store memberAvatarHash and memberAvatarExtension in session - Added get***IdFromRequest helper method to AvatarController - Avatar data is now cached in session to avoid repeated database lookups

  28. · SecurityService

    Include avatar URLs in member profile response

    - Added helper methods to generate avatar URLs (getThemeDomain, getPublicBucketName, generateFileHash, getPublicBucketUrl, generateAvatarUrl) - Updated getMemberProfile to include avatar URLs in memberAvatar and avatar objects - Allows frontend to display other users' avatars without requiring separate API calls - Uses hash-based file storage for security

  29. · kamo-internal

    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 fallback - Updated ChatDock to fetch avatars when opening chats - Updated ChatBox to show initials when no avatar available - Updated MemberItem to fetch and use member/user avatars with fallback

  30. · kamo-internal

    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) - Move advanced settings into expandable accordions (Transform, Background) - Match the layout structure from kamo-register FormAvatarSelection component - Improve UX with better organization and visual hierarchy

Your universe is waiting.

Start free in minutes. Add products whenever you are ready — no migration, no new logins.

Free forever — no credit card required