- Add Markdown export capability to shared notes
- Add init-from-markdown capability to shared notes
- Add import modal to shared notes
- Add search functionality to the apps gallery
- Add pin management to the apps gallery
- Add list and grid view toggle to the apps gallery
- Render emoji-only chat messages larger as jumbomoji
- Add configurable plugin button styles
- Default BigBlueButton's media stack to LiveKit with the legacy SIP.js audio bridge removed
- Make BlockNote the default shared notes engine
- Upgrade JVM libraries and applications to Java 21
- Redesign sidebar notifications and the participant counter
- Build bbb-webhooks together with the other packages
- Move YAML editing in scripts to yq-go
- Allow reopening confirmation toast after cancel on recording button
- Remove presence status dot from profile button in sidebar
- Prevent overlapping icons in webcam containers
- Fix arrow keys not triggering slide navigation in presentation toolbar
- Remove the BBB Recording IMEX library
- Remove deprecated create/join parameters lockSettingsDisableNote, userdata-bbb_change_layout, and per-user enable-user-reaction
This beta defaults BigBlueButton's media stack to LiveKit (with the legacy SIP.js audio bridge removed), makes BlockNote the default shared notes engine (now with Markdown export, init-from-markdown, and an import modal), and upgrades the JVM libraries and applications to Java 21. Other highlights include search, pin management, and a list/grid view toggle in the apps gallery, a new design for sidebar notifications and the participant counter, larger rendering for emoji-only chat messages (jumbomoji), configurable plugin button styles, and removal of the BBB Recording IMEX library as well as of several deprecated create/join parameters (lockSettingsDisableNote, userdata-bbb_change_layout, per-user enable-user-reaction). On the packaging side, bbb-webhooks is now built together with the other packages and YAML editing in scripts moved to yq-go. Below is a list of the pull requests in this iteration, grouped by component. Pull requests already released in BigBlueButton 3.0.x (3.0.28 through 3.0.32) and merged forward into 4.0 are not repeated here - see the corresponding 3.0.x release notes.
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! :confetti_ball:
HTML5 client
fixes
- fix(recording-button): allow reopening confirmation toast after cancel by @germanocaumo in https://github.com/bigbluebutton/bigbluebutton/pull/25174
- fix(profile): remove presence status dot from profile button in sidebar by @AtilaU19 in https://github.com/bigbluebutton/bigbluebutton/pull/25019
- fix(video-list-item): prevent overlapping icons in webcam containers by @AtilaU19 in https://github.com/bigbluebutton/bigbluebutton/pull/25071
- fix(user-list): removes "Blocked" label until new design by @AtilaU19 in https://github.com/bigbluebutton/bigbluebutton/pull/25072
- fix(presentation-toolbar): fix arrow keys not triggering slide navigation by @Arthurk12 in https://github.com/bigbluebutton/bigbluebutton/pull/25152
- fix(notes): adjust padding to not stay out of sidebar by @germanocaumo in https://github.com/bigbluebutton/bigbluebutton/pull/25209
- fix(presentation): authenticate thumbnail URL in manage presentations by @Tainan404 in https://github.com/bigbluebutton/bigbluebutton/pull/25241
- fix(presentation): prevent restore-on-upload logic from disabling itself by @Arthurk12 in https://github.com/bigbluebutton/bigbluebutton/pull/25205
- Update Poll button label for better clarity by @ramonlsouza in https://github.com/bigbluebutton/bigbluebutton/pull/25075
- fix(plugins): center and resize SVG icons in apps gallery by @Arthurk12 in https://github.com/bigbluebutton/bigbluebutton/pull/25248
- fix(generic-sidekick-content): open panel when content is injected with open: true by @Arthurk12 in https://github.com/bigbluebutton/bigbluebutton/pull/25069
- fix(media-area): add id to drop up by @Arthurk12 in https://github.com/bigbluebutton/bigbluebutton/pull/25330
- Fix: disable virtual background toggle on unsupported devices (iOS/Safari) by @Tainan404 in https://github.com/bigbluebutton/bigbluebutton/pull/25151
- fix(chat): prevent reply preview from clipping long messages by @AtilaU19 in https://github.com/bigbluebutton/bigbluebutton/pull/25351
- fix(html5): stop recording confirmation toast from blocking other modals by @Tainan404 in https://github.com/bigbluebutton/bigbluebutton/pull/25334
- fix(video): never let the grid overflow tile consume a camera slot, + by @prlanzarin in https://github.com/bigbluebutton/bigbluebutton/pull/25362
- fix: fix regression bug in user list item dropdown by @GuiLeme in https://github.com/bigbluebutton/bigbluebutton/pull/25361
- fix(html5): prevent crash from browser auto-translation by @prlanzarin in https://github.com/bigbluebutton/bigbluebutton/pull/25371
- fix(ui): align some modal and panel font sizes with design by @germanocaumo in https://github.com/bigbluebutton/bigbluebutton/pull/25321
- fix(video-provider): preview real user avatars in the camera overflow tile by @AtilaU19 in https://github.com/bigbluebutton/bigbluebutton/pull/25370
- fix(html5): add real Panopto player to external video share by @imdt-claudiop in https://github.com/bigbluebutton/bigbluebutton/pull/25389
- fix(quick-poll): keep parenthetical text in Smart Slides poll question by @Tainan404 in https://github.com/bigbluebutton/bigbluebutton/pull/25350
- fix(html5): re-center microphone glyph in audio modal by @imdt-claudiop in https://github.com/bigbluebutton/bigbluebutton/pull/25396
- fix(html5): correct recording timer when client clock is ahead of server by @imdt-claudiop in https://github.com/bigbluebutton/bigbluebutton/pull/25311
- fix(html5): retry locale fetch on transient network failure by @imdt-claudiop in https://github.com/bigbluebutton/bigbluebutton/pull/25423
- Fix(blocknote): shared notes unread indicator by @Tainan404 in https://github.com/bigbluebutton/bigbluebutton/pull/25269
- fix(chat): render private chat previews from the chats subscription by @Tainan404 in https://github.com/bigbluebutton/bigbluebutton/pull/25467
- Fix(html5): who is talking tiles unified by @Tainan404 in https://github.com/bigbluebutton/bigbluebutton/pull/25359
- fix: presentation download system message in chat export by @ramonlsouza in https://github.com/bigbluebutton/bigbluebutton/pull/25404
- fix(video-provider): clear stale grid avatars when a presentation is open by @AtilaU19 in https://github.com/bigbluebutton/bigbluebutton/pull/25482
- Fix: private chat input placeholder alignment by @ramonlsouza in https://github.com/bigbluebutton/bigbluebutton/pull/25424
features and refactors
- feat(apps-gallery): add search, pin management, and list/grid view toggle by @AtilaU19 in https://github.com/bigbluebutton/bigbluebutton/pull/25127
- !refactor(audio): remove SIP.js audio bridge by @prlanzarin in https://github.com/bigbluebutton/bigbluebutton/pull/25237
- feat(user-list): extend search to raised hands & guests and improve UI by @AtilaU19 in https://github.com/bigbluebutton/bigbluebutton/pull/25148
- feat(sidebar-navigation): new design for sidebar notifications and participant counter by @AtilaU19 in https://github.com/bigbluebutton/bigbluebutton/pull/25215
- feat(lock-viewers): reorder tabs to show participant permissions first by @germanocaumo in https://github.com/bigbluebutton/bigbluebutton/pull/25317
- feat(apps-gallery): add setting to pin plugins items by @Arthurk12 in https://github.com/bigbluebutton/bigbluebutton/pull/25293
- feat(guest-policy): adds visual feedback when messaging the waiting room by @AtilaU19 in https://github.com/bigbluebutton/bigbluebutton/pull/25037
- feat(plugins): support configurable button styles by @germanocaumo in https://github.com/bigbluebutton/bigbluebutton/pull/25214
- feat(audio-captions): alert possible wrong microphone when webspeech by @Arthurk12 in https://github.com/bigbluebutton/bigbluebutton/pull/25342
- [4.0] feat(chat): render emoji-only messages with larger font (jumbomoji) by @imdt-claudiop in https://github.com/bigbluebutton/bigbluebutton/pull/25105
- feat(sidebar-navigation): make buttons layout configurable by @Arthurk12 in https://github.com/bigbluebutton/bigbluebutton/pull/25386
- feat(shared-notes): markdown export, init-from-markdown, and import modal by @imdt-claudiop in https://github.com/bigbluebutton/bigbluebutton/pull/25373
- refactor: isolate timer time section to prevent sidebar re-renders by @AtilaU19 in https://github.com/bigbluebutton/bigbluebutton/pull/25265
- refactor(layout): remove redundant bbb_change_layout join parameter by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25441
- refactor(reactions): drop per-user enable-user-reaction join parameter by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25438
- feat(client): Include moderators when randomly assigning users to breakout rooms if all remaining users are moderators by @ramonlsouza in https://github.com/bigbluebutton/bigbluebutton/pull/25120
test and CI
- fix(tests): improve tests and update screenshots by @germanocaumo in https://github.com/bigbluebutton/bigbluebutton/pull/25275
- fix(tests): install BlockNote shared notes in v4 CI on Noble by @germanocaumo in https://github.com/bigbluebutton/bigbluebutton/pull/25316
- test: add BlockNote shared notes e2e tests by @Tainan404 in https://github.com/bigbluebutton/bigbluebutton/pull/25165
- test(recording): use BlockNote editor for shared-notes recording step by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25451
- test(4.0): fix Playwright suite failures and stabilize flaky breakout test by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25501
locales
- [4.0 locales] Updates for file bigbluebutton-html5/public/locales/en.json by @transifex-integration[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25035
- [4.0 locales] Updates for file bigbluebutton-html5/public/locales/en.json by @transifex-integration[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25337
- [4.0 locales] Updates for file bigbluebutton-html5/public/locales/en.json by @transifex-integration[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25383
- [4.0 locales] Updates for file bigbluebutton-html5/public/locales/en.json by @transifex-integration[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25480
Plugin SDK
- chore: update SDK to version 0.0.103 by @GuiLeme in https://github.com/bigbluebutton/bigbluebutton/pull/25365
Core
- remove: Remove BBB Recording IMEX Library by @paultrudel in https://github.com/bigbluebutton/bigbluebutton/pull/25164
- fix(bbb-web): Always Return Non-Null Responses from Recording XML Service by @paultrudel in https://github.com/bigbluebutton/bigbluebutton/pull/25181
- fix(poll): drop out-of-range answerIds to avoid log noise by @imdt-claudiop in https://github.com/bigbluebutton/bigbluebutton/pull/25388
- fix(bbb-web): Handle Null Meeting IDs on IsMeetingRunning Requests by @paultrudel in https://github.com/bigbluebutton/bigbluebutton/pull/25258
- fix(bbb-web): render a response when insertDocument body has no presentation module by @germanocaumo in https://github.com/bigbluebutton/bigbluebutton/pull/25390
- fix(audio): assorted fixes and improvements to LiveKit's floor manager by @prlanzarin in https://github.com/bigbluebutton/bigbluebutton/pull/25395
- fix(core): API parameter downloadable is not working by @ramonlsouza in https://github.com/bigbluebutton/bigbluebutton/pull/25414
- core: Upgrade JVM Libraries and Applications to Java 21 by @paultrudel in https://github.com/bigbluebutton/bigbluebutton/pull/24938
- refactor(core): Remove deprecated lockSettingsDisableNote (singular) create parameter by @ramonlsouza in https://github.com/bigbluebutton/bigbluebutton/pull/25481
Learning dashboard
- fix(learning-dashboard): prevent actor crashes on missing activity state by @germanocaumo in https://github.com/bigbluebutton/bigbluebutton/pull/25272
- fix(learning-dashboard): prevent webcam time from exceeding online time by @germanocaumo in https://github.com/bigbluebutton/bigbluebutton/pull/25360
Recording
- fix(recording): Ruby 3.2 File.exists? deprecation in BigBlueButton recording sanity worker by @sanduhrs in https://github.com/bigbluebutton/bigbluebutton/pull/25338
Packaging and configuration
- build: include bbb-webhooks in package building by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25167
- build(bbb-webhooks): v3.6.1 (up from v3.6.0) by @prlanzarin in https://github.com/bigbluebutton/bigbluebutton/pull/25195
- build(bbb-webrtc-sfu): v2.23.0 (up from v2.22.2) by @prlanzarin in https://github.com/bigbluebutton/bigbluebutton/pull/25196
- !build: default media bridges to LiveKit by @prlanzarin in https://github.com/bigbluebutton/bigbluebutton/pull/25239
- build: use yq-go (mikefarah) for YAML editing instead of Noble's yq; intro of bbb-yq-go package by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25398
- build: default shared notes to BlockNote by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25124
- build(bbb-webrtc-sfu): use default scheduler, set niceness to -10 by @prlanzarin in https://github.com/bigbluebutton/bigbluebutton/pull/25477
- build(bbb-livekit): use default scheduler/niceness for livekit-sip by @prlanzarin in https://github.com/bigbluebutton/bigbluebutton/pull/25476
Chore
- chore: Merge v4.0.x release into v4.0.x-develop by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25185
- webpack: ignore .yalc/ from file watching and exclude tldraw from man… by @Tainan404 in https://github.com/bigbluebutton/bigbluebutton/pull/25077
- chore: use Markdown headings in GitHub issue templates by @prlanzarin in https://github.com/bigbluebutton/bigbluebutton/pull/25207
- Merge <=3.0.30 into 4.0.x-develop by @lfzawacki in https://github.com/bigbluebutton/bigbluebutton/pull/25286
- build(deps): bump ch.qos.logback:logback-core from 1.5.25 to 1.5.33 in /bbb-recording-imex by @dependabot[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25368
- build(deps): bump js-yaml from 3.14.2 to 3.15.0 in /bbb-learning-dashboard by @dependabot[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25369
- build(deps-dev): bump js-yaml from 3.14.2 to 3.15.0 in /bigbluebutton-tests/playwright by @dependabot[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25358
- build(deps): bump concurrent-ruby from 1.3.4 to 1.3.7 in /record-and-playback/core by @dependabot[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25307
- build(deps): bump launch-editor from 2.11.1 to 2.14.1 in /bbb-learning-dashboard by @dependabot[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25295
- build(deps): bump launch-editor from 2.12.0 to 2.14.1 in /docs by @dependabot[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25296
- fix(akka-apps): [development] Correctly start bbb-apps-akka by creating symlinks by @hiroshisuga in https://github.com/bigbluebutton/bigbluebutton/pull/25372
- build(deps): bump jwt from 2.5.0 to 2.10.3 in /record-and-playback/core by @dependabot[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25218
- build(deps-dev): bump form-data from 3.0.4 to 3.0.5 in /bbb-graphql-client-test by @dependabot[bot] in https://github.com/bigbluebutton/bigbluebutton/pull/25377
- [4.0] chore: npm audit fixes by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25445
- [4.0 port] chore: Update bbb-web, akka- core dependencies by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25457
- Merge v3.0.x-develop into v4.0.x-develop by @lfzawacki in https://github.com/bigbluebutton/bigbluebutton/pull/25455
- chore(notes): Enable Markdown import and export options by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25502
Documentation
- docs: Major docs catch-up for 4.0 up to beta.3 by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25184
- docs: incorrect forceRelay* removal indication by @prlanzarin in https://github.com/bigbluebutton/bigbluebutton/pull/25192
- docs: Fix layout naming inconsistency and missing MEDIA_ONLY by @Tainan404 in https://github.com/bigbluebutton/bigbluebutton/pull/25319
- fix(document): add --build for development scripts of bbb-web by @hiroshisuga in https://github.com/bigbluebutton/bigbluebutton/pull/25379
- Docs: Add presentation parameter current by @samuelwei in https://github.com/bigbluebutton/bigbluebutton/pull/25413
- docs: clarify allowOverrideClientSettingsOnCreateCall is a server setting, not a /create param by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25436
- docs: Document userdata-bbb_transcription_provider and userdata-bbb_hide_sidebar_navigation by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25440
- [4.0]docs: replace architecture PNG with inline Mermaid diagram; update for 4.0 by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25475
- docs: sync 4.0 docs for v4.0.0-beta4 by @antobinary in https://github.com/bigbluebutton/bigbluebutton/pull/25497
New Contributors
- @sanduhrs made their first contribution in https://github.com/bigbluebutton/bigbluebutton/pull/25338
Full Changelog: https://github.com/bigbluebutton/bigbluebutton/compare/v4.0.x-beta.3...v4.0.0-beta.4
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.4.
We still recommend using -v noble-400 as this repository is continually updated with each BigBlueButton 4.0 release.