Replace react-easy-crop with freeform drag-to-select rectangle tool
react-easy-crop forced square/fixed-aspect selections. New canvas-based tool lets users click and drag any rectangle at any aspect ratio. Shows dimmed overlay o...
Add background color picker step and improve SVG conversion UX
- Added "Pick Background" step between Crop and Process - Users click on the image to select the background color to remove - Shows selected color swatch with R...
Add image-to-SVG conversion pipeline with reusable modal component
- New ImageToSVGConverter modal component with 3-step flow: Crop → Process → Review - WebSocket hook (useImagePipeline) for streaming pipeline communication - C...
Add date/time scheduler to Start Meeting dialog
Adds a Now/Schedule pill toggle to the meeting creation dialog. When Schedule is selected, an MUI DateTimePicker slides in with 15-minute intervals and a format...
Include org static background images in meet virtual backgrounds
Fetch backgroundImageCount from the org's theme config.json and generate URLs for /img/bg/{n}.webp so org-level static backgrounds appear alongside meet-specifi...
Derive display name from first/last name and construct avatar URL from session
Use memberFirstName and memberLastName from *** session to build proper display names instead of falling back to usernameAlias. Construct full avatar URL from t...
Add first name, last name, and avatar hash to *** session
Include memberFirstName, memberLastName, and memberAvatarUrl in Redis session data so cross-domain services like KamoMeet can display proper user identity witho...
Integrate org-level settings into Meet config and branding
Sidecar fetches OrgMeetConfig from backend and maps all settings: - Audio/video mute defaults - Lobby/waiting room mode - Guest access and display name requirem...
Add public config and backgrounds endpoints for sidecar consumption
GET /api/meet/public-config?domain= returns org meet config by domain. GET **************** returns combined virtual backgrounds. Both endpoints are unauthentic...
Add config CRUD, background management, and org-theme endpoints
All endpoints enforce MANAGE_MEET_SETTINGS privilege. Config auto-creates with defaults on first access per org. Background uploads go to MinIO with SHA-256 has...
Add org theme backgrounds to meets settings and remove deprecated fields
- Add GET route for org theme backgrounds **************** - Update meetApi.ts: remove whoCanCreate and emailInvitesEnabled from MeetConfig, add OrgThemeBackgro...
Drop deprecated who_can_create and email_invites_enabled columns
Add org-scoped theme background query for meets virtual backgrounds
Remove whoCanCreate and emailInvitesEnabled from OrgMeetConfig
Preserve original room name (no capitalization/spaces), add copyable meeting URL field
1. Disabled safeStartCase() which was converting 'myroom123' to 'Myroom 123' with capitalization and random spaces. Room names now display exactly as ente...
Restyle settings dialog with glassmorphism design and horizontal tab bar
Add typing indicator to AI chat while waiting for response
The streaming bubble only showed when content was already being streamed, leaving no visual feedback during the REST wait. Added bouncing dots indicator that di...
Implement chat WebSocket and email invite sending for meetings
MeetController now reads sendChatInvite, sendEmailInvite, and customMessage from the create request body and triggers async invite sending. MeetService.sendInv...
Pass availableMembers to all MeetingDialog instances and self-fetch when not provided
- MemberList passes availableMembers to each MemberItem - MemberItem passes availableMembers to its MeetingDialog - MeetingDialog self-fetches members from ****...
Full settings modal with Devices/Sounds/More/Shortcuts tabs, display name on main card, primary color overlay
- Display name is now a required field on the main card above the room input, not in settings. Users must enter their name before joining. - Settings modal ha...
Validate room existence before anonymous join, add settings modal with device selection
Anonymous users must enter a valid meeting room name - the welcome page checks /api/meet/exists/{roomName} before allowing join. If the meeting doesn't exist or...
Add GET /api/meet/exists/{roomName} endpoint for anonymous room validation
Add findByRoomNameAndStatusIn query to MeetingRecordRepository
Add custom message textarea to MeetingDialog for chat/email invitations
Shows a multiline text input when at least one notification option is enabled, allowing the meeting creator to add a personal note to the invitation. Hidden whe...
Add custom welcome page with org-themed backgrounds, glassmorphism card, and room name input
Replaces Meet's default welcome screen with a custom landing page that: - Loads org backgrounds from MinIO theme with carousel transitions - Shows org logo and ...
Configure Prosody, Jicofo, and secrets for Jibri recording support
Enable recording in Prosody, add Jibri XMPP passwords to secrets, and configure Jicofo brewery MUC for Jibri instance discovery.
Add Jibri deployment manifests for Meet meeting recording
Kubernetes deployment, service, and configmap for Jibri (Meet Broadcasting Infrastructure) to enable meeting recording with MinIO storage integration.
Add /settings/features/meets page with 5 tabs for org-level video conferencing config
New settings page with General, Security & Access, Recording, Branding, and Notifications tabs. Includes meetApi client, MediaService proxy routes, logo variant...
Add MeetConfigController and MeetConfigService for org-level meet settings
REST endpoints for CRUD on OrgMeetConfig and MeetBackground entities. Supports config get/update, background upload/delete/reorder via MinIO storage.
Add OrgMeetConfig entity, MeetBackground entity, MEET_RECORDING ImageAssocType, and meet permissions
Adds org-level video conferencing configuration with defaults for lobby, guest access, recording, branding, and notifications. New permissions: RECORD_MEETINGS ...
Add MeetController and MeetService for meeting creation and invite management
Restore full meeting flow with backend creation, invites, and OTK window opening
Add Start Meeting button to Interaction Center and per-member meeting icon
Add Meet button to chat toolbar and MeetingCard rendering in messages
Add MeetingDialog for creating meetings with room name and member selection
Add useMeeting hook for meeting creation, OTK launch, and invite sending
Remove Janus-based WebRTC integration (useWebRTC, VideoCallPanel, call API routes)
Remove old Janus WebRTC voice/video/screen share code in preparation for KamoMeet (Meet-based) replacement. Deletes useWebRTC hook, VideoCallPanel, CallInitiati...
Add MeetingRecord and MeetingParticipant entities for meeting history
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.