github bigbluebutton/bigbluebutton v4.0.x-beta.3
v4.0.0-beta.3

latest release: v3.0.28
pre-release15 days ago

BigBlueButton 4.0.0-beta.3

This beta brings a significant Layout System revamp (defaulting to the Unified layout, refined camera sorting and pagination, and a new multi-functional mode with dual sidebar panels). Other highlights include a new WASM-based audio processor (BBBA) running on top of the mic stream, user search in the user list, a redesigned lock-settings modal with a 3-state presenter policy, pinned chat messages for moderators, a "Request to Become Presenter" flow for viewers, persistent pinned apps in the gallery, and Ubuntu 24.04 support for BBB 4.0. Below is a list of the pull requests in this iteration, grouped by component.

Link to installation command / instructions / planned features: https://docs.bigbluebutton.org/4.0/new-features (work in progress)

Big THANK YOU to all community members who helped for this release - both through sending pull requests and through reporting bugs or requesting enhancements! 🎊

HTML5 client

fixes

  • fix(breakouts): user list not updating by @germanocaumo in #22987
  • fix(userlist): fix how the breakout room number is displayed in the userlist by @guiiBecker in #24064
  • fix(placeholders): replace remaining placeholders {0} with descriptive names by @guiiBecker in #24084
  • fix(chat-form): minor design fixes for chat by @AtilaU19 in #24099
  • fix(timer): Improve timer UI/UX by @guiiBecker in #24144
  • fix: client crash due to incorrect toggle usage in notification settings by @prlanzarin in #24154
  • fix: client crash when plugins incorrectly supply icons to the media area by @prlanzarin in #24159
  • fix(whiteboard): highlight tool colors by @Arthurk12 in #24165
  • Fix potential crash on media area and remove unused code by @lfzawacki in #24166
  • fix(whiteboard): grant individual write access by @Arthurk12 in #24236
  • fix(profile): multiple cameras and virtual background fixes by @germanocaumo in #24240
  • [3.1] fix(chat): audio alerts playing when panel is opened by @Arthurk12 in #24242
  • fix(chat/notes): resolve persistent visual notifications in notes and chat hooks by @Arthurk12 in #24256
  • fix(user-list): broken pagination due to incorrect parent ref, + by @prlanzarin in #24265
  • fix(user-list): several performance improvements by @Arthurk12 in #24272
  • fix tests that are not passing on 3.1 by @germanocaumo in #24279
  • fix(shared-notes): disable sidebar button when pinned by @Arthurk12 in #24303
  • fix(shared-notes): bypass unmount delay when pinned on grid layout by @Arthurk12 in #24309
  • fix: re-add missing 'promote to moderator' icon by @Arthurk12 in #24355
  • fix(notes): incorrect CSS property types by @Arthurk12 in #24357
  • fix(chat): adjust input spacing by @Arthurk12 in #24364
  • fix(chat): wrap text input placeholder by @Arthurk12 in #24385
  • fix(html5): close sidebar pannel when breakouts time ends by @germanocaumo in #24401
  • fix(breakout-room): fix cancel button and time display alignment issues by @AtilaU19 in #24410
  • fix: pinned notes header and profile settings responsiveness by @AtilaU19 in #24420
  • fix(npm): Run npm audit and update package versions by @lfzawacki in #24426
  • fix(chat): refine audio alerts behavior based on tab focus by @Arthurk12 in #24437
  • fix(html5): pinned shared notes and dropdown icon wrong position in rtl by @germanocaumo in #24438
  • Fix crash when hiding navbar via userdata or layout by @lfzawacki in #24450
  • fix(html5): make user list actions icons bigger by @germanocaumo in #24452
  • fix: restore role-based talking indicator colors by @prlanzarin in #24453
  • fix(html5): locked shared notes + small fixes by @germanocaumo in #24469
  • fix(emoji-rain): increase z-index to render above presentation area by @guiiBecker in #24491
  • fix(timer): sync timer display with meeting timer count by @guiiBecker in #24492
  • fix(external-video): remove duplicate event listener registration & ensure volume bar is visible on YouTube player by @Arthurk12 in #24507
  • fix(html5): don't close presentation in breakouts + test fix by @germanocaumo in #24530
  • fix(chat): increase font-size to 14px by @Arthurk12 in #24572
  • fix(whiteboard): fix background color inversion in Dark Mode by @guiiBecker in #24580
  • fix(chat): show Public/Private Chat buttons for empty private chats by @guiiBecker in #24602
  • fix(chat-panel): text input and emojin button have incorrect color in Dark Mode by @guiiBecker in #24625
  • fix(chat): remove hard-coded pt-BR aria label by @Arthurk12 in #24634
  • fix(whiteboard): scope slide zoom state to presentation id by @germanocaumo in #24728
  • fix(whiteboard): prevent presenter/viewer viewed-region desync after fullscreen by @germanocaumo in #24735
  • fix(lock-settings): restore guest policy notificaton + test fixes by @germanocaumo in #24741
  • fix(tests): enable new Presentation permissions tests to run on CI by @germanocaumo in #24747
  • fix(lock-settings): minor design fixes by @AtilaU19 in #24760
  • fix: restore WebRTC compat check, localization and UI in unsupported UA screen by @prlanzarin in #24763
  • fix(html5: remove empty guest-lobby gap and adjust leave button spacing by @germanocaumo in #24765
  • fix: client crashes when a invalid layout is set in local storage/settings by @prlanzarin in #24775
  • fix(layout): Layout observer with userdata-bbb_hide_sidebar_navigation=true now properly resolves by @lfzawacki in #24784
  • fix(audio): edge cases in mic device selection, + by @prlanzarin in #24830
  • fix(layout): several layout fixes that were lost in unified layout by @germanocaumo in #24834
  • fix(audio): additional improvements to WASM processor lifecycle, config changes by @prlanzarin in #24841
  • fix(layout): reduce unnecessary 'layout updates applied' notifications by @AtilaU19 in #24894
  • fix(chat): reduce scroll tremor probability via layout isolation & reply animation by @Arthurk12 in #24896
  • fix(breakout-room): prevent re-render loops and isolate timer state in breakout sidebar by @AtilaU19 in #24928
  • fix(locales/chat): breakout locale corrections and private chat preview truncation by @AtilaU19 in #24936
  • Fix: hidden camera if audio-only tiles are displayed for viewers by @ramonlsouza in #24950
  • fix: exclude audio-only tiles from SFU subscription and plugin buttons by @AtilaU19 in #24957
  • fix(chat): prevent false unread banner on first join in a fresh meeting by @Arthurk12 in #24983
  • fix: improve click target for chat input and user search by @ramonlsouza in #24998
  • fix(tests): screenshots and annotations export in ubuntu 24 fix by @germanocaumo in #25024
  • fix(breakouts): design and implementation improvements by @AtilaU19 in #25036
  • fix: Allow to select text in About section by @ramonlsouza in #25038
  • Fix(html5): improve accessibility of app item controls by @Tainan404 in #25049
  • fix(polls): corrects download/copy date to chat post time by @AtilaU19 in #25098
  • fix: Unified Layout: tile count plus aggregated users does not match total participant count by @ramonlsouza in #25103

features and refactors

  • feat: periodic logging, centralization, and custom report types for WebRTC statistics by @Arthurk12 in #22852
  • feat(apps-gallery): adds isNew ribbon for app in the gallery by @AtilaU19 in #24003
  • feat: reduce unecessary renders by @Arthurk12 in #24025
  • feat: adds new camera icon to the fonts file by @Arthurk12 in #24075
  • refactor(external-video): extract duplicated startWatching code to service by @lfzawacki in #24119
  • feat: update 'promote to moderator' icon by @Arthurk12 in #24237
  • feat(breakouts): show breakouts panel and sidebar button for unassigned users by @AtilaU19 in #24247
  • feat: Use BBBA as wasm-based audio processor on top of mic stream by @trummerschlunk in #24268
  • feat: implement "Request to Become Presenter" feature for viewers by @AtilaU19 in #24341
  • feat(user-list): add user search by @Arthurk12 in #24350
  • feat(raised-hand): add notification badge to the sidebar button by @Arthurk12 in #24509
  • feat(media-area): remove settings icon from buttons by @Arthurk12 in #24515
  • feat(meeting-ended): attach reason code to logout URL by @Arthurk12 in #24542
  • feat(settings): new shortcuts design by @Arthurk12 in #24567
  • feat(sidebar-navigation): add participants count badge to user list button by @Arthurk12 in #24569
  • feat: option to show "isNew" label for native apps in the gallery by @prlanzarin in #24642
  • ![4.0] Layout revamp by @ramonlsouza in #24659
  • feat(lock-settings): Redesign lock-settings modal and introduce 3-state presenter policy by @AtilaU19 in #24672
  • refactor: camera custom pagination settings (4.0) by @ramonlsouza in #24676
  • refactor(breakout-room): Redesign sidebar UI for moderator and participants by @AtilaU19 in #24691
  • feat(apps-gallery): persist and cache pinned apps across sessions by @AtilaU19 in #24711
  • refactor(profile): replace available/away toggle with status dropdown by @AtilaU19 in #24712
  • feat(chat): implement pinned messages for moderators by @guiiBecker in #24725
  • feat(sidebar-navigation): add audio captions button above Learning Dashboard and rename flag to showInSidebarNavigation by @AtilaU19 in #24755
  • feat: add presenter approval tracking and notifications by @AtilaU19 in #24777
  • feat(poll): allow to copy/download polls results from chat by @AtilaU19 in #24789
  • refactor: replace connection error banner with toast notifications by @AtilaU19 in #24792
  • feat(user-list): add empty state message to search results by @Arthurk12 in #24840
  • feat: add unsaved changes confirmation to Permissions modal by @AtilaU19 in #24856
  • feat(user-list): add current user in search results & fix(user-list): preserve search filter across realtime updates by @Arthurk12 in #24865
  • feat(user-list): display search field for non-moderators by @Arthurk12 in #24919
  • feat(layout): add multi-functional mode with dual sidebar panels by @Arthurk12 in #24939
  • feat(whiteboard): update multi-user whiteboard icon and badge position by @Arthurk12 in #25060

test and CI

locales

  • Updates for file bigbluebutton-html5/public/locales/en.json in ja by @transifex-integration[bot] in #24137
  • Updates for file bigbluebutton-html5/public/locales/en.json in hu_HU by @transifex-integration[bot] in #24139
  • Updates for file bigbluebutton-html5/public/locales/en.json in zh_TW by @transifex-integration[bot] in #24174
  • Updates for file bigbluebutton-html5/public/locales/en.json in nb_NO by @transifex-integration[bot] in #24187
  • Updates for file bigbluebutton-html5/public/locales/en.json in nb_NO by @transifex-integration[bot] in #24283
  • Updates for file bigbluebutton-html5/public/locales/en.json in it_IT by @transifex-integration[bot] in #24290
  • Updates for file bigbluebutton-html5/public/locales/en.json in ja by @transifex-integration[bot] in #24312
  • Updates for file bigbluebutton-html5/public/locales/en.json in el_GR by @transifex-integration[bot] in #24322
  • Updates for file bigbluebutton-html5/public/locales/en.json in et by @transifex-integration[bot] in #24328
  • Updates for file bigbluebutton-html5/public/locales/en.json in fr by @transifex-integration[bot] in #24333
  • Updates for file bigbluebutton-html5/public/locales/en.json in fr by @transifex-integration[bot] in #24354
  • Updates for file bigbluebutton-html5/public/locales/en.json in ar by @transifex-integration[bot] in #24413
  • Updates for file bigbluebutton-html5/public/locales/en.json in it_IT by @transifex-integration[bot] in #24415
  • Updates for file bigbluebutton-html5/public/locales/en.json in pt_BR by @transifex-integration[bot] in #24424
  • Updates for file bigbluebutton-html5/public/locales/en.json in pt_BR by @transifex-integration[bot] in #24428
  • Updates for file bigbluebutton-html5/public/locales/en.json in ja by @transifex-integration[bot] in #24435
  • Updates for file bigbluebutton-html5/public/locales/en.json in tr by @transifex-integration[bot] in #24460
  • Updates for file bigbluebutton-html5/public/locales/en.json in it_IT by @transifex-integration[bot] in #24472
  • Updates for file bigbluebutton-html5/public/locales/en.json in ar by @transifex-integration[bot] in #24482
  • Updates for file bigbluebutton-html5/public/locales/en.json in et by @transifex-integration[bot] in #24497
  • Updates for file bigbluebutton-html5/public/locales/en.json in hu_HU by @transifex-integration[bot] in #24548
  • Updates for file bigbluebutton-html5/public/locales/en.json in ar by @transifex-integration[bot] in #24576
  • Updates for file bigbluebutton-html5/public/locales/en.json in et by @transifex-integration[bot] in #24578
  • Updates for file bigbluebutton-html5/public/locales/en.json in it_IT by @transifex-integration[bot] in #24589
  • Updates for file bigbluebutton-html5/public/locales/en.json in nb_NO by @transifex-integration[bot] in #24597
  • Updates for file bigbluebutton-html5/public/locales/en.json in it_IT by @transifex-integration[bot] in #24619
  • Updates for file bigbluebutton-html5/public/locales/en.json in ar by @transifex-integration[bot] in #24627
  • Updates for file bigbluebutton-html5/public/locales/en.json in et by @transifex-integration[bot] in #24648
  • [4.0] Updates for project BigBlueButton v4.0 HTML5 client by @transifex-integration[bot] in #24656
  • [4.0 locales] Updates for project BigBlueButton v4.0 HTML5 client by @transifex-integration[bot] in #24673
  • [4.0 locales] Updates for project BigBlueButton v4.0 HTML5 client by @transifex-integration[bot] in #24758
  • [4.0 locales] Updates for project BigBlueButton v4.0 HTML5 client by @transifex-integration[bot] in #24774
  • [4.0 locales] Updates for project BigBlueButton v4.0 HTML5 client by @transifex-integration[bot] in #24847
  • [4.0 locales] Updates for project BigBlueButton v4.0 HTML5 client by @transifex-integration[bot] in #24886
  • [4.0 locales] Updates for project BigBlueButton v4.0 HTML5 client by @transifex-integration[bot] in #24899
  • [4.0 locales] Updates for project BigBlueButton v4.0 HTML5 client by @transifex-integration[bot] in #24917
  • [4.0 locales] Updates for project BigBlueButton v4.0 HTML5 client by @transifex-integration[bot] in #24921
  • [4.0 locales] Updates for project BigBlueButton v4.0 HTML5 client by @transifex-integration[bot] in #24965
  • [4.0 locales] Updates for project BigBlueButton v4.0 HTML5 client by @transifex-integration[bot] in #25004

Core

  • fix(presentation): dispatch close when there is no presentation by @Arthurk12 in #24456
  • remove: Remove deprecated /api/rest/clientSettings endpoint by @MatheusOliveiraT in #24829
  • [Follow up of #24350] feat(bbb-graphql-server): improve db index for user search by filtering only active users by @Arthurk12 in #24860
  • fix(bbb-web): respond to /create before downloading pre-uploaded presentations by @germanocaumo in #24931
  • fix(api): handle malformed API XML and presentation URLs by @germanocaumo in #25099

Packaging and configuration

Chore

Documentation

New Contributors

Full Changelog: v3.1.0-beta.2...v4.0.x-beta.3

Release name

Passing -v noble-400 to https://github.com/bigbluebutton/bbb-install/blob/v4.0.x-release/bbb-install.sh will always install the latest released BigBlueButton 4.0 version.

If for some reason you would like to install this specific release, pass -v noble-400-4.0.0-beta.3.

We still recommend using -v noble-400 as this repository is continually updated with each BigBlueButton 4.0 release.

Don't miss a new bigbluebutton release

NewReleases is sending notifications on new releases.