Connect WebSocket directly to vector.{domain} subdomain
Next.js rewrites don't proxy WebSocket upgrade requests. Connect directly to the VectorService via its own subdomain, same pattern as media WebSocket.
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...
Handle meetReturn redirect to send users back to meeting after login
- Detect meetReturn query param on home page (from KamoMeet auth redirect) - Generate OTK and redirect authenticated users back to meet with token - Use session...
Bypass forwardToApi for background upload, use direct fetch with step-by-step logging
Reorder NavTop icon buttons to Email, Text, Phone, Calculators, AI, Support
Remove client-side OTK from multipart upload, add upload debug logging
The client was generating a wasted OTK before upload (the Next.js route generates its own server-side OTK for the backend). Removed the client OTK to simplify t...
Simplify NavTop display name lookup and correct MediaService URL scheme
- Remove usernameAlias lookup from getDisplayName, use member record directly - Fix MediaService K8s URL from https:8443 to http:80
Use forwardToApi for meet background uploads instead of manual fetch
The manual fetch with FormData forwarding was breaking multipart boundaries. Now reconstructs FormData and uses forwardToApi which handles headers correctly.
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...
Fetch signature template directly from EmailService with OTK auth, add debug logging
forwardToApi for /api/email/signature-templates went through APIService gateway instead of the Next.js email proxy. Now fetches directly from EmailService with ...
Read session from Redis directly (same as /api/user-info), use forwardToApi for all service calls
Root cause: the sender profile showed 'Your colleague' because the session fetch called a non-existent SecurityService endpoint. Signature was malformed because...
Replicate exact email composer data flow for meeting invite emails
The previous implementation only filled 8 of 20+ SignatureContent fields, causing malformed signatures with no images, name, or contact info. Now replicates th...
Clean up meeting invite email — remove logo, fix subject/host, embed custom message properly
Template changes: - Removed logo image (signature template header handles branding) - Removed 'Hi, Your colleague has invited you' — replaced with custom mess...
Use correct SignatureContent field names (headerImageUrl, signatureImageUrl)
Wrap meeting invite emails with org signature template (header/footer/signature) and include custom message
Now replicates the exact same email wrapping as the email composer: 1. Fetches signature template from EmailService (USER scope, COMPANY fallback) 2. Fetches se...
Send meeting invite emails DIRECTLY to EmailService, not through APIService gateway
Root cause: forwardToApi routes through APIService's Java gateway which doesn't preserve multipart FormData boundaries correctly. The email composer works becau...
Use subtle background tints on calendar page header and sidebar
Match the leads/allotments page styling with light color-mix backgrounds instead of heavily saturated primary colors.
Clear stale hexheads on page refresh instead of restoring orphaned state
Minimized tool windows don't survive refresh, so restoring hexhead positions created orphaned heads with missing icons and non-functional click handlers. Now cl...
Add comprehensive logging to email invite route for debugging, handle multiple email field formats
Rewrite HexHead placement system with deterministic layout engine
Replaces the buggy collision-avoidance system (spiralSearch, resolveCollisions, flyToHomeRow, dock/group RAF loops) with a single deterministic reflow() functio...
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...
Hide member-specific tabs when memberID is "new" to prevent BAD_REQUEST errors
The /settings/member/new URL (from "Add Team Member" button) is caught by the [memberID] dynamic route, causing AccountActivityTab, MembershipPermissionsTab, an...
60s OTK TTL for meet windows, independent chat/email invites that don't block on backend
ROOT CAUSE: The OTK had a 10-second TTL. By the time the kamo-meet page loaded all its assets and branding/overrides.js ran to validate the OTK, it had already ...
Send chat invites via existing chat session API, email invites via multipart to EmailService
Chat invites: creates/gets a chat session via POST /api/media/sessions/chat then sends the meeting invite as a text message in that session. Uses the exact same...
Forward all meeting fields (sendChatInvite, sendEmailInvite, customMessage, roomAlias, joinUrl) to backend
The Next.js API route was stripping sendChatInvite, sendEmailInvite, customMessage, and roomAlias — only forwarding roomName and inviteMemberIds. Backend receiv...
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 ****...
Add glass transparency effect to feature cards on homepage and settings
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...
Show MeetingDialog for per-member meetings instead of bypassing directly
Both MemberItem (Interaction Center) and ChatBox (chat tool window) now open the MeetingDialog with the target member pre-selected, allowing the user to set the...
Route meet config API through APIService instead of direct MediaService
The existing meet/create route uses forwardToApi (APIService), which proxies to MediaService. The new config/background routes must follow the same pattern to w...
Move New Tab button after Chat Now as icon-only, remove duplicate Notes link
New Tab is now an icon button (no label) placed to the right of Chat Now. Notes removed from NavTop since it's already in NavPri.
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...
Prevent infinite re-render loop in MeetingDialog caused by default prop array references
The useEffect had preSelectedMembers (defaulting to []) as a dependency, creating a new array on every render and triggering an infinite setState loop. Fixed by...
Match CHAT button color to meeting icon using CSS --color-primary variable
Replace deprecated InputProps with slotProps for MUI 7 compatibility in MeetingDialog
Add isOptionEqualToValue and null safety to MeetingDialog Autocomplete to prevent client crash
Make Chat Now icon white, sync email badge with message list, use CSS color-mix for theme colors
- NavTop: change ForumIcon color to white to match Chat Now label - MessageBrowser/MailButton: coordinate WebSocket email refresh via custom event so badge coun...
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.