Heavy per-participant poll queries were saturating the shared host during
live rooms. Cache the shared room payload for 2s, return 304 when unchanged,
throttle breakout expiry and captions, and slow client polling (6s / 20s
when hidden) so concurrent attendees no longer fan out full Laravel work.
Defer summarization until recordings finish, merge chat with deduplicated live captions, and clear the screen-share overlay so participant cards return after sharing ends.
Co-authored-by: Cursor <cursoragent@cursor.com>
Server-side room composite egress replaces fragile MediaRecorder DOM capture when enabled, with webhook completion and browser fallback when egress is unavailable.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove duplicate host record button on desktop and split invite-to-speak from make co-host so listeners must accept before speaking while co-host is applied immediately.
Co-authored-by: Cursor <cursoragent@cursor.com>
Let hosts promote raised-hand listeners from People, remove the empty More menu in spaces, and put People and recording on the bottom bar.
Co-authored-by: Cursor <cursoragent@cursor.com>
Block breakouts, chat, Q&A, and other meeting-only tools in spaces, hide video controls for audio-only rooms, and stabilize mobile nav and toolbar layout.
Co-authored-by: Cursor <cursoragent@cursor.com>
Upgrade existing participant roles when a verified speaker token is present, and sync panelist access while already in the room so speaker-panel placement and publish rights apply.
Co-authored-by: Cursor <cursoragent@cursor.com>
Let attendees request host-granted microphone access with LiveKit reconnect,
participant panel controls, and toolbar UI that only shows mic when allowed.
Fix Events create URL, surface API key setup guidance, and align the Webinars
sidebar icon with other nav items using currentColor strokes.
Co-authored-by: Cursor <cursoragent@cursor.com>
Green room poll was racing go-live and sending the host to the ended page; carry participant session into the new live session instead.
Co-authored-by: Cursor <cursoragent@cursor.com>
Attendees reconnect to breakout rooms with publish access while hosts stay on stage; poll and media-token endpoints drive LiveKit reconnection, and the live room shows Events-linked programme when available.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop registerPresenter from demoting hosts to panelists, recognize room owners as managers, and show stage controls in the green room banner.
Co-authored-by: Cursor <cursoragent@cursor.com>
Speakers get a full-screen spotlight with overlapping audience avatars; hosts can configure panels in the green room and switch layouts live.
Co-authored-by: Cursor <cursoragent@cursor.com>
Route guests through silent SSO to the Meet product page, fix Afia context
query, add conference green-room UX and copy, and extend service API for
Care/CRM/Invoice calendar integration.
Co-authored-by: Cursor <cursoragent@cursor.com>
Split town_hall into a Conferences sidebar flow and Spaces-style Rooms with host/speaker/listener roles; enforce audio-only LiveKit UI for rooms; show schedule icon on mobile meetings index.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add restart meeting actions, a dedicated webinar sidebar flow billed at GHS 0.30 per participant, and reserve speaker-line space with a placeholder to prevent layout shift.
Co-authored-by: Cursor <cursoragent@cursor.com>
Capture the meeting in the host browser, upload to Ladill storage on stop, and remove the LiveKit egress placeholder job.
Co-authored-by: Cursor <cursoragent@cursor.com>
Poll and waiting-room clients follow the same redirect when the host ends the call; chat and participants use mobile bottom sheets.
Co-authored-by: Cursor <cursoragent@cursor.com>
Redesign public join flows on the Frontdesk kiosk template, enforce host
admission when waiting room is enabled, and collect star ratings after leave.
Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve participant photos from linked user records for the header host chip and participants panel, with initials as fallback.
Co-authored-by: Cursor <cursoragent@cursor.com>
Phases 0–18: core meetings, webinar, breakouts, team chat, live streaming, town hall, billing, and Ladill Mail calendar wiring.
Co-authored-by: Cursor <cursoragent@cursor.com>