Web UI Kit
Compatibility: Requires RealtimeKit Web Core 2.0.0 or later.
This is a major breaking release to align with the Core SDK v2.0.0 plugin redesign and removal of deprecated APIs.
Plugin components — redesigned
The rtk-plugin-main and rtk-plugins components have been updated for the new plugin model.
Key changes:
rtk-plugin-mainno longer renders an<iframe>. Instead, it uses a<slot>to project theplugin.component(anyHTMLElement) you provide in the plugin config.- Plugin permission checks now use
plugin.permissions.canActivateandplugin.permissions.canDeactivateinstead of the oldmeeting.self.permissions.plugins.canStart/canClose. - Plugin list (
rtk-plugins) now showsplugin.iconinstead ofplugin.picture. - Added an empty state message ("No plugins available") when no plugins are registered.
- Removed iframe interaction checks (
canInteractWithPlugin,viewModeEnabled) and theblock-inputsoverlay. These are no longer applicable without iframes.
Removed deprecated API usages
meeting.leaveRoom()— usemeeting.leave().meeting.connectedMeetings.supportsConnectedMeetings— removed. Breakout room checks usemeeting.connectedMeetings.isActiveand permission checks directly.participant.clientSpecificId— useparticipant.customParticipantId.
Enhancements
- AI Transcriptions UI: Rewrote the search UI for transcriptions. Search now covers both participant names and transcript content. Added dedicated search placeholder and "no results" states.
- AI Transcriptions header: Fixed typo "MeetingAI" to "Meeting AI".
- Chat message spacing: Reduced line height in
rtk-message-viewfor better vertical spacing. - Audio track handling:
RTKAudio.addTrack()now removes any existing track with the same ID before adding, preventing stale tracks from accumulating (fixes double audio on reconnect).
New localization keys
plugins.empty— "No plugins available"ai.transcriptions.search_placeholder— "Search by participant name or transcript"ai.transcriptions.no_transcripts_found— "No transcripts found. Try searching for a different participant or transcript."ai.transcriptions.no_transcripts_yet— "No transcripts yet."
Fixes
- Fixed abrupt disconnection screen appearing incorrectly during media reconnection.
- Fixed missing audio after reconnection due to stale tracks not being replaced.
Compatibility: Works best with RealtimeKit Web Core 1.5.1 or later.
Features
- When a user fails to join a meeting,
rtk-idle-screenandrtk-setup-screennow display a troubleshooting link to help resolve common connection issues such as firewall restrictions and permission errors. - If the meeting preset allows transcripts, the transcription panel is now shown by default without requiring manual activation.
Enhancements
- Raw SDK error codes and messages are no longer shown to end users on join failure. Error messages are now mapped to clear, user-friendly, localized text with a small reference code (for example,
Error code: 0002) for support and debugging.
Fixes
- Corrected several typos and spacing issues in the default language pack.
Enhancements
- AI sidebar component now uses
activeSidebarstate instead ofactiveAIstate, streamlining all sidebar components under a single state.
Compatibility: Works best with RealtimeKit Web Core 1.2.5 or later.
Enhancements
- Improved error handling for room join failures to display actionable error messages instead of showing an infinite loader.
Fixes
- Corrected typos in UI strings:
occured→occurredOn you device→On your deviceGrant acess→Grant access
- Fixed default language pack keys:
ai.chat.summerise→ai.chat.summarizedate.yesteday→date.yesterday
Compatibility: Works best with RealtimeKit Web Core 1.2.4 or later.
Features
- Chat message operations (edit, delete, pin) are now available to all participants.
- Chat pagination with infinite scroll for improved performance in meetings with high message volume.
- Pinned messages are now displayed in a dedicated view for easy access.
- Added
overridesprop support onrtk-meetingandrtk-ui-providerfor easier UI customization. Available overrides include:disablePrivateChat- Disable private chat functionality.disableEmojiPicker- Hide emoji picker in chat component.
<RtkMeeting meeting={meeting} overrides={{ disablePrivateChat: true, disableEmojiPicker: true }} />
New components
rtk-chat-header- Header component with pinned messages and private chat selector.rtk-pinned-message-selector- Displays all pinned messages with paginated infinite scroll.rtk-chat-selector- Switch between public chat and private chats with specific participants.
Component enhancements
rtk-chat-composer-viewnow acceptsisSendingprop to display sender messages on the right and other messages on the left with different colors.rtk-chat-messages-ui-paginatednow acceptsprivateChatRecipientprop for displaying paginated private chat messages.rtk-chat-messages-ui-paginatednow emitseditMessage,deleteMessage, andpinMessageevents for message operations.rtk-menu-itemandrtk-menu-listnow acceptmenuVariantprop for different color schemes based on user actions.rtk-message-viewnow acceptsisEdited,isSelf,messageType, andpinnedprops for appropriate message rendering.- Added automatic scrolling to new messages.
Breaking changes
Removed non-operational chat channel components to streamline the SDK. rtk-chat remains fully operational.
- Removed
rtk-channel-creator. - Removed
rtk-channel-header. - Removed
rtk-channel-details. - Removed
rtk-channel-selector-ui. - Removed
rtk-channel-selector-view. rtk-chat-composer-uino longer acceptschannelIdprop.rtk-chatno longer acceptsdisablePrivateChatprop. Use preset configuration instead, or pass as override:<RtkMeeting meeting={meeting} overrides={{disablePrivateChat: true}} />
Deprecations
rtk-chat-composer-uiis deprecated due to scalability limitations and lack of pagination support.
Known limitations
- Total message count for public and private chats is not currently displayed.
Fixes
- Fixed iOS issue where the chat compose view would zoom when typing a message.
Fixes
- Fixed alignment issues with unread chat message count, unread polls count, and pending participant stage request count.
- Resolved issue where action toggles were incorrectly displayed in participant video preview in the settings component.
Fixes
- Fixed an issue where
rtk-debuggerdisplayed audio and video bitrate as0. - Resolved menu visibility for the last participant when the participants list is long.
- Fixed
rtk-pollsnot rendering when props were provided after initial mount. - Improved
rtk-participant-tileaudio visualizer appearance when muted (no longer shows as a single dot). - Prevented large notifications from overflowing their container.
- Fixed a memory leak in the
mediaConnectionUpdateevent listener. - Corrected
rtk-ui-providerprop passing to children during consecutive meetings on the same page.
Fixes
- Fixed Safari CSS issues where the
rtk-settingscomponent was not visible and the Audio Playback modal was not taking the proper height.
Enhancements
- Livestream viewer now has a seeker and DVR functionality.
Fixes
- Fixed Angular integration issues.
Enhancements
- Added support for multiple meetings on the same page in RealtimeKit.
- Enhanced the
rtk-ui-providercomponent to serve as a parent component for sharing common props (meeting,config,iconPack) with all child components.
Fixes
- Resolved
TypeErrorthat occurred for meetings without titles. - Implemented minor UI improvements for chat components.
Features
- Made Livestream feature available to all beta users.
Performance
- Fixed dependency issues to enhance performance and Angular integration.