Skip to content
KAMOUniverse

Changelog

What's new.

Every improvement to the platform, as it ships.

  1. · AIService

    RAG in streaming handler, full chunk text, conversation-aware queries

  2. · AIService

    Add ConversationContextService for sliding window context management

  3. · RAGService

    Full chunk text storage, configurable vector size, and permission-aware retrieval in Qdrant

  4. · RAGService

    Hybrid search with keyword boosting and cross-encoder reranker

  5. · RAGService

    Semantic heading-aware chunking for better RAG retrieval

  6. · AIService

    Extract memberId in WebSocket auth interceptor for RAG support

  7. · kamo-internal

    Add infinite scroll pagination to classic email view

    Classic mode only loaded the first 50 messages with no way to see older ones. Wire up the existing VirtualMessageList onLoadMore/hasMore/loadingMore props so pages load automatically as the user scrolls near the bottom.

  8. · kamo-internal

    Toggle lock/unlock button based on member lock status

  9. · kamo-internal

    Add Notes to NavPri below KB, gated by isNotes

  10. · kamo-internal

    Add settings pages for HRS, Docs, Support, KB, Notes, and Chat

    Create ComingSoonTab shared component and 6 new feature settings pages with coming soon placeholders, feature flag guards, and help tips. Links from FeaturesManager "Adjust Features" now resolve to real pages.

  11. · kamo-internal

    Auto-refresh UI after feature toggle and role changes

    FeaturesManager and SecurityRoleManager now call router.refresh() after mutations to re-fetch org context and user session data, reflecting permission and app changes immediately without re-login.

  12. · SecurityService

    Auto-refresh Redis session rights after feature/role changes

    FeatureController and SecurityRoleController now rebuild the caller's session rights in Redis after enable/disable, role create/update/delete, and recalculate-rights operations. Eliminates need to re-login after permission or app changes.

  13. · kamo-internal

    Implement app management UI with backend integration and dynamic permissions

    Rewrite FeaturesManager to use backend API for app enable/disable with root-org gating for in-dev apps. Update NavPri to gate all nav items by org feature flags (Docs, KB, Notes, Chat, Email, AI Support, VOIP). Update SettingsStatusWindow with full app sidebar filtering. Make SecurityRoleManager permission sections dynamic — only show rights for enabled apps. Update TypeScript types to mirror backend **************** changes.

  14. · SecurityService

    Add FeatureController for org app enable/disable management

    REST endpoints for managing organization app features: GET features list, POST enable/disable with CONFIGURE_SYSTEM permission check, root-org-only gating for in-development apps, and available service types listing.

  15. · kamo-shared-library

    Add app management system with service types, rights, and feature control

    Restructure ServiceType enum: add core/deprecated flags, rename DOC_MANAGER→DOCS and AI_CHAT→AI_SUPPORT, add SUPPORT/NOTES/POS types, deprecate STORAGE/DOC_CLASSIFIER/ DOCS_EDITOR. Add 43 new RoleRightType entries for HRS, Docs, AI Support, VOIP, Email, Support, Notes, and Chat apps. Move support rights to ServiceType.SUPPORT scope. Extend FeatureService with enable/disable/check methods per org.

  16. · kamo-internal

    Add email alias and shared mailbox UI support

    Composer "From:" dropdown for switching between primary, alias, and shared mailbox addresses. New "Mailboxes" 6th tab in email settings for org-wide admin management of aliases and shared mailboxes. Inline alias/shared mailbox management on member settings page. Mailbox switcher in folder sidebar for shared mailbox context switching. MessageBrowser routes to shared mailbox API endpoints when viewing shared mailbox.

  17. · EmailService

    Add email aliases and shared mailbox support

    New MailboxManager provider capability interface for alias and shared mailbox CRUD. KamoMailMailboxManager implementation manages dovecot/postfix virtual_users and virtual_aliases via MySQL. AliasController and SharedMailboxController provide REST APIs. SharedMailboxMailController proxies IMAP operations for shared mailboxes. EmailSmtpService updated to support from-address override for send-as functionality. MailProviderResolver wired with MailboxManager capability.

  18. · kamo-shared-library

    Add email alias and shared mailbox entities and repositories

    New JPA entities for email_provider schema: EmailAliasEntity (send-as aliases per member), SharedMailboxEntity (org-wide shared mailboxes with encrypted IMAP credentials), and SharedMailboxAccessEntity (member access grants for shared mailboxes).

  19. · kamo-internal

    Add PRE_TICKET status with Start Chat option

    - TicketCreationForm: two buttons — "Start Chat" (pre-ticket, no title required, just topic) and "Submit Ticket" (full ticket with title) - TicketHeader: "Convert to Ticket" button when status is PRE_TICKET, opens dialog requiring a title, calls PUT /tickets/{id}/convert - StatusBadge: PRE_TICKET shown as blue-grey badge - New proxy route: **************** - Types: added PRE_TICKET to SupportTicketStatus, preTicket to create request

  20. · MediaService

    Add PRE_TICKET creation and convert-to-ticket endpoint

    - createTicket: when preTicket=true, sets status to PRE_TICKET, skips assignment (no title required) - PUT /tickets/{id}/convert: converts PRE_TICKET to NEW, requires title, triggers assignment

  21. · kamo-shared-library

    Add PRE_TICKET status and preTicket flag on create request

    New status PRE_TICKET(14) for chat-first sessions where the user starts chatting without formally submitting a ticket. Can be converted to a full ticket later by setting a title and changing status.

  22. · SecurityService

    Add POST **************** endpoint

    Triggers org-wide member_rights_applied recalculation. Needed after schema migrations or manual DB changes to permissions.

  23. · SecurityService

    Use targeted role-scoped rights recalculation

    SecurityRoleController now uses updateRoleMemberRightsApplied() to only recalculate members who have the modified role, instead of recalculating all members in the org. Delete recalculates before removing the role.

  24. · kamo-shared-library

    Targeted rights recalculation for dept, job title, and role changes

    - DepartmentService: recalculates only members in the affected department after create/update/delete - JobTitleService: recalculates only members with the affected job title after create/update/delete - MemberRightsAppliedService: added updateRoleMemberRightsApplied() to recalculate only members who have a specific role assigned - Fixed **************** to use findByOrganizationId instead of findAll() (was loading every member across all orgs) - Fixed **************** and **************** to accept orgId parameter and use findByOrganizationId instead of findAll()

  25. · kamo-shared-library

    Recalculate member_rights_applied after new member creation

    Calls updateMemberRightsApplied on the new member after both createOrganizationMember and createOrganizationTeamMember so the Everyone role rights are immediately applied.

  26. · kamo-internal

    Granular role editing, label swapping, and Team Members support

    - Add isAllowEditTitle and isAllowEditSecurity to SecurityRole interface - Allow editing security settings on Members/Team Members roles (previously fully locked) - Swap "Members" and "Team Members" display titles with parent org behavior labels - Prevent accidental title overwrites by sending original DB title for protected roles - Disable title field in edit dialog for system roles - Add parentMemberTitlePlural and parentTeamMemberTitlePlural to session/useUserInfo - Update role sorting order: Members, Team Members, Administrator, then custom

  27. · InitializerService

    Migrate Everyone role to Members and create Team Members role

    - Rename ROLE_EVERYONE_ID column to ROLE_MEMBER_ID - Rename existing "Everyone (Applies To All)" roles to "Members" - Set **************** flags on existing system roles - Create "Team Members" role for all existing organizations - Set role_team_member_id references for all organizations - Switch ddl-auto back to update mode

  28. · SecurityService

    Enforce role protection flags and add parent label support to session

    - Enforce isAllowEditSecurity in SecurityRoleController update endpoint - Add parentMemberTitlePlural and parentTeamMemberTitlePlural to *** session - Resolve parent org member/team member labels during login - Include parent labels in session updates when behavior labels change

  29. · kamo-shared-library

    Add granular role protection flags and Team Members system role

    - Add isAllowEditTitle and isAllowEditSecurity flags to OrgRole entity - Rename roleEveryoneID to roleMemberID on Organization, add roleTeamMemberID - Rename "Everyone (Applies To All)" role to "Members" in org creation - Create "Team Members" system role during org creation - Enforce isAllowEditTitle in OrgRoleService.updateRole (silently ignores title) - Enforce isAllowEditSecurity in updateRoleRights and updateRoleSecurityModels - Add new flags to SecurityRoleDTO for frontend consumption - Extend RoleType enum with MEMBER and TEAM_MEMBER values

  30. · kamo-internal

    Add Support section to settings page

    Adds Topics, Notifications, and Status & Response Times cards that link to /support?tab=settings.

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