- Updated dotenv from 16.5.0 to 16.6.1
- Updated express from 5.1.0 to 5.2.1
- Updated @types/express from 5.0.1 to 5.0.6
- Updated @types/node from 22.15.17 to 22.19.3
- Updated @types/socket.io from 3.0.1 to 3.0.2
- Updated concurrently from 9.1.2 to 9.2.1
- Updated typescript from 5.9.2 to 5.9.3
Ensures screen sharing participants are always displayed, even if not active speakers.
Modifies the participant proxy to selectively hide camera tracks when a participant is only displayed for screen sharing.
This prevents unnecessary camera rendering in the custom layout.
Improves the smart mosaic layout to enhance the user experience and performance.
- Updates participant rendering logic for smart mosaic layout.
- Optimizes audio track management to prevent audio leaks.
- Implements audio focus by selectively muting tracks for inactive speakers.
Streamlines parameter handling by centralizing logic.
The `RoomService` is no longer responsible for setting the `roomId` and `roomSecret`.
Instead, the `MeetingContextService` handles this and persists the room secret in session storage.
- Implemented helper functions for configuring Smart Mosaic layout, including setting participant count and waiting for participant visibility.
- Created a new file for managing fake participants, allowing for joining and disconnecting from LiveKit rooms using both CLI and browser-based methods.
- Introduced interfaces for browser-based fake participant options to streamline participant creation with audio and video assets.
Refines active speaker detection for smart layouts.
It now considers audio level threshold, minimum speaking duration, and a grace period to avoid rapid speaker switching.
Also, updates the speaker recency order to prioritize currently active speakers while maintaining a history of recent speakers.
Consolidates layout management into a dedicated component and service.
- Replaces layout selection logic with feature-based approach.
- Improves code readability and maintainability.
Allows configuring the number of visible participants in Smart Mosaic layout mode using a slider.
The minimum and maximum number of participants are now configurable via constants.
Updates the slider to use value binding instead of ngModel.
Moves the copy link button to a new component for additional toolbar buttons.
This allows for better organization and customization of the toolbar,
especially on mobile where space is limited. The "leave" button for
moderators is now separate.
Renamed components for better understanding and readability