58 Commits
Author SHA1 Message Date
isaacclad 3f0c94cae7 Keep screen share visible when the sharer switches apps.
Deploy Ladill Meet / deploy (push) Successful in 44s
Stop clearing the overlay on transient mute/unsubscribe, re-attach existing
screen tracks for all viewers, and resume LiveKit upstream if the browser
briefly mutes the capture while the presenter focuses another window.
2026-07-16 00:11:36 +00:00
isaacclad 86fa37b9fd Reduce Meet poll load with shared cache, ETag, and slower clients.
Deploy Ladill Meet / deploy (push) Successful in 2m44s
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.
2026-07-15 19:59:52 +00:00
isaaccladandCursor 393f6df167 Fix screen-share tile recovery and make AI summaries use full transcripts.
Deploy Ladill Meet / deploy (push) Successful in 1m17s
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>
2026-07-11 17:05:18 +00:00
isaaccladandCursor aa16b31fe1 Fix participant card layout and add meeting video pop-out.
Deploy Ladill Meet / deploy (push) Successful in 56s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 16:41:43 +00:00
isaaccladandCursor 64df3d1eb1 Fix auto-record egress failing before LiveKit room exists.
Deploy Ladill Meet / deploy (push) Successful in 51s
Create rooms via the LiveKit API, retry egress when the room is missing, and resume server egress after the host connects when auto-record fell back to browser capture.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 09:53:44 +00:00
isaaccladandCursor 4e4bed0df3 Record meetings with LiveKit Egress instead of browser capture.
Deploy Ladill Meet / deploy (push) Successful in 52s
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>
2026-07-04 03:18:28 +00:00
isaaccladandCursor 21092015b8 Fix mute and enable-audio controls in audio rooms.
Deploy Ladill Meet / deploy (push) Successful in 43s
Space speaker tiles use a different DOM than video tiles; updateParticipantTile
was throwing on missing cam badges. Also stop using the hidden attribute on
toolbar buttons so Alpine can show mic controls after promotion, and let listeners
dismiss the playback banner without needing publish access.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 01:47:42 +00:00
isaaccladandCursor 57802ff7f6 Use Listener label for audio room attendees in the live UI.
Deploy Ladill Meet / deploy (push) Successful in 53s
Matches Twitter Spaces terminology on speaker tiles and in the People panel.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 01:16:55 +00:00
isaaccladandCursor 29fa6ad547 Show all joined participants on the audio room stage grid.
Deploy Ladill Meet / deploy (push) Successful in 52s
Include attendees alongside host, co-hosts, and speakers so everyone in the call gets a card with role and muted state, not just speakers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 01:14:21 +00:00
isaaccladandCursor 777a3e9126 Restyle audio room speaker cards like Spaces and add room chat to the toolbar.
Deploy Ladill Meet / deploy (push) Successful in 49s
Use a three-column avatar grid with role labels and speaking/muted indicators, enable chat in audio rooms, and swap the mobile People nav button for Chat since People stays in the header.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 01:10:12 +00:00
isaaccladandCursor 0e3e940ad4 Show all on-stage speakers in audio rooms from session state.
Deploy Ladill Meet / deploy (push) Successful in 46s
Render host, co-host, and panelist cards from joined participants instead of LiveKit connections alone so listeners no longer occupy tiles and accepted speakers appear reliably.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 01:03:52 +00:00
isaaccladandCursor 4dd7883763 Stop Chat and More from flashing on load in audio rooms.
Deploy Ladill Meet / deploy (push) Successful in 57s
Bootstrap room-type flags from meet-config before Alpine paints, gate toolbar and banners server-side per room type, and hide Alpine toolbar items until init completes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 01:00:28 +00:00
isaaccladandCursor 1d1a4cd877 Fix overlapping speaker cards in audio rooms with a proper grid layout.
Deploy Ladill Meet / deploy (push) Successful in 41s
Use display grid for speaker tiles, show only host/co-host/panelist on stage, and re-layout when roles change so cards stay in separate cells.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 00:53:55 +00:00
isaaccladandCursor 2fae2e7ed8 Require acceptance for space speak invites and add instant co-host promotion.
Deploy Ladill Meet / deploy (push) Successful in 40s
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>
2026-07-04 00:50:58 +00:00
isaaccladandCursor 46af4f93b6 Add live speaker invites for audio rooms and simplify the toolbar.
Deploy Ladill Meet / deploy (push) Successful in 1m9s
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>
2026-07-04 00:40:09 +00:00
isaaccladandCursor c51e59945e Limit audio rooms to Twitter Spaces features and fix live toolbar UX.
Deploy Ladill Meet / deploy (push) Successful in 1m3s
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>
2026-07-04 00:25:40 +00:00
isaaccladandCursor b087b7e95a Use compact multi-column participant grid on mobile meetings.
Deploy Ladill Meet / deploy (push) Successful in 1m1s
Switch regular meeting tiles to a 2–3 column scrollable gallery with overlay labels so many participants fit on small screens without stacked full-width cards.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 23:40:48 +00:00
isaaccladandCursor 89e994ae05 Shorten plenary stage layout copy.
Deploy Ladill Meet / deploy (push) Successful in 1m4s
Drop the strip-below explanation so plenary descriptions stay to the main stage message only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 23:07:18 +00:00
isaaccladandCursor 4af53f9374 Fix stuck recording processing and add invoice service API test.
Deploy Ladill Meet / deploy (push) Successful in 52s
Capture stage spotlight video for browser recordings, fail incomplete uploads, allow post-session host uploads, and expire stale processing recordings automatically.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 22:54:26 +00:00
isaacclad 94a7906188 Fix spotlight tile reattach and mobile meeting toolbar layout.
Deploy Ladill Meet / deploy (push) Successful in 1m5s
Recreate spotlight tiles with video on switch, limit regular meetings to four primary controls before More, and align mobile notification badge with desktop.
2026-07-03 22:41:00 +00:00
isaaccladandCursor 775c81f4ee Fix plenary spotlight for guest speakers without user accounts.
Deploy Ladill Meet / deploy (push) Successful in 52s
Spotlight by participant uuid, add on-stage picker in stage layout, and show who is currently spotlighted in the plenary status bar.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 22:22:07 +00:00
isaaccladandCursor 08a1437b44 Tighten mobile meet room header and bottom toolbar layout.
Deploy Ladill Meet / deploy (push) Successful in 50s
Show participant count without labels on phones, cap the title at 40% width, and keep four bottom-nav icons by moving React into More only after speak access is granted.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 15:13:22 +00:00
isaaccladandCursor 56d486d15c Gate Events-linked joins behind registration and badge check-in.
Deploy Ladill Meet / deploy (push) Successful in 43s
Attendees register or sign in with a badge before the display-name screen; email is no longer collected on the Meet join form.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 14:36:40 +00:00
isaaccladandCursor 4fceda8c1f Start client capture for auto-record and silence false empty alerts.
Deploy Ladill Meet / deploy (push) Successful in 32s
Server-side auto-record now triggers browser MediaRecorder on connect, and
the end-meeting dialog only warns when capture actually ran but produced no file.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 14:18:35 +00:00
isaaccladandCursor d648f6c862 Add speak access for webinar/conference attendees and fix Events linking UX.
Deploy Ladill Meet / deploy (push) Successful in 33s
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>
2026-07-02 07:59:18 +00:00
isaaccladandCursor 8162827957 Auto-join host into live session when going live from green room.
Deploy Ladill Meet / deploy (push) Successful in 2m1s
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>
2026-07-02 06:57:33 +00:00
isaaccladandCursor eadb77dd5b Remove connection status from the live room header.
Deploy Ladill Meet / deploy (push) Successful in 1m0s
Drop Connecting/Connected and view-only mode text while keeping the active speaker notification line for everyone.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 06:48:37 +00:00
isaaccladandCursor bbf984bc60 Fix live room header flash and instant sidebar panel switching.
Deploy Ladill Meet / deploy (push) Successful in 1m21s
Server-render the speaker pill on load, hide noisy connection status on mobile, and use a single sidebarPanel slot so desktop panels replace in place instead of animating side by side.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 06:39:32 +00:00
isaaccladandCursor 17dd7107ee Always show Programme in the live room More menu.
Deploy Ladill Meet / deploy (push) Successful in 46s
Use programme.svg for conferences and webinars on mobile and desktop; the panel stays available with an empty state when Events has not linked a lineup yet.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 00:13:50 +00:00
isaaccladandCursor fa9b4138af Implement conference breakouts with meeting mode and programme lineup UI.
Deploy Ladill Meet / deploy (push) Successful in 1m3s
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>
2026-07-02 00:06:45 +00:00
isaaccladandCursor e698e75f17 Improve conference attendee controls and stage participant strip.
Deploy Ladill Meet / deploy (push) Successful in 58s
Give attendees reaction buttons instead of media controls, gate applause audio until multiple people clap, show the avatar strip in panel layout, and remove the plenary stage subtitle.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 23:46:54 +00:00
isaaccladandCursor f812a92cf9 Make plenary vs panel layout visible and explicit in Meet.
Deploy Ladill Meet / deploy (push) Successful in 45s
Show the current stage mode to everyone, redesign the layout picker with clear descriptions, and apply layout changes only when the host saves.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 23:28:47 +00:00
isaaccladandCursor 815f277cc3 Show non-spotlight participants in the plenary audience strip.
Deploy Ladill Meet / deploy (push) Successful in 38s
Include speakers and attendees below the stage, resolve avatars with the same fallbacks as video tiles, and refresh the strip when poll data updates.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 23:23:12 +00:00
isaaccladandCursor 6f00103c35 Fix plenary stage rounding and restore the speaking ring.
Deploy Ladill Meet / deploy (push) Successful in 44s
Clip spotlight tiles to the stage border radius and draw the green active-speaker outline on the spotlight container so overflow hidden no longer hides it.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 23:11:23 +00:00
isaaccladandCursor 0a8cd2b4f9 Fix Meet room tile layout and show account avatars when camera is off.
Deploy Ladill Meet / deploy (push) Successful in 50s
Move the participant name strip below the speaker area instead of overlaying it, and use Ladill profile photos on no-video tiles before falling back to initials.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 22:42:49 +00:00
isaaccladandCursor c108514b27 Extend service API for Events and fix panel layout reverting during edit.
Deploy Ladill Meet / deploy (push) Successful in 48s
Service rooms support town_hall/webinar types with source lookup, update, and cancel; stage poll no longer overwrites layout while the modal is open.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 22:08:01 +00:00
isaaccladandCursor f98d66c9f9 Add panel discussions option to webinars and widen audience strip.
Deploy Ladill Meet / deploy (push) Successful in 2m1s
Webinars can enable multi-speaker stage layout at creation or on the details page; plenary view shows 12 attendee avatars before the overflow count.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 21:29:22 +00:00
isaaccladandCursor 1037cd6ee6 Add conference stage layouts for plenary and panel discussions.
Deploy Ladill Meet / deploy (push) Successful in 37s
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>
2026-07-01 21:03:02 +00:00
isaaccladandCursor 799c302e2a Improve conferences, guest entry, Afia, and cross-app scheduling.
Deploy Ladill Meet / deploy (push) Successful in 50s
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>
2026-07-01 20:12:57 +00:00
isaaccladandCursor 63af522380 Add Conferences and audio-only Rooms, plus mobile schedule icon.
Deploy Ladill Meet / deploy (push) Successful in 1m29s
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>
2026-07-01 19:16:54 +00:00
isaaccladandCursor 3585904618 Add active speaker indicators to the meet room UI.
Deploy Ladill Meet / deploy (push) Successful in 43s
Highlight speaking participants on video tiles and in the panel, with header copy that names one or multiple speakers at once.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 18:07:37 +00:00
isaaccladandCursor ceb9ca192e Reject empty recording downloads and store WebM with correct MIME.
Deploy Ladill Meet / deploy (push) Successful in 31s
Mark legacy zero-byte placeholders as failed, validate files on show/download, and surface upload errors in the meeting room.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 17:59:18 +00:00
isaaccladandCursor b765b5dd97 Store meet recordings on Ladill servers via browser upload.
Deploy Ladill Meet / deploy (push) Successful in 53s
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>
2026-07-01 17:40:44 +00:00
isaaccladandCursor 8b43b01dfa Use bottom sheet for More menu and add copy-button feedback.
Deploy Ladill Meet / deploy (push) Successful in 1m13s
Shared copy-button component shows Copied state on meeting details; mobile More is icon-only and opens the same panel pattern as chat.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 14:56:46 +00:00
isaaccladandCursor 322f96b367 Redirect participants to meeting ended screen instead of 404.
Deploy Ladill Meet / deploy (push) Successful in 49s
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>
2026-07-01 14:43:39 +00:00
isaaccladandCursor 70d556799e Improve waiting room alerts, audio reliability, and mobile toolbar.
Deploy Ladill Meet / deploy (push) Successful in 52s
Show host-visible waiting badges and enable-audio prompts, harden mic
playback with LiveKit attach patterns, and swipe-scroll meeting controls on mobile.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 14:12:41 +00:00
isaaccladandCursor 5e85a4eaa1 Fix meeting audio attach, prune left tiles, drop Ladill Meet eyebrow.
Deploy Ladill Meet / deploy (push) Successful in 30s
Attach remote audio tracks for playback, remove stale participant cards on
leave, and remove the redundant Ladill Meet label from kiosk join pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 13:57:25 +00:00
isaaccladandCursor dc3c6dee2d Fix meeting audio playback and restyle room detail actions.
Deploy Ladill Meet / deploy (push) Successful in 39s
Unlock LiveKit audio after user gesture, respect join mute/video settings,
and replace plain links with btn-secondary pills on the meeting details page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 13:38:01 +00:00
isaaccladandCursor 7ae26a467c Add kiosk join/leave pages, waiting room, and meeting feedback.
Deploy Ladill Meet / deploy (push) Successful in 47s
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>
2026-07-01 13:33:48 +00:00
isaaccladandCursor 5e34d71de0 Fix meeting room header flash and share panel reopening.
Deploy Ladill Meet / deploy (push) Successful in 36s
Initialize REC/Locked state before Alpine paints, and restore the copy-link
share dropdown on desktop instead of trapping users in native share cancel.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 12:23:14 +00:00