Add Train AI toggle and audience visibility checkboxes to KB article editor
Add aiEnabled master toggle with collapsible visibility checkboxes for Members, Team Members, and Public using org-customized labels from behavior-labeling sett...
Pass memberType through RAG search for audience-scoped KB results
Resolve member type from MemberRepository and include it in RAG search requests so the vector DB can filter KB articles by audience visibility.
Add audience-scoped AI visibility filtering to RAG pipeline
Store **************** in Qdrant payload, filter search results by memberType, skip indexing when aiEnabled is false, and add visibility index creation for exis...
Support AI visibility toggles in KB article create/update
Accept aiEnabled and visibility flags in create/update endpoints. Handle AI toggle changes by publishing delete events when AI is disabled, triggering re-indexi...
Add AI visibility fields to KbArticle entity
Add aiEnabled, aiVisibleToPublic, aiVisibleToMembers, and aiVisibleToTeamMembers boolean fields to control per-article AI training and audience-scoped RAG acces...
Structured citation post-processing ensures RAG sources are always cited
Wire ConversationContextService for sliding window context management
Trims conversation history to fit model's context window before sending to LLM. Keeps recent messages verbatim, summarizes older ones.
Full chunk text storage, configurable vector size, and permission-aware retrieval in Qdrant
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 pa...
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 FeaturesMan...
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 c...
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-r...
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...
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 i...
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_CLAS...
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 manag...
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 ...
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 cr...
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: "Con...
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, ...
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 b...
Add POST **************** endpoint
Triggers org-wide member_rights_applied recalculation. Needed after schema migrations or manual DB changes to permissions.
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 ...
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 aff...
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 immediate...
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 locke...
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 sys...
Enforce role protection flags and add parent label support to session
- Enforce isAllowEditSecurity in SecurityRoleController update endpoint - Add parentMemberTitlePlural and parentTeamMemberTitlePlural to *** session - Resolve p...
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 "E...
Add Support section to settings page
Adds Topics, Notifications, and Status & Response Times cards that link to /support?tab=settings.
Add manual job trigger controller with duplicate execution guard
POST /api/daemon/trigger/{jobName} triggers any Quartz job immediately. Returns 409 if the job is already executing. GET /api/daemon/trigger/status returns runn...
Remove old help system, add support nav items
Delete app/help/ and app/components/help/ directories. Add SupportButton to NavTop toolbar and Support menu item to NavPri sidebar navigation.
Add frontend types and API proxy routes
TypeScript interfaces for all support DTOs and 13 API proxy routes forwarding to MediaService for topics, tickets, and reporting endpoints.
Add support ticket services, REST controllers, and STOMP relay
Implements the MediaService backend for the support ticket system: - SupportTopicService: CRUD for org-scoped support topics - SupportAssignmentService: round-r...
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.