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
- test: Adding flaky flag to failing tests related to the whiteboard by @gabriellpr in #24367
- test: adjust toast element check by @ramonlsouza in #24681
- fix(CI): avoid using some external/3rd party assets by @germanocaumo in #24916
- [4.0] ci: remove 3rd-party packages pull + install by @prlanzarin in #24927
- chore(tests): update screenshots using correct settings defaults by @germanocaumo in #25146
- Add v[3-9].*.x-develop branch to workflow by @antobinary in #25150
- ci: v4.0.x-release packages to noble-40-prerelease by @antobinary in #25153
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 searchby 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
- !build: Ubuntu 24.04 support on BBB 4.0 by @antobinary in #24805
- [4.0] build(bbb-webrtc-sfu): v2.22.2 (up from v2.22.0) by @prlanzarin in #24893
- ci: v4.0.x-release packages to noble-40-prerelease by @antobinary in #25153
- build: set client build of the type 20260525T143438 by @antobinary in #25155
- (port)build: set client build of the type 20260525T143438 by @antobinary in #25156
Chore
- chore: fix console errors occurring in development mode by @Arthurk12 in #24363
- Merge v3.0.18 into v3.1.x-release by @germanocaumo in #24376
- Merge v3.0.21 into v3.1.x-release by @germanocaumo in #24599
- Merge v3.0.23 into v4.0.x-release by @germanocaumo in #24862
- Merge v3.0.26 into v4.0.x-release by @germanocaumo in #25012
- chore: Iteration BBB 4.0.0-beta.3 by @antobinary in #25029
- Merge v3.0.27 into v4.0.x-develop by @germanocaumo in #25133
- Merge V4.0.x develop into v4.0.x-release by @antobinary in #25154
- Merge V4.0.x develop into v4.0.x-release by @antobinary in #25154
Documentation
- docs: Update various BBB 4.0 docs by @antobinary in #25159
- (port) docs: Various BBB 4.0 docs updated by @antobinary in #25160
New Contributors
- @trummerschlunk made their first contribution in #24268
- @MatheusOliveiraT made their first contribution in #24829
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.