[0.2.0.6] - 2025-11-19
- Moderator Controls (Mute/Kick): Presenters can now remote-control participants via the User List sidebar:Remote Mute: Allows the host to mute a participant's microphone (sends an RTM signal to the target client).Kick User: Allows the host to remove a participant from the meeting instantly.Mute Toggle Logic: The mute command now intelligently toggles the state (Mute if open, Unmute if closed) rather than just forcing mute.
- Remote Mute: Allows the host to mute a participant's microphone (sends an RTM signal to the target client).
- Kick User: Allows the host to remove a participant from the meeting instantly.
- Mute Toggle Logic: The mute command now intelligently toggles the state (Mute if open, Unmute if closed) rather than just forcing mute.
- Active Discovery Protocol (Name Sync):Implemented a new RTM command
CMD_WHO_ARE_YOU.Logic: Upon joining (or re-joining), the client now broadcasts a discovery request. All existing participants immediately reply with their user attributes (uname, role).Benefit: Guarantees that the User List and Video Grid display correct names instantly instead of UIDs, even if the standard REMOTE_JOIN event is delayed or missed.
- Implemented a new RTM command
CMD_WHO_ARE_YOU.
- Logic: Upon joining (or re-joining), the client now broadcasts a discovery request. All existing participants immediately reply with their user attributes (
uname, role).
- Benefit: Guarantees that the User List and Video Grid display correct names instantly instead of UIDs, even if the standard
REMOTE_JOIN event is delayed or missed.
- Robust Audio-Only Support: Users without a camera (or with permission denied) can now successfully join meetings in "Audio-Only" mode.Lobby: Displays a friendly "Microphone ready (Audio only)" status instead of an error.Meeting Room: Automatically shows the user's avatar and disables the camera toggle button.
- Lobby: Displays a friendly "Microphone ready (Audio only)" status instead of an error.
- Meeting Room: Automatically shows the user's avatar and disables the camera toggle button.
- Configurable Video Resolutions: Added Admin Settings to select default resolutions for Camera and Screen Share (Standard 480p, Medium 720p, High 1080p).
- Audio Enhancements: Explicitly enabled Agora's built-in Noise Suppression (ANS), Echo Cancellation (AEC), and Automatic Gain Control (AGC).
- Major Performance Optimization (Instant Join): Re-architected the
joinMeeting flow for maximum responsiveness (Instant Mirror, Non-blocking RTM).
- Smoother Grid Layout: Replaced
setTimeout with requestAnimationFrame in grid sorting logic.
- User Re-join Race Condition: Fixed a critical bug where a re-joining presenter (or user) would see other participants as UIDs instead of names until they interacted. The new Active Discovery logic ensures immediate synchronization of user profiles.
- Sidebar Interaction: Solved a critical bug where
e.stopPropagation() prevented Admin buttons (Mute/Kick) from being clickable. Implemented smart event delegation to allow button clicks while keeping the sidebar open.
- Real-time Mute Sync: Fixed the mute icon state in the User List. It now correctly reflects the remote user's actual microphone status in real-time.