HH:MM:SS) to the header._WPJ_DEBUG_ is false./wpj/v1/rtm-token for on-demand RTM token generation.joinMeeting to execute RTC connection, RTM initialization, and Media Track creation in parallel (using Promise.all) to optimize the joining process.convertMetadataArrayToObject) and fixed duplicate event listeners in initializeRtm.[uid]_screen) to publish the screen track.SHARE_START, SHARE_STOP) now include the screenUid to allow viewers to map the correct track to the correct user.handleUserPublished now checks for the _screen UID suffix to correctly route screen share streams to the main container, solving all previous race conditions./wpj/v1/rtc-token) to generate RTC tokens on-demand for the new screen sharing client.renderUserList) is now filtered to exclude screen share clients (e.g., uid_screen) from appearing as participants.input type="hidden" fields and URL parameters with a secure, one-time-use WordPress Transient system. All data (Room ID, User Name, Mic/Cam IDs, Auto-Approve) is now passed securely via the server.defined('WPJ_BUDDYBOSS_ADDON_ACTIVE').bp_get_current_group_id()) as the room_id when the [wpj_lobby] shortcode is used within a group tab.WPJ_BUDDYBOSS_ADDON_ACTIVE constant not being defined on the front-end. Moved its definition from the admin_init hook to the plugins_loaded hook in the addon file.shortcode.php fallback loader. plugins_url() calls for wpj-lobby.js and wpj-front-style.css now correctly use ../public/ to find the assets folder.setUserMetadata) system with a new method using RTM Channel Messages (publish) to broadcast user names (uname) and roles. This resolves the -12019 and -10019 errors.getOnlineUsers (with correct 'MESSAGE' type) and existing users re-publish their attributes when a new user joins (REMOTE_JOIN).undefined. The app now correctly parses event.message instead of the non-existent event.message.text.TypeError in jd-wpjointly.php where wpj_t() was called with a string as the second argument instead of the required array.#wpj_people) to display all participants.user_account in the lobby AJAX call to prevent errors.channelName on the server-side (wpj_generate_token_callback) for better security.new RTM(appId, userId) and .login({ token }) per v2.2.2 documentation..on() to the correct .addEventListener() method..subscribe(channel, { withPresence: true }) call.<img> icons (Sidebar Close, Chat Send, Default Avatar) with inline <svg> elements for faster loading and reliability.<head> (in_footer = false) to prevent JavaScript race conditions in the footer.user_role from PHP directly to wpj-meetingroom.js via the settings object.whoNow function failed with "Invalid channel type" by explicitly specifying the 'MESSAGE' channel type.TypeError: reading 'length' of undefined) when checking whoNow results on an empty or new channel by adding proper safety checks..empty() to .remove()).flex-shrink: 0 to the SVG CSS.width/height attributes from all SVGs in shortcode.php to allow CSS to take control.Live on client sites - Meeting, Chat, Presenter controle.