Handle billing API failures gracefully on session start, add wallet.balance JSON endpoint, and sync Meet into the app launcher.
Co-authored-by: Cursor <cursoragent@cursor.com>
Wallet debits at session end, on recording/file storage, and via daily renewals with grace period before asset deletion.
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>
Guest joins without email were matching any active participant, overwriting
the host row and granting host controls; header now always shows room host.
Co-authored-by: Cursor <cursoragent@cursor.com>
Guests were sent through silent SSO after entering the meeting room because
/room routes required auth; failed SSO fell back to leftover Care config.
Co-authored-by: Cursor <cursoragent@cursor.com>
Build join URLs from meet.ladill.com config instead of APP_URL, which was still inherited from the Care app template.
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>
Use the official LiveKit PHP SDK for tokens, harden client connect/publish timing, keep the Room outside Alpine reactivity, and replace emoji toolbar controls with synced mic/camera toggles and avatar tiles for audio-only participants.
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>