[0.2.0.8] - 2025-11-25
- Waiting Room & Approval System:Implemented a manual approval flow for non-presenter users when
auto_approve is disabled.Lobby: Users send "Knock" requests via RTM and wait for a host response. Implemented a "Heartbeat" mechanism (every 3s) to ensure new presenters see pending requests immediately.Presenter UI: Presenters receive "Join Requests" as Toast notifications with Approve/Reject buttons.Co-Host Sync: Approval/Rejection actions are synchronized; if one presenter handles a request, the toast automatically clears for all other presenters.
- Implemented a manual approval flow for non-presenter users when
auto_approve is disabled.
- Lobby: Users send "Knock" requests via RTM and wait for a host response. Implemented a "Heartbeat" mechanism (every 3s) to ensure new presenters see pending requests immediately.
- Presenter UI: Presenters receive "Join Requests" as Toast notifications with Approve/Reject buttons.
- Co-Host Sync: Approval/Rejection actions are synchronized; if one presenter handles a request, the toast automatically clears for all other presenters.
- Presenter Bypass: Users with the
presenter role (e.g., Administrator) now bypass the waiting room and join directly, regardless of settings.
- Improved Grid Scrolling (Desktop UX):Implemented Independent Scrolling for Presenter and User grids on desktop layouts.Benefit: Users can scroll through the participant list without losing sight of the presenters (or vice versa).Styling: Added custom thin scrollbars (
-webkit-scrollbar) to minimize visual clutter in the split view.
- Implemented Independent Scrolling for Presenter and User grids on desktop layouts.
- Benefit: Users can scroll through the participant list without losing sight of the presenters (or vice versa).
- Styling: Added custom thin scrollbars (
-webkit-scrollbar) to minimize visual clutter in the split view.
- Mobile Scroll Logic:Preserved unified vertical scrolling for mobile layouts (
< 767px) to ensure a seamless touch experience without nested scroll traps.
- Preserved unified vertical scrolling for mobile layouts (
< 767px) to ensure a seamless touch experience without nested scroll traps.
- Desktop Grid Layout (Independent Scrolling):Implemented independent scrolling for Presenter and User grids on desktop.Benefit: Allows users to scroll through large participant lists without losing visibility of the presenters.Styling: Applied custom thin scrollbars (
-webkit-scrollbar) for a cleaner UI.
- Implemented independent scrolling for Presenter and User grids on desktop.
- Benefit: Allows users to scroll through large participant lists without losing visibility of the presenters.
- Styling: Applied custom thin scrollbars (
-webkit-scrollbar) for a cleaner UI.
- Mobile/Tablet Layout Refinements:Natural Stacking: Removed the forced 50% height split in mobile view. Sub-grids now stack naturally based on their content height.Stretched Mode Optimization: Adjusted the mobile layout when Screen Share/Stretch is active:Stage Area: Fixed to 30% height to maintain visibility.Grid Area: Takes the remaining 70% height for scrollable participant tiles.Full Width: Forced
.wpj_call-grid to 100% width on mobile to prevent flexbox shrinking issues.
- Natural Stacking: Removed the forced 50% height split in mobile view. Sub-grids now stack naturally based on their content height.
- Stretched Mode Optimization: Adjusted the mobile layout when Screen Share/Stretch is active:Stage Area: Fixed to 30% height to maintain visibility.Grid Area: Takes the remaining 70% height for scrollable participant tiles.
- Stage Area: Fixed to 30% height to maintain visibility.
- Grid Area: Takes the remaining 70% height for scrollable participant tiles.
- Full Width: Forced
.wpj_call-grid to 100% width on mobile to prevent flexbox shrinking issues.
- User List Ghosting: Fixed a bug where waiting users (
guest_xxx) appeared in the meeting room User List before being approved.
- Duplicate Tiles: Added strict checks to prevent duplicate video tiles for the same UID in the DOM.
- View Transition Crash: Added error handling for View Transition API to prevent UI freezes during layout updates.