Skip to content

OpenTalk v26.2.0

  • Release date: 2026-09-01
  • Release series: 26.2

Release notes

Noteworthy Changes

New Room Server Architecture (#134)

Meeting sessions now run on a new room server architecture. The previous implementation was prone to stability issues, the new implementation makes sessions more stable and resilient.

Increased Grid View with up to 24 tiles (#106)

The grid view now shows up to 24 participant tiles instead of the previous maximum of 9. Users can adjust the number in the layout settings and choose between 6, 9, 16, and 24 tiles. This allows users to choose the option that works best for them, based on their personal preferences and the size of their meeting and their screen.

Reactions (#175)

Participants can now send emoji reactions during a video call. Reactions give spontaneous feedback without interrupting the conversation. All users can capture this feedback directly to quickly estimate moods or the level of agreement.

A new Reactions button in the toolbar triggers them.

The toolbar order has also changed: Microphone and Camera come first.

Guest Access Mode (#42)

Every meeting used to be open to guests, with no way for organizers to restrict it. A new Guest Access Mode lets organizers enable or disable guest access per meeting.

The existing protection options stay available. Guest Access Mode can be combined with Password protection and Waiting room, which now apply either to all participants or to guests only.

New Whiteboard based on Excalidraw (#6)

The whiteboard now uses Excalidraw instead of Spacedeck. Excalidraw is more powerful, has a better user interface, and enables more modern and intuitive real-time collaboration. It is also actively maintained, while Spacedeck was no longer developed and had become a security risk.

Activity based Tile Prioritization (#102)

Participants who speak or turn on their camera now move automatically to the first page of the Grid View. Finding active participants no longer means searching across pages.

Audio Output Device Selection (#221)

Users could previously only choose their audio input device. The settings now also offer output device selection, so users can pick which speakers or headphones the meeting audio plays through.

OpenCloud for Shared Folders (#176)

When planning a meeting, organizers can enable a shared folder so that participants have a common location to store documents. Shared folders are provided by an external storage provider.

OpenCloud is now available as one of these providers, so administrators can set it up as the provider for shared folders in OpenTalk meetings.

Outlook Addin for OTaaS (#45)

The OpenTalk Outlook add-in for calendar integration was previously only available to self-hosted customers. It now also supports our SaaS product (OTaaS), so OTaaS users can schedule OpenTalk meetings directly from Outlook.

Enhanced Active Speaker Detection (#103)

Speaker View now holds the active speaker in place during short sounds from other participants. Background noise, typing or a quick "mhm" no longer triggers a switch. Real speaker changes still take effect, but without rapid back-and-forth.

Admin Config Option for Maximum Grid Size (#304)

Administrators can now set the maximum number of grid tiles users can select. The configured value defines the upper limit of the grid size options in the conference frontend, so the available grid sizes depend on the instance configuration.

Audio feedback for dial-in participants (#127)

Dial-in participants now receive audio feedback throughout the waiting and admission process in the waiting room.

Previously, users experienced silence from the moment they were placed in the waiting room until they were admitted, with no indication of their status. They now hear hold music while waiting, interrupted every 30 seconds with a status message. Upon admission by the host, they receive a confirmation message and microphone instructions.

Consistent keyboard shortcuts (#133)

Keyboard shortcuts for microphone, video and fullscreen now follow a consistent three modifier pattern (Ctrl+Shift on Windows/Linux, Ctrl+Cmd on macOS) instead of unreliable single key presses, preventing accidental triggers while typing and eliminating conflicts with browser shortcuts such as Ctrl+F for search.

Push to talk for microphone (Spacebar, only while muted) and whisper (W) remain single key holds, since sustained key pressure makes accidental activation unlikely.

The shortcut list has been renamed from "Hotkeys" to "Shortcuts" and is ordered by expected usage frequency.

Keyboard shortcuts for Screen sharing and Raise hand (#180)

Screen sharing and Raise hand can now be controlled via keyboard, extending the shortcut system introduced with #133. Both functions follow the same three modifier pattern and appear in the shortcut list in their correct position based on expected usage frequency.

Meeting invitation form sections (#256)

The meeting creation form now groups its options into sections, making it easier to scan when setting up a meeting.

Pagination in the Dashboard (#52)

Meeting lists with more than 100 entries now show pagination controls at the bottom of the list.

Browser compatibility

Only browser versions supported by their vendor are listed in this matrix. We might add newer versions of browsers that are released while the OpenTalk 26.2 release series is supported.

Browser System Version Camera Blurring Screen Share Audio UI/UX
Chrome Desktop 151 βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
Chrome Android 151 βœ”οΈ βœ”οΈ ❌ βœ”οΈ ⚠️2
Edge Desktop 152 βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
Firefox Desktop 154 βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
Firefox Desktop 140 (ESR) βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
Safari MacOS 26.6 βœ”οΈ ❌ βœ”οΈ ⚠️1 βœ”οΈ
Safari iOS 26.5 βœ”οΈ ❌ ❌ ❔ ⚠️2

Component versions

Category Component Version
Frontend web-frontend v2.9.2
Services controller v0.34.4
Services obelisk v0.22.2
Services recorder v0.17.1
Services roomserver v0.1.3
Services smtp-mailer v0.18.0
Services orchestrator v0.8.1
Integrations outlook-add-in v0.4.0
Deployment ot-setup v26.2.0
Deployment opentalk-compose v26.2.0
3rd-Party Components ot-spacedeck v3.0.3
3rd-Party Components ot-etherpad v2.0.4
3rd-Party Components livekit-server v1.13.5
3rd-Party Components keycloak v26.7.2
3rd-Party Components postgres v17.11.0
3rd-Party Components rabbitmq v4.3.4
3rd-Party Components redis v8.8.1
3rd-Party Components minio RELEASE.2025-10-15T17-29-55Z
3rd-Party Components traefik-proxy v3.7.10
3rd-Party Components ndt-server v0.25.3
3rd-Party Components garage v2.3.0

web-frontend v2.9.2

πŸ› Bug fixes

  • (ci) Failing build pipeline due to wrong sentry configuration (!3561)
  • (handraise) Tooltip translation (!3566, #3479)
  • (timer) Handle error cases (!3573, #3481)

web-frontend v2.9.1

πŸš€ New features

  • (handraise) Disable reset handraises buttons (!3535, #3460)

πŸ› Bug fixes

  • (chat) Change disconnenct message if connection is lost (!3530, #3449)
  • (locales) Use term meeting uniformly (!3530, #3449)
  • (raise_hands) Handling of raise_hands_disabled (!3536, #3461)
  • Show whiteboard icon if only excalidraw configured (!3542)
  • (moderation) Notify issuer of moderator rights toggling (!3548, #3466)
  • (handraise) Handle raise_hands_disabled error (!3535, #3460)
  • (callin) Add missing options for callin users (!3552, #3467)

πŸ”¨ Refactor

  • (common) Move ConditionalToolTip to common (!3535, #3460)
  • (common) Disable action buttons (!3535)

πŸ“¦ Dependencies

  • (deps) Pnpm audit fix (!3553)

web-frontend v2.9.0

πŸš€ New features

  • Poll signaling error handling (!3223, #3217)
  • Init roomserver migration (!3247)
  • Add connections to Participant to model multi‑tab sessions (!3247)
  • Meeting notes support (!3247)
  • Whiteboard support (!3247)
  • Time limit support (!3247)
  • Automod support (!3247)
  • Participant report support (!3247)
  • Legal vote support (!3247)
  • Breakout room support (!3247)
  • Handle general roomserver errors (!3247)
  • Allow participant to self rename (!3247)
  • Add last seen timestamp handler (!3247)
  • Reflect on room parameter updates (!3247)
  • Add self rename context aware messages (!3247)
  • Asset storage namespace message handler (!3231)
  • Add code block support to chat messages (!3256, #3266)
  • (poll answer form) Form shows an error when duplicate answers are provided (!3225, #3223)
  • Add dev tool for device secret management (!3324, #3298)
  • Cinema layout selection persists through sessions (!3318, #3284)
  • Guest access mode in dashboard (!3245)
  • (recording) Add recording compatibility (!3206, #3149)
  • Variable grid size for cinema layout (!3331, #3294)
  • (dashboard) Use events/instances API (!3315, #3259)
  • Handle opaque refresh tokens (!3355, #3314)
  • (auth) Add auth header for start_invited (!3362, #3324)
  • (Hotkeys) Change hotkeys to cmd/ctrl + shift + hotkey and space (!3340, #3310)
  • Guest access options as toggle buttons (!3359)
  • Implementation of chat rate limiting ux (!3316, #3272)
  • No guest link when guest access is disabled (!3389, #3343)
  • Add pagination to time independent events listing (!3360)
  • (Whiteboard) Implement excalidraw (!3395)
  • Dynamic tile reordering (!3257)
  • Add hotkeys for raise hand and screen share (!3415, #3358)
  • Add hotkeys to toolbar button tooltips (!3415, #3350)
  • Merge dynamic tile reordering toggle into sort dropdown (!3421)
  • (shortcut) Adjust macOS shortcut trigger (!3419, #3363)
  • Breakout room form ui restructure (!2955)
  • (layout) Add subtitles to sorting options (!3426, #3366)
  • (meeting-form) Restructure guest-access & waiting-room controls (!3420, #3364)
  • (emoji-reaction) Moderators can enable/disable emoji reactions (!3424, #3354)
  • (emoji-reaction) Add notifications on reactions enable/disable (!3424)
  • (emoji-reaction) Add react button to toolbar (!3424, #3354)
  • (emoji-reaction) Add reaction indicator to participant window (!3424, #3354)
  • (emoji-reaction) Clear emojis after timeout (!3424, #3354)
  • Scale reaction/hand-raise indicator with video tile (!3424)
  • Reorder toolbar buttons (!3424)
  • Add hotkey translations for raise hand and screen share (!3441, #3378)
  • (moderation) Manage waiting room submenu and guest access toggle (!3422, #3349)
  • Floating area for emoji reactions (!3439, #3374)
  • (reaction) Increase floating emoji label width (!3449, #3385)
  • (reaction) Increase foating emoji overlay area to 50% height (!3449, #3385)
  • Audio output picker (!3417, #3361)
  • Enhance active tile priorization (!3450, #3386)
  • Add threshold to active speaker detection (!3454, #3308)
  • Optimize excalidraw implementation (!3430, #3360)
  • (meeting-details) Show conditional meeting / invite link (!3474, #3405)
  • Consume moderator data on role update (!3475, #3403)
  • (layout) Limit available grid tile options via config entry (!3483, #3409)
  • Support default grid size conifg (!3493, #3421)

πŸ› Bug fixes

  • (livekit) Prevent ghost connections on Firefox page reload (!3200, #3209)
  • Polls now have a character limit for answers (!3223, #3170)
  • (meeting-notes) Derive writer selection from write permission only (!3223, #3219)
  • Improve ux for character limits at legal vote form (!3223, #3221)
  • (i18n) Correct german translation for Timer (!3223, #3224)
  • Fix broken memoization in selectCombinedMessageAndEvents (!3243)
  • Add target field to GetHistoryChunk for Private/Group Scopes (!3243, #3192)
  • (auth) Auth state machine for retreival of access token (!3243, #3235)
  • Safeguards for debounced signaling calls (!3243, #3238)
  • (hotkeys) Missing translation for modifiers (!3243, #3248)
  • (MeetingView) Prevent redundant ws connection on rejoin flow (!3243, #3249)
  • (extendTab) Scrambled video in external tab when E2EE enabled (!3243, #3247)
  • Overflowing notification content (!3248)
  • Raise hands participant list (!3247)
  • Use combined identifier for participant sorting (!3247)
  • (ci) Dependencies for container-create-and-push-tags (!3247)
  • Users can now send PMs to users in other breakout rooms (!3247)
  • (livekit) Handle screenshare permission updates (!3247, #3043)
  • Hide recorder room events in global chat feed (!3247, #3188)
  • (breakout) Handle close delay (!3247, #3042)
  • Breakout room chat history (!3247)
  • (user_search) Show only final result of user search (!3253, #3263)
  • (user_search) Inivte participants dropdown should show no result (!3254, #3254)
  • (livekit) Disable singlePeerConnection to resolve audio subscription issues (!3233, #3243)
  • (EventsOverview) Cannot be expanded or collapsed (!3244, #3251)
  • (ExtendedTab) Fix endless loading of extended tab (!3265)
  • (breakout) Improve room switching logic (!3266, #3258)
  • (poll answer form) Input cursor no longer jumps to the top option if it is empty (!3225, #3223)
  • (poll answer form) Typing characters no longer causes refocusing (!3225, #3223)
  • (Renaming) Fix notification text (!3270, #3277)
  • Wrong icon used for video settings (!3300, #3282)
  • Improve consistency of start button in vote and poll (!3297, #3273)
  • Relabel hotkey settings dialog for clarity (!3299, #3281)
  • (MeetingOverview) First item is not expanded by default (!3302, #3285)
  • Start button overflow on home page (!3301)
  • Hide guest links when e2e encryption is active (!3321)
  • Whisper function switches microphone input (!3328, #3301)
  • Unreadable content (!3325)
  • Lobby and waiting room content missalignment (!3327)
  • Sentry annotation attributes are no longer passed as props (!3216, #3214)
  • (EventsOverview) Filter favourite and invited events (!3333, #3302)
  • (api) Remove /roomserver segment from room start endpoints (!3326, #3297)
  • (subroom-audio) Prevent duplicate room connection & permanent active whisper (!3334, #3304)
  • Cursor focus is automatically shifted to the chat input when joining BRO (!3348, #3312)
  • Wrong reconnect message when inside a breakout room (!3354, #3313)
  • (Moderation) Wrong error message when joining from waiting room (!3367, #3309)
  • (Hotkeys) Fix space to preventDefault (!3372)
  • Hand raise not being synced (!3358)
  • Cinema view not being properly cached (!3361)
  • Edited meeting not updating list (!3375)
  • Speaker user visible at the bottom row and disappears after few seconds (!3379, #3337)
  • Autoplay silently not working on edge (!3239)
  • (poll) Prevent duplicate template entries on repeated save clicks (!3392, #3347)
  • (speaker-view) Blank speaker window when switching from grid view (!3390, #3346)
  • Truncate long dynamic content accross UI and notifications (!3371)
  • Handle kick reason in moderation (!3373, #3311)
  • Do not create invite links with breakout ids (!3410)
  • Prevent persistence of whiteboard and other special features (!3407)
  • (Shortcuts) Prevent p2t when audio enabled and adjust translations (!3408, #3352)
  • (Storage) Add StorageQuotaChanged messages and wire initialState (!3313, #3274)
  • (Storage) Store storage quota to redux and add useStorageStatus (!3313, #3275)
  • (Storage) Disable buttons and show notification near limit reached (!3313, #3276)
  • (hotkeys) Prevent hotkey activation in textarea after pressing Enter on Firefox (!3411, #3351)
  • (storage) Add storage messages for excalidraw (!3425)
  • (storage) Adress threads (!3425)
  • (storage) Add license header (!3425)
  • (storage) Add license header (!3425)
  • (storage) Rename StorageTooltip to StorageFullTooltip (!3425)
  • Review (!2955)
  • Filter out recorder from visible participants (!3423, #3365)
  • (download) Update download behavior to open URLs in a new tab (!3433, #3371)
  • Dont strike through hand-raise/reaction button when enabled (!3424)
  • Race-condition when authenticating and react strict-mode is active (!3436)
  • Disallow users selecting reaction emoji (!3439)
  • (reaction) Apply join-success reaction module-data (!3449, #3385)
  • (reaction) Add background pill to floating emoji label (!3449, #3385)
  • (reaction) Show reaction popover in fullscreen (!3449, #3385)
  • (ui) Recreate audio indicator analyser on track restart (!3447)
  • Preserve media choices for room switch (!3448, #3384)
  • Stop exposing production source maps publicly (!3451, #3383)
  • Only show one notification when renaming participants (!3452, #3387)
  • Update display name if self was renamed by others (!3452)
  • Hide audio output picker on unsupported browsers (!3459, #3393)
  • (meeting-notes) Allow hiding meeting notes opened from notification (!3462, #3396)
  • Recording consent not showing on media activation (!3465)
  • (meeting) Respect guest access state for invite, dial-in and waiting room (!3466, #3399)
  • Cancel debounced user find (!3470)
  • (raise-hands) Consume state on join (!3472, #3404)
  • (raise-hands) Sync between different connections (!3472)
  • (excalidraw) Prevent storing empty canvas (!3481)
  • (excalidraw) Improve edit-rights, asset access and error handling (!3485, #3415)
  • Restrict defaultGridSize to maxGridTiles (!3493, #3421)

⚑ Performance

  • Reduce livekit over-subscription and context instability (!3258, #3262)
  • ParticipantVideo optimized perf of useRemoteParticipant hook (!3258)
  • SpeakerWindow optimization (!3258)
  • Optimizing useCurrentSpeaker hook (!3258)
  • ThumbsRow use one participants subscription (!3258)
  • Optimizing GridView creation of fallback participant (!3258)
  • Optimizing thumbsRow participant creation fallback (!3258)
  • FullscreenView onMouseMove unthrottling (!3258)
  • (ui) Optimize audio indicator canvas loop to reduce system load (!2008, #1792)

πŸ”¨ Refactor

  • Update moderation & livekit api types (!3247)
  • Sync incoming core events (!3247)
  • Incoming disable/enable chat message (!3247)
  • Introduce type chatIdentifier (!3247, #3157)
  • Update enabledModules structure to use objects instead of arrays (!3260, #3265)
  • Update feature management to use enabledModules (!3260)
  • Refactor inefficient redux selectors to restore memoization (!3232, #3237)
  • Poll selectors (!3232)
  • Breakout slice (!3232)
  • Chat slice (!3232)
  • SelectUserAsPartialParticipant (!3232)
  • Removed selectSortedParticipants because it's not used (!3232)
  • SelectAllPrivateChats (!3232)
  • SelectRemoteParticipantsDisplayNameRecord (!3232)
  • (auth) Fetch with auth function (!3370, #3332)
  • Move feature gate into component (!3439)
  • Remove pre-roomserver types (!3449)
  • Don't allow to omit modules in JoinSuccessInternalState (!3449)

πŸ“¦ Dependencies

  • (deps) Update livekit (!3180)
  • (deps) Lock file maintenance (!3168)
  • (deps) Update pnpm to v10.33.0 (!3172)
  • (deps) Update dependency knip to ^5.88.1 (!3167)
  • (deps) Update dependency msw to ^2.13.2 (!3268)
  • (deps) Update react (!3170)
  • (deps) Update dependency globals to ^17.4.0 (!3183)
  • (deps) Update node.js to v24.14.1 (!3174)
  • (deps) Update dependency prettier to ^3.8.2 (!3271)
  • (deps) Update dependency type-fest to ^5.5.0 (!3269)
  • (deps) Update i18next (!3165)
  • (deps) Update dependency vite to ^7.3.2 (!3267)
  • (deps) Update vitest monorepo to ^4.1.4 (!3273)
  • (deps) Update dependency knip to v6 (!3279)
  • (deps) Update dependency web-vitals to ^5.2.0 (!3284)
  • (deps) Update alpine/helm docker tag to v4.1.4 (!3284)
  • (deps) Update commitlint monorepo to ^20.5.0 (!3284)
  • (deps) Update dependency @sentry/browser to ^10.48.0 (!3284)
  • (deps) Update dependency @sentry/vite-plugin to v5 (!3284)
  • (deps) Update @types (!3284)
  • (deps) Update dependency colorjs.io to ^0.6.1 (!3284)
  • (deps) Update eslint-plugins (!3284)
  • (deps) Update dependency lodash to ^4.18.1 (!3284)
  • (deps) Update dependency jsdom to v29 (!3278)
  • (deps) Pnpm update (!3291)
  • (deps) Lock file maintenance (!3290)
  • (deps) Update dependency react-router-dom to v7.14.1 (!3294)
  • (deps) Update dependency happy-dom to ^20.9.0 (!3166)
  • (deps) Update dependency i18next to ^26.0.5 (!3298)
  • (deps) Update node.js to v24.15.0 (!3303)
  • (deps) Update dependency knip to ^6.5.0 (!3312)
  • (deps) Update dependency knip to ^6.6.0 (!3317)
  • (deps) Update dependency typescript to ^6.0.3 (!3306)
  • (deps) Update eslint-plugins (!3292)
  • (deps) Update dependency @sentry/browser to ^10.49.0 (!3304)
  • (deps) Update vitest monorepo to ^4.1.5 (!3319)
  • (deps) Update dependency uuid to v14 (!3310)
  • (deps) Update i18next (!3309)
  • (deps) Update dependency prettier to ^3.8.3 (!3296)
  • (deps) Update dependency knip to ^6.6.1 (!3322)
  • (deps) Update pnpm to v10.33.2 (!3323)
  • (deps) Update dependency type-fest to ^5.6.0 (!3307)
  • (deps) Update dependency @sentry/browser to ^10.50.0 (!3329)
  • (deps) Update i18next (!3332)
  • (deps) Update dependency i18next to ^26.0.8 (!3335)
  • (deps) Update dependency jsdom to ^29.1.0 (!3337)
  • (deps) Update dependency knip to ^6.7.0 (!3330)
  • (deps) Update dependency msw to ^2.13.6 (!3295)
  • (deps) Update dependency @commitlint/cli to ^20.5.2 (!3336)
  • (deps) Update dependency typescript-eslint to ^8.59.1 (!3339)
  • (deps) Update dependency @sentry/vite-plugin to ^5.2.1 (!3342)
  • (deps) Update dependency knip to ^6.9.0 (!3341)
  • (deps) Update dependency msw to ^2.14.6 (!3344)
  • (deps) Update dependency knip to ^6.13.1 (!3349)
  • (deps) Update dependency vite to ^7.3.3 (!3377)
  • (deps) Update vitest monorepo to ^4.1.6 (!3378)
  • (deps) Update pnpm to v10.33.4 (!3357)
  • (deps) Update dependency linkifyjs to ^4.3.3 (!3380)
  • (deps) Update dependency @sentry/vite-plugin to ^5.3.0 (!3382)
  • (deps) Lock file maintenance (!3311)
  • (deps) Update node.js to v24.16.0 (!3400)
  • (deps) Update dependency lint-staged to v17 (!3397)
  • (deps) Update livekit packages (!3391)
  • (deps) Update @types (!3376)
  • (deps) Pnpm update (!3428)
  • (deps) Centralize shared versions via pnpm catalog (!3428)

✨ Style

  • Improve poll creation ux by enforcing required fields (!3223, #3153)
  • Switches now have icons to indicate their status (!3293, #3421)
  • Change required asterisk colour to improve contrast (!3228)
  • Redesign layout selection menu (!3386, #3295)
  • Cleanup layout selection dialog (!3412, #3350)

βš™ Miscellaneous

  • Overhauled beforeunload approach (!3200)
  • Improve duplicate connection handler in menutab (!3247, #3105)
  • Hide report problem for finished legal vote (!3247, #3104)
  • Remove group chat reference (!3247)
  • Update participants hook to new role pattern (!3247)
  • Adapt new module initialization (!3247, #3167)
  • Rename deconstructConnectionIdentifier & remove solved TODOs (!3247)
  • Asset table ui enhancement (!3241)
  • Replace custom id generation with React built-in useId (!3314, #3289)
  • Handle moderator error when trying to promote guests to moderators (!3399, #3340)
  • Truncate leftover participant and event names (!3414)
  • Re-enable review apps (!3320)
  • Truncate long displaynames (!3427)
  • (emoji-reaction) Add backend communication (!3424, #3354)
  • Truncate displaynames in breakout room room assignment (!3437, #3359)
  • Expose source maps at profiling builds (!3461)
  • Group common option in meeting creation (!3467)
  • (meeting-form) Store guest access selection (!3471)
  • (excalidraw) Hide help button (!3481)
  • (excalidraw) Strip app state to reduce message overhead (!3481)
  • (excalidraw) Add 'stopped' message handler (!3481, #3407)

Ci

  • (just) Update changelog tool to opentalk git-cliff (!3223)
  • Use changelog template (!3249)
  • Build feature branch container (!3247)
  • Comment out review-app stage & ignore livekitslice at fta (!3247)
  • Use the job-token instead of expired custom token (!3413)
  • Ignore missing review app in clean up step (!3413)
  • Switch to direct merge request query for review app cleanup (!3418)
  • Enable full e2e tests on merge requests (!3250)

Test

  • Set userEvent setup delay to null for improved test performance (!3210)
  • Increase timeout (!3210)
  • Remove unneccessary importActual (!3210)

controller v0.34.4

πŸ› Bug fixes

  • (livekit-proxy) Use GET for rtc/validate endpoint (!2772, #1490)

controller v0.34.2

πŸ› Bug fixes

  • (mailer) Mark messages as persistent (!2753)
  • (storage) Preserve raw query string in proxy download token to prevent 403 on strict S3 backends (!2753, #1479)
  • (api-authorization) Reject invite code access to event endpoints (!2753, #1475)
  • (api-authorization) Don't panic when failing to parse path pattern (!2753, #1483)
  • (authorization) Adjust access to rooms/{room_id}/invites (!2753, #1486)
  • (call-in) Re-enable phone number mapping and masking (!2753, #1487)
  • (justfile) Only consider branch local tags when generating changelog (!2753)

πŸ“¦ Dependencies

  • (deps) Lock file maintenance (!2753)

βš™ Miscellaneous

  • Fix clippy lints (!2753)

controller v0.34.1

πŸ“¦ Dependencies

  • (deps) Update rust crate itertools to 0.15 (!2647)
  • (deps) Update opentalk to 0.1.0 (!2647)

Ci

  • (just) Create release branch (!2647)
  • (just) Tag release and create gitlab release (!2647)

obelisk v0.22.2

πŸ› Bug fixes

  • Rejoining from the waiting room does not work (#316)
  • Bump ezk-sip-core to fix dns ip address selection

obelisk v0.22.1

πŸ“¦ Dependencies

  • (deps) Update ezk-sip-types to v0.6.5 (!558, #303)
  • (deps) Document RUSTSEC-2026-019 (!558)
  • (deps) Update anyhow to 1.0.103 (!558)
  • (deps) Update rust to 1.96 (!561)
  • (deps) Update opentalk-client-signaling to v0.8.1 (!561)
  • (deps) Update crate crossbeam-epoch to v0.9.20 (!561)
  • (deps) Update rust crate spin to v0.9.8 (!566)
  • (deps) Document RUSTSEC-2026-0206 (!566)

Ci

  • (pre-commit) Switch from taplo to olpat (taplo is unmaintained) (!565)

obelisk v0.22.0

πŸš€ New features

  • Read SDP imageattr for H.264 payloads to find target resolution [#38]
  • Log unknown config file fields
  • Migrate to roomserver api (#254)
  • Play hold melody while in waiting-room (#127)

πŸ› Bug fixes

  • Add missing fmtp line for H.264 payloads in SDP answer (#38, #248)
  • Do not discard H.264 FU-A packets when depayloading (#38)
  • Change add-sender log from debug to trace
  • Correctly apply video bitrate limit to H.264 max-br parameter (#38)
  • Evaluate all offered H.264 payload types for best compatibility (#38, #249)
  • Ensure CryptoProvider is configured
  • Detect interrupted connections to trunk & update ready state accordingly (#98)
  • Only terminate call when all RTP sessions are timing out (#53)
  • Always write algorithm field in authenticate header (#265)
  • Play track when accepted from waiting room (#127)

πŸ“¦ Dependencies

  • (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.94.0
  • (deps) Update ezk-rs
  • (deps) Update rust crate anstream to v1
  • (deps) Update quay.io/buildah/stable docker tag to v1.43.0
  • (deps) Lock file maintenance
  • (deps) Update rust crate tt to 0.29
  • (deps) Update livekit sdk
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.4

Ci

  • Use changelog preview template
  • (pre-commit) Use same markdownlint from CI in pre-commit

recorder v0.17.1

πŸ› Bug fixes

  • (recorder) Properly stop streams when shutting down recording session (#260)
  • (recorder) Invert test if stream is running in stop_stream (#260)

recorder v0.17.0

πŸš€ New features

  • Migrate from rabbitmq to rest (!559)
  • Migrate to roomserver signaling (!648)
  • Add opentalk server auth (!630)
  • Add orchestrator client (!641)
  • Replace /v1/init body with roomserver compatible internal api type (!674)
  • Warn about unknown configuration fields (!745)
  • Add support for breakout rooms (!751, #250)

πŸ“š Documentation

  • Fix the example configuration (!746)

πŸ“¦ Dependencies

  • (deps) Update rust crate opentalk-types-common to v0.43.1 (!730)
  • (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.94.1 (!726)
  • (deps) Update rust crate rustls to v0.23.38 (!728)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.1 (!727)
  • (deps) Lock file maintenance (!729)
  • (deps) Update rust crate axum to v0.8.9 (!732)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.4 (!733)
  • (deps) Update rust crate tokio to v1.52.1 (!735)
  • (deps) Update opentalk-controller (!736)
  • (deps) Update rust crate clap to v4.6.1 (!737)
  • (deps) Update rust crate opentalk-service-auth to v0.2.3 (!748)
  • (deps) Update quay.io/buildah/stable docker tag to v1.43.1 (!739)
  • (deps) Update rust crate reqwest to v0.13.3 (!749)
  • (deps) Update rust crate rustls to v0.23.39 (!744)
  • (deps) Update rust crate jsonwebtoken to v10.4.0 (!757)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.6 (!756)
  • (deps) Update rust crate tokio to v1.52.3 (!754)
  • (deps) Update pre-commit hook alessandrojcm/commitlint-pre-commit-hook to v9.25.0 (!753)
  • (deps) Update rust crate rustls to v0.23.40 (!752)
  • (deps) Lock file maintenance (!740)
  • (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.95.0 (!741)
  • (deps) Update rust crate sysinfo to 0.39 (!755)
  • (deps) Lock file maintenance (!762)
  • (deps) Update rust crate itertools to 0.15 (!775)
  • (deps) Lock file maintenance (!782)
  • (deps) Update rust crate opentalk-orchestrator-client to 0.8 (!763)
  • (deps) Update rust crate opentalk-client to v0.8.1 (!784)
  • (deps) Update crate crossbeam-epoch to v0.9.20 (!784)
  • (deps) Document RUSTSEC-2026-019 (!784)

βš™ Miscellaneous

  • Update all dependencies (!751)
  • (lint) Add new match arm for transcription events (!759)

Ci

  • (pre-commit) Switch from taplo to olpat (taplo is unmaintained) (!787)

roomserver v0.1.3

πŸ› Bug fixes

  • Allow concurrent livekit connections (!1284, #321)

roomserver v0.1.1

πŸš€ New features

  • (moderation) Add an issued_by field to ModerationEvent::RoleUpdated (!1259, #312)

πŸ› Bug fixes

  • (livekit-proxy) Accept participant ids with popout stream suffix (!1251)
  • (justfile) Only consider branch local tags when generating changelog (!1266)

πŸ“¦ Dependencies

  • (deps) Update webbrowser to v1.2.4 (!1266)

βš™ Miscellaneous

  • Delete unused file (!1251)
  • (justfile) Create per-crate releases (!1266)
  • Use separate version for binary crate (!1266)

Test

  • (livekit-module) Ensure connection is alive and can coexist (!1251)

roomserver v0.1.0

πŸš€ New features

  • Add guest access to ModeratorJoinInfo (!1140)
  • Change environment config prefix to match other OpenTalk services (!1144, #297)
  • (moderation) Send moderator data to new moderators on ModerationEvent::RoleUpdated (!1157, #298)
  • (meeting-notes) Log errors when report generation fails (!1165)

πŸ› Bug fixes

  • (signaling) Send errors only to the originating connection (!1130)
  • (core) CoreEvent::LeftWaitingRoom only contains a single connection (!1139, #284)
  • Keep signaling websocket open by sending periodic ping frames (!1147)
  • (room) Participants receive the wrong role in JoinSuccess when rejoining after promotion (!1158, #299)
  • (dui) Error due to missing crypto provider (!1150)

⚑ Performance

  • (room) Use read lock in patch_room (!1168)

πŸ”¨ Refactor

  • (signaling) Use is_moderator() function to check moderator rights (!1157)
  • (mock) Move recieve event into a function (!1147)

πŸ“¦ Dependencies

  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.9 (!1127)
  • (deps) Update node.js to v24.17.0 (!1134)
  • (deps) Update pnpm to v11.8.0 (!1133)
  • (deps) Lock file maintenance (!1137, !1156, !1170)
  • (deps) Update pnpm to v11.9.0 (!1142)
  • (deps) Update pre-commit hook alessandrojcm/commitlint-pre-commit-hook to v9.26.0 (!1146)
  • (deps) Update rust crate pdf-extract to 0.12 (!1152)
  • (deps) Update node.js to v24.18.0 (!1145)
  • (deps) Update pre-commit hook davidanson/markdownlint-cli2 to v0.23.0 (!1163)
  • (deps) Update grafana/k6 docker tag to v2.1.0 (!1161)
  • (deps) Update dependency prettier to v3.9.4 (!1159)
  • (deps) Update rust crate itertools to 0.15.0 (!1128)
  • (deps) Update egui (!1150)
  • (deps) Update rust crate tower-http to 0.7.0 (!1126)
  • (deps) Update pnpm to v11.10.0 (!1169)
  • (deps) Document RUSTSEC-2026-0194 and RUSTSEC-2026-0195 (!1170)
  • (deps) Update crate crossbeam-epoch to v0.9.20 (!1171)

Ci

  • Use container build template (!1149)
  • Use rust-lint template (!1149)

Test

  • (moderation) Add (de)serialization tests for moderation state (!1140)
  • Always use test-log with the trace feature (!1165)

smtp-mailer v0.18.0

πŸš€ New features

  • (docs) Add developer documentation for profiling memory usage (!341)
  • Warn about unknown configuration fields (!724)
  • Change the environment prefix from MAILER to OPENTALK_MAIL (!762)

πŸ› Bug fixes

  • Use correct queue name in example config (!724)
  • (ci) Generated docs are not updated (!768)
  • (docs) Remove outdated development section (!768)
  • (rabbitmq) Use durable non-exclusive queue (!778, #184)
  • (justfile) Fetch version correctly when commiting release (!808)
  • (justfile) Only consider branch local tags when generating changelog (!808)

πŸ“š Documentation

  • Update outdated rabbitmq docs (!768)

πŸ“¦ Dependencies

  • (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.94.0 (!707)
  • (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.94.1 (!713)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.1 (!715)
  • (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.94.1 (!714)
  • (deps) Lock file maintenance (!716)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.2 (!718)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.4 (!720)
  • (deps) Lock file maintenance (!717)
  • (deps) Lock file maintenance (!727)
  • (deps) Update opentalk-controller to 0.44.0 (!614)
  • (deps) Update pre-commit hook alessandrojcm/commitlint-pre-commit-hook to v9.25.0 (!728)
  • (deps) Lock file maintenance (!729)
  • (deps) Lock file maintenance (!732)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.5 (!731)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.6 (!733)
  • (deps) Update rust crate fluent-templates to 0.14.0 (!726)
  • (deps) Lock file maintenance (!736)
  • (deps) Lock file maintenance (!739)
  • (deps) Update rust crate log to v0.4.30 (!740)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.7 (!738)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.8 (!741)
  • (deps) Update rust crate opentalk-types-common to v0.44.1 (!742)
  • (deps) Lock file maintenance (!746)
  • (deps) Update rust crate log to v0.4.31 (!747)
  • (deps) Lock file maintenance (!750)
  • (deps) Lock file maintenance (!753)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.19.9 (!754)
  • (deps) Lock file maintenance (!759)
  • (deps) Update pre-commit hook alessandrojcm/commitlint-pre-commit-hook to v9.26.0 (!761)
  • (deps) Lock file maintenance (!767)
  • (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.96.0 (!723)
  • (deps) Update ubuntu docker tag to v26 (!725)
  • (deps) Lock file maintenance (!771)
  • (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.97.0 (!773)
  • (deps) Lock file maintenance (!777)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.20.2 (!774)
  • (deps) Update pre-commit hook davidanson/markdownlint-cli2 to v0.23.1 (!769)
  • (deps) Lock file maintenance (!786)
  • (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.97.1 (!788)
  • (deps) Update rust crate css-inline to 0.21.0 (!755)
  • (deps) Update opentalk-controller to 0.46.0 (!781)
  • (deps) Update pre-commit hook davidanson/markdownlint-cli2 to v0.23.2 (!794)
  • (deps) Lock file maintenance (!793)
  • (deps) Update rust crate itertools to 0.15 (!756)
  • (deps) Update rust crate serial_test to v4 (!792)
  • (deps) Update rust crate tera to v2 (!765)
  • (deps) Lock file maintenance (!798)
  • (deps) Lock file maintenance (!803)

βš™ Miscellaneous

  • Fix clippy lints (!798)

Ci

  • (just) Switch changelog tool to opentalk git-cliff (!700)
  • Use changelog template (!702)
  • (pre-commit) Use same markdownlint from CI in pre-commit (!717)
  • (pre-commit) Switch from taplo to olpat (taplo is unmaintained) (!775)

orchestrator v0.8.1

πŸ› Bug fixes

  • (orchestrator) Use fixed orchestrator-shared version to avoid version conflicts (!175)

πŸ“¦ Dependencies

  • (deps) Lock file maintenance (!161)
  • (deps) Update opentalk (!164)
  • (deps) Update anyhow to fix RUSTSEC-2026-0190 (!175)
  • (deps) Lock file maintanance (!176)
  • (deps) Update dependencies (!176)
  • (deps) Update alpine docker tag to v3.24 (!174)
  • (deps) Update ubuntu docker tag to v26 (!139)
  • (deps) Lock file maintenance (!183)
  • (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.20.2 (!185)
  • (deps) Update opentalk-roomserver crates to version 0.1 (!186)

Ci

  • Build dev images for release branches (!158, #34)
  • Use lint templates (!183)
  • Add pre-commit config (!183)
  • (pre-commit) Remove vacuum (!187)

outlook-add-in v0.4.0

πŸš€ New features

  • Add guest access mode compatibility (!266, #86)
  • (meeting-form) Restructure guest-access & waiting-room controls (!270, #91)
  • Improve visuals and add logout to the error page (!278, #97)

πŸ› Bug fixes

  • (ci) Failing container build (!270)

πŸ“¦ Dependencies

  • (deps) Update dependency office-addin-dev-certs to ^2.0.9 (!269)
  • (deps) Update typescript-eslint monorepo to ^8.61.0 (!244)
  • (deps) Update dependency webpack-dev-server to v5.2.4 (!271)

βš™ Miscellaneous

  • (justfile) Create gitlab release (!276)
  • Address outlook store review feedback (!277)

ot-setup v26.2.0

Changed

  • Update container image versions related to the product version v26.2.0.

opentalk-compose v26.2.0

πŸš€ New features

  • (roomserver) Add roomserver service (!123)
  • (orchestrator) Add opentalk orchestrator service (!123)
  • (roomserver) Derive service state from controller_roomserver_kind (!123)
  • (web-frontend) Align environment variables with frontend documentation (!193)

πŸ› Bug fixes

  • (docs) Fix bad escaping of | in configuration options reference (!190)
  • (docs) Add garage and s3_migrate sections, fix duplicate minio_s3_api_port entry ()
  • (web-frontend) Make video_backgrounds default-friendly (!167)
  • (roomserver) Update default port (!123)
  • (controller) Keep meeting-notes base_url in sync with etherpad (!193)
  • (controller) Enable recording defaults and service URL (!193)
  • (livekit) Use ansible_facts for bind address detection (!193)
  • (keycloak) Enforce audience check for controller introspection (!193)
  • (ci) Skip disabled roomserver compose management (!200)
  • (web-frontend) Add fallbacks for opentalk_web_frontend_backgrounds_dir (!202)
  • (obelisk) Migrate controller config to v0.22.2 url/api_key format (!202)

πŸ“š Documentation

  • Improve install and upgrade guidance ()
  • (Changelog) Update Changelog (!200)

πŸ”¨ Refactor

  • (traefik) Rename csp_allowed_extra_*src vars to traefik prefix (!166)
  • (ansible) Align opentalk_orchestrator role with current patterns (!123)

πŸ“¦ Dependencies

  • (deps) Update OpenTalk outlook add-in version v0.3.6-2 (!190)
  • (deps) Update NDT server version v0.25.3 (!190)
  • (deps) Update dependency community.docker to v5.2.1 (!177)
  • (deps) Update dependency community.crypto to v3.2.1 (!172)
  • (deps) Update dependency ansible.posix to v2.2.2 (!191)
  • (deps) Update dependency ansible-core to v2.21.2 (!187)
  • (deps) Update dependency community.general to v13.2.0 (!185)
  • (deps) Update OpenTalk recorder version v0.17.1 ()
  • (deps) Add OpenTalk orchestrator version v0.8.1 ()
  • (deps) Update traefik version v3.7.10 ()
  • (deps) Update garage version v2.3.0 (!190)
  • (deps) Update livekit-server version v1.13.5 (!200)
  • (deps) Update keycloak version v26.7.2 (!205)
  • (deps) Update postgres version v17.11.0 (!200)
  • (deps) Update rabbitmq version v4.3.4 (!200)
  • (deps) Update mailcrab version v1.9.0 (!200)
  • (deps) Update OpenTalk web frontend version v2.9.2 (!205)
  • (deps) Update OpenTalk controller version v0.34.4 (!205)
  • (deps) Update OpenTalk obelisk version v0.22.2 (!200)
  • (deps) Update OpenTalk roomserver version v0.1.3 (!205)
  • (deps) Update OpenTalk smtp-mailer version v0.18.0 (!200)
  • (deps) Update OpenTalk product version v26.2.0 (!206)

βš™ Miscellaneous

  • (docs) Update CHANGELOG (!190)
  • (docs) Update CHANGELOG.md (!181)
  • (livekit) Support config option bind_addresses ()
  • (docs) Update config referernce ()
  • (controller) Update roomserver config template ()
  • (ansible) Rename roomserver role directory (!123)
  • (ansible) Include roomserver role in opentalk playbook (!123)
  • (ansible) Remove roomserver-db service from container state mgmnt (!123)
  • (packaging) Add roomserver defaults to settings.yml (!123)
  • (ansible) Add roomserver to versions file (!123)
  • (ci) Enable roomserver in integration test (!123)
  • (ci) Auth docker client to registry (!123)
  • (roomserver) Add roomserver default config (!123)
  • (ci) Override web frontend image source in integration test (!123)
  • (frontend) Change image source (!123)
  • (controller) Update livekit api keys for roomserver (!123)
  • (orchestrator) Add opentalk orchestrator to default playbook (!123)
  • (ansible) Change orchestrator task file name (!123)
  • (ansible) Change orchestrator secret defaults (!123)
  • (ci) Disable orchestrator in integration test (!123)
  • (orchestrator) Add orchestrator default config (!123)
  • (orchestrator) Adjust compose config (!123)
  • (spacedeck) Adjust config to support alpine base image (!123)
  • (orchestrator) Absent by default (!123)
  • (orchestrator) Present by default (!123)
  • (roomserver) Switch to sh shell (!123)
  • (web-frontend) Use production image source as default (!123)
  • (controller) Add new option controller_roomserver_kind (!123)
  • (roomserver) Add conference section and update config options (!123)
  • (controller) Add missing settings to controller template (!193)
  • (controller) Align controller configuration with TOML example (!193)
  • (ci) Roomsercer container disabled by default (!200)
  • (obelisk) Remove deprecated Keycloak OIDC client and secret (!202)
  • Update changelog for v26.2.0-beta.4 (!205)

livekit-server v1.13.5

livekit-server v1.13.1


rabbitmq v4.3.4

rabbitmq v4.3.1


redis v8.8.1

redis v8.8.0


ndt-server v0.25.3

ndt-server v0.25.2


garage v2.3.0


Generation of this document was supported by retoki.


  1. no track update on unfocused tabs ('mute' participants) β†©

  2. mobile layout is flawed β†©β†©