Commit Graph
106 Commits
Author SHA1 Message Date
isaaccladandCursor aa4b744b18 Fix modal flash when opening Events unlink dialog.
Deploy Ladill Meet / deploy (push) Successful in 39s
Teleport modals to body, hide until Alpine is ready, use a single fade transition, and lock scroll on html with stable scrollbar gutter.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 22:42:18 +00:00
isaaccladandCursor 14e7ae9557 Replace native dialogs with app modals for Events link and unlink.
Deploy Ladill Meet / deploy (push) Successful in 49s
Link opens an in-page modal on conference and webinar show pages; unlink uses the shared confirm-dialog component.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 22:39:02 +00:00
isaaccladandCursor d0e68f15c7 Persist Events programme on the room when linking from Meet.
Deploy Ladill Meet / deploy (push) Successful in 46s
Store programme_snapshot from the link-room response locally and merge existing room settings on service API updates.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 22:25:13 +00:00
isaaccladandCursor 23026260d9 Update existing Meet rooms by UUID when Events syncs programme data.
Deploy Ladill Meet / deploy (push) Successful in 39s
Service API store now resolves meet_room_uuid before source lookup so programme snapshots apply to pre-linked rooms.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 22:12:12 +00:00
isaaccladandCursor d8914b96fe Skip Mail calendar sync for Meet rooms created by Ladill Events.
Deploy Ladill Meet / deploy (push) Successful in 2m1s
Events owns calendar entries for events-sourced rooms so virtual sessions
do not duplicate on the webmail calendar.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 11:48:37 +00:00
isaaccladandCursor 25de2ed7bc Fix Ladill Mail calendar sync mailbox resolution and updates.
Deploy Ladill Meet / deploy (push) Successful in 1m10s
Use the connected mail calendar mailbox when set, skip API calls when
MAIL_API_KEY_MEET is unset, and call syncRoomUpdated on room edits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 10:59:59 +00:00
isaaccladandCursor 7a0beaa721 Add flysystem-aws-s3-v3 for Meet recordings disk.
Deploy Ladill Meet / deploy (push) Successful in 3m24s
Laravel's S3 driver requires this package; without it the meet-recordings
disk fails when completing egress uploads from Contabo Object Storage.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 10:36:19 +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 d2bf08ec45 Add Contabo Object Storage support for Meet egress recordings.
Deploy Ladill Meet / deploy (push) Successful in 49s
Use a dedicated meet-recordings S3 disk with path-style endpoints for Contabo, and pass force_path_style through to LiveKit egress uploads.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 03:45:49 +00:00
isaaccladandCursor ebc11691e2 Fix LiveKit egress preset call and attach completion webhook per job.
Deploy Ladill Meet / deploy (push) Successful in 45s
Pass null encoding preset to match the PHP SDK, and register the meet webhook on each egress start so LiveKit Cloud does not need a global webhook URL.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 03:42:28 +00:00
isaaccladandCursor 152c0e6625 Show full restart labels on mobile and scroll btn-groups horizontally.
Deploy Ladill Meet / deploy (push) Successful in 1m20s
Remove icon-only restart buttons on webinar and conference pages; btn-group now carousels on narrow screens when actions overflow.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 03:20:07 +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 c2cb9cf33a Move start/restart actions into join link cards for webinars and conferences.
Deploy Ladill Meet / deploy (push) Successful in 29s
Remove the duplicate webinar header button and make the primary purple action
first in the join card, with a mobile rotate icon when restarting.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 02:48:22 +00:00
isaaccladandCursor da93c9814d Show rotate icon for Restart webinar on mobile.
Deploy Ladill Meet / deploy (push) Successful in 33s
Replace restart button text with a compact arrow-path icon on small screens while keeping the full label on desktop.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 02:37:25 +00:00
isaaccladandCursor ce05b6b584 Use Events list icon on all Meet index list rows.
Deploy Ladill Meet / deploy (push) Successful in 47s
Match the Events index card icon across meetings, rooms, conferences, and webinars.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 02:22:40 +00:00
isaaccladandCursor 46d630221a Wire space listener email invites and restyle Meet index pages.
Deploy Ladill Meet / deploy (push) Successful in 42s
Enforce invite-only room access, validate invite emails on create, assign
attendee role for listener invitations, and add invite UI on the room show
page. Redesign meetings, rooms, conferences, and webinars indexes to match
the Events hero, stats cards, and icon list layout.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 02:07:27 +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 ee3f7410f4 Fix speaker token ignored after badge verification or active join.
Deploy Ladill Meet / deploy (push) Successful in 1m0s
Process ?speaker= before registration gate and already-joined redirects so Events speakers get panelist role even when they previously registered as attendees.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 18:35:03 +00:00
isaaccladandCursor 3d68f7a83b Promote Events speakers from attendee to panelist on rejoin.
Deploy Ladill Meet / deploy (push) Successful in 1m7s
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>
2026-07-03 18:05:15 +00:00
isaaccladandCursor f9c82d0d1f Grant panelist role to Events speakers on conferences and webinars.
Deploy Ladill Meet / deploy (push) Successful in 49s
Verify speaker tokens before room-type role resolution so town-hall sessions get panelist access and speaker-panel placement, and skip the waiting room for panelists.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 17:56:39 +00:00
isaaccladandCursor a01c1f9a2b Add PNG Ladill Meet logo to transactional email templates.
Deploy Ladill Meet / deploy (push) Successful in 43s
Show ladillmeet-logo-email.png in contact mail and publish a markdown mail header matching the Invoice pattern.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 17:30:21 +00:00
isaaccladandCursor 8d4f74bc87 Send system_prompt when summarizing transcripts via platform AI.
Deploy Ladill Meet / deploy (push) Successful in 47s
The monolith Afia relay requires system_prompt; include it so Meet transcript summaries work through the platform relay.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 16:16:42 +00:00
isaaccladandCursor f5f599d1e3 Let invited speakers bypass Events registration and join as panelists.
Deploy Ladill Meet / deploy (push) Successful in 1m30s
Verify speaker tokens from Events on join, grant panelist role for linked webinars, and point bulk comms links to the attendees page instead of the JSON preview API.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 15:48:35 +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 9943dc9e44 Improve mobile UX on public pages and the live room header.
Deploy Ladill Meet / deploy (push) Successful in 35s
Cap customer-facing logos at 50vw on phones, tighten leave-feedback layout, and show icon-only share plus a blinking record dot on mobile.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 14:58:51 +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 63f10455e3 Use fill-only styling for the Webinars sidebar icon.
Deploy Ladill Meet / deploy (push) Successful in 47s
Removes inherited stroke width so the webinar glyph renders as intended.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 13:44:55 +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 9ab7d3e685 Use webinar.svg for the Webinars sidebar nav icon.
Deploy Ladill Meet / deploy (push) Successful in 1m3s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 07:40:28 +00:00
isaaccladandCursor 34d0a9c504 Route webinar and conference registration through Ladill Events.
Deploy Ladill Meet / deploy (push) Successful in 1m26s
Add Events linking UI and service client, remove Meet-native registration and invitation flows for these room types, and redirect attendees to Events registration when joining.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 07:38:50 +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