OpenTalk v26.3.0
- Release date: 2026-10-29
- Release series: 26.3
Release notes
Noteworthy Changes
One-Link-Solution (#255)
One link for everyone: all participants now join through the same meeting link. Meetings can always begin without delay, since no one will be held up by using the wrong link. Organizers save coordination effort, as they no longer need to create and share separate guest links - and the single link is shorter and easier to share. Guests keep full access to all the features they had before.
Personal Meeting Rooms (#268)
Organizers can now enable a personal room when planning a meeting and give it a name that serves as an alias for the Meeting ID.
The name changes a meeting link into a fixed address. Instead of a new ID for every occasion, a room can stand for a person or a topic - a one-on-one with a colleague, a weekly team sync, a project room. Everyone involved learns where the meeting happens and returns to the same place every time, without looking up a new invitation. And because the room is reusable, the same link works for every occurrence: ready to bookmark, pin to a chat channel, or add to an email signature.
The feature can be toggled on or off at any time. Switched on, the room is primarily available under the personal room name. Switched off, the room is available under its Meeting ID.
Guests in Enhanced Encryption Rooms (#427)
Guest access and enhanced encryption are now independent settings. Turning on "Enable very high level of protection" no longer disables guest access, so you can invite clients, partners, and external experts to your most sensitive meetings without lowering the protection level.
Improved Screen Share Button (#335)
Ending a screen share now takes a single click. "Share a different screen" has moved into an arrow menu at the bottom of the button, bringing it in line with the microphone and camera buttons. A new, clearer icon also makes the feature easier to find and recognize.
Recurring Outlook Meetings (#279)
The Outlook Add-in now supports recurring meeting series and is fully compatible with OpenTalk recurring meetings. Adding an OpenTalk room to a meeting series gives all occurrences the same meeting link.
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.3 release series is supported.
| Browser | System | Version | Camera | Blurring | Screen Share | Audio | UI/UX |
|---|---|---|---|---|---|---|---|
| Chrome | Desktop | 156 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Chrome | Android | 156 | ✔️ | ✔️ | ❌ | ✔️ | ⚠️2 |
| Edge | Desktop | 156 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Firefox | Desktop | 159 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Firefox | Desktop | 153.6 (ESR) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Safari | MacOS | 27.2 | ✔️ | ❌ | ✔️ | ⚠️1 | ✔️ |
| Safari | iOS | 27.01 | ✔️ | ❌ | ❌ | ❔ | ⚠️2 |
Component versions
| Category | Component | Version |
|---|---|---|
| Frontend | web-frontend | v2.10.2 |
| Services | controller | v0.35.3 |
| Services | obelisk | v0.23.2 |
| Services | recorder | v0.18.2 |
| Services | roomserver | v0.10.3 |
| Services | smtp-mailer | v0.19.1 |
| Services | orchestrator | v0.12.1 |
| Integrations | outlook-add-in | v0.6.0 |
| Deployment | ot-setup | v26.3.0 |
| Deployment | opentalk-compose | v26.3.0 |
| 3rd-Party Components | ot-spacedeck | v3.0.3 |
| 3rd-Party Components | ot-etherpad | v2.0.4 |
| 3rd-Party Components | livekit-server | v1.13.10 |
| 3rd-Party Components | keycloak | v26.8.1-1 |
| 3rd-Party Components | postgres | v18.6.0 |
| 3rd-Party Components | rabbitmq | v4.3.7 |
| 3rd-Party Components | redis | v8.10.2 |
| 3rd-Party Components | minio | RELEASE.2025-10-15T17-29-55Z |
| 3rd-Party Components | traefik-proxy | v3.7.16 |
| 3rd-Party Components | ndt-server | v0.26.1 |
| 3rd-Party Components | garage | v2.5.0 |
web-frontend v2.10.2
🐛 Bug fixes
- (waiting-room) Keep media controls enabled after moving to waiting room (!3736, #3611)
- (whiteboard) Isolate font-subsetting workers in production (!3731, #3552)
- (whiteboard) Set Excalidraw asset path without an inline script (!3731, #3609)
📦 Dependencies
web-frontend v2.10.1
🐛 Bug fixes
- (signaling) Keep the participant limit screen visible and survive unknown messages (!3665, #3551)
- (personal-room) Show only the personal room link when an alias is set (!3692, #3571)
- (room) Return participants to lobby when meeting closes (!3680, #3562)
- (notifications) Clear time-limit warnings when meetings end (!3680, #3583)
- (legal-vote) Cover pseudonymous problem reports (!3722, #3597)
- (voting) Do not notify about own pseudonymous reported issues (!3722, #3597)
- (auth) Clear tokens of expired sessions on startup (!3723, #3598)
- (toolbar) Restore disabled button tooltips (!3725, #3574)
- Calculate role correctly (!3689, #3601)
- Logic of displaying enable/show/hide subtitle buttons (!3724, #3599)
📦 Dependencies
- (deps) Use patched dompurify (!3670, #3670)
- (deps) Update chokidar to 4.0.0 (!3670, #3670)
- (deps) Update
18next-packages (!3692, #3568) - (deps) Update
katexandsource-map-js(!3692, #3563)
⚙ Miscellaneous
web-frontend v2.10.0
🚀 New features
- (lobby) Support websocket based lobby (!3500, #3425)
- Add transcription service live subtitle display (!3442, #3353)
- (handraise) Disable reset handraises buttons (!3529, #3452)
- (lobby) Add password step for password-protected rooms (!3532, #3451)
- Being inside a conference as it is being deleted puts a user in the lobby and shows a dialog (!3515, #3395)
- (ci) Add PR-Agent for automatic AI agent reviews (!3547)
- Change language of a running transcription service (!3533, #3442)
- (pr-agent) Use manual CI trigger and update PR-Agent settings (!3562, #3474)
- (screenshare) Add chevron button to the toolbar button (!3570, #3469)
- (one-link) Remove invite code handling (!3504, #3411)
- (guest-access) Reorder waiting room options and refine labels (!3571, #3482)
- Add support for personal room names (!3572, #3412)
- (dashboard) Persist meetings filter local storage (!3565, #3477)
- (dashboard) Add pagination for past and future events (!3603, #3497)
- Add login button to unauthorized error dialog (!3598)
- Set default theme to system (!3604, #3499)
- (meeting-form) Allow guests in e2ee rooms (!3645, #3507))
- (e2ee) Grey out dial-in, recording, streaming and transcription under e2ee (!3645, #3507
- (breakout-rooms) Enforce assignment of every participant in manual mode (!3645, #3535)
🐛 Bug fixes
- (chat) Display private message notifications (!3499, #3424)
- (room) Return to lobby on graceful connection close after debriefing (!3490, #3420)
- (streaming) Only notify on active/inactive stream status changes (!3489, #3419)
- (styles) Adjust toggle transform when checked (!3501)
- (AudioButton) Restore permission state when moderator re-enables microphones (!3488, #3418)
- Show whitebaord icon if only excalidraw configured (!3494)
- (participant-list) Keep People tab menus open when users join/leave (!3487, #3417)
- (debrief) Suppress redudant waiting room notification (!3503, #3426)
- (talking-stick) Show correct notification after becoming active speaker (!3486, #3416)
- (voting) Disable create button if storage is full (!3498, #3423)
- Change the order of the emoji reactions (!3517, #3439)
- (changelog) Add missing entries to release v2.9.0 (!3520)
- (lobby) Prevent auto-connect if password is required (!3522, #3433)
- (ci) Failing build pipeline due to wrong sentry configuration (!3524)
- (hotkeys) Release push-to-talk on losing focus (!3512, #3434)
- (participant-list-item) Close menu on presenter role update (!3513, #3435)
- (debrief) Keep notifications after ending the conference (!3510, #3432)
- (rename-dialog) Ensure the dialog remains open when users join/leave (!3509, #3431)
- (chat) Change disconnenct message if connection is lost (!3526, #3448)
- (locales) Use term meeting uniformly (!3526)
- (dashboard) Always expand first meetings group by default (!3518, #3443)
- (lobby) Handle Left state in the lobby (!3523, #3445)
- (connection_state) Reset conference join state (!3523, #3445)
- (raise_hands) Handling of
raise_hands_disabled(!3527, #3450) - (styles) Fix overflowing submenu item (!3502)
- (handraise) Handle
raise_hands_disablederror (!3529, #3452) - (moderation) Notify issuer of moderator rights toggling (!3519, #3444)
- (callin) Add missing options for callin users (!3534, #3454)
- (meeting-card) Display accept & decline buttons for pending recurring events (!3516, #3437)
- (handraise) Tooltip translation (!3539, #3465)
- (ci) Syntax error in container steps (!3545)
- (pr-agent) Remove deprecated extended thinking configuration (!3554)
- (speaker-view) Restore speaker tile aspect-ratio on resize (!3556, #3470)
- (speaker-view) Keep tiles fitted within view on resize (!3563, #3475)
- (timer) Handle error cases (!3568, #3480)
- Add accessible labels to poll setting switches (!3567)
- Add accessible label to voting auto close switch (!3569)
- Being in a room that gets deleted now correctly shows a dialog (!3578, #3471)
- Ensure join meeting supports legacy invite code URLs (!3560)
- Show error in join meeting dialog before submitting (!3560)
- Align WaitingRoom forAll value with backend (!3593, #3492)
- Cancel subtitle settings restores the original UI state (!3581, #3488)
- Clipboard and email functions in meeting details dialog now contain the personal room link (!3594, #3493)
- (toolbar) Show tooltip and disabled state on disabled toolbar buttons (!3590, #3490)
- Prevent login redirect loop caused by StrictMode double sign-in (!3600)
- Clear timer state when a join success is received (!3601, #3495)
- Don't create duplicate events in
CreateDirectMeeting(!3576, #3484) - (timer) Clear timer state when switching breakout rooms (!3606, #3500)
- (timer) Read timer ready state from peer data when switching rooms (!3606)
- (timer) Only show participants in the current (breakout-)room (!3606, #3501)
- Join meeting dialog now accepts personal meeting rooms (!3605, #3498)
- Add another check whether the alias contains alphanumeric characters (!3605, #3498)
- Separate pointer position update depending on drawing or not drawing (!3607, #3441)
- Update pointer position of other participants on whiteboard (!3607, #3441)
- Remove missleading tooltip from
MeetingLinkField(!3598) - Error when not authorized (!3598)
- Use a generic error message when meeting details cannot be loaded (!3598)
- (coffee-break) Stop audio tracks on start (!3612, #3509)
- Add accessible label to date time picker popper (!3613)
- Adding translation key in german (!3613)
- Handle join blocked events (!3624, #3517)
- (toolbar) Chevron buttons size in fullscreen (!3631, #3522)
- (screen-share) Adjust tooltip wording (!3634, #3525)
- (popout) Prevent duplicate audio track subscription (!3641, #3531)
- (redux) Sanitize start room action (!3645, #3520)
- (screen-share) Turn off wording (!3645, #3534
- Unchecking personal room in an existing event removes the personal room name (!3645, #3494)
- (whiteboard) Self-host Excalidraw fonts instead of using the CDN (!3645, #3486)
🔨 Refactor
- Replace hardcoded LiveKit permission numbers with TrackSource constants (!3488)
- (common) Move
ConditionalToolTipto common (!3529, #3452) - (common) Disable action buttons (!3529, #3452)
- (ci) Move pr-agent to analyze stage and replace coreebo (!3562)
- (sanitizer) Rename videoTrackPublication to track (!3645)
📦 Dependencies
- (deps) Pnpm update (!3540)
- (deps) Update dependency @reduxjs/toolkit to ^2.12.0 (!3394)
- (deps) Lock file maintenance (!3406)
- (deps) Update dependency @testing-library/user-event to ^14.6.6 (!3580)
- (deps) Update pnpm to v11 (!3398)
- (deps) Update dependency msw to ^2.15.0 (!3551)
- (deps) Update commitlint monorepo to v21 (!3396)
- (deps) Update node.js to v24.20.0 (!3480)
- (deps) Update dependency vitest>tinypool to v2 (!3281)
- (deps) Update @types (!3476)
- (deps) Update dependency type-fest to ^5.9.0 (!3479)
- (deps) Update dependency i18next-http-backend to v4 (!3351)
- (deps) Update dependency vite to v8 (!3207)
- (deps) Update dependency licensee to ^12.0.2 (!3584)
- (deps) Update dependency lint-staged to ^17.5.0 (!3585)
✨ Style
- (more menu) Change icons for moderator rename and chat functions (!3482, #3408)
- Change more menu name editing labels (!3508, #3408)
- Fixed gap between subtitle display and grid view container (!3533, #3442)
- Change icons associated with subtitles (!3581, #3488)
- Remove error icon from personal room name input for consistency (!3645, #3494)
⚙ Miscellaneous
- Renovate corrupts pnpm-workspace (!3587, #3489)
- Fix excalidraw-caused audit fail (!3592, #3491)
- Remove duplicate section from changelog (!3623)
Ci
- Switch from kaniko to buildah (!3538)
Test
- (setup) Provide localStorage/sessionStorage fallback (!3531)
- Use
user.clickinstead offireEvent.submit(!3504)
controller v0.35.3
🐛 Bug fixes
- (controller) Map errors when retrying roomserver token request (!2829)
- (api) Move invite code endpoints outside authz scope (!2829)
- (cache) Correct spelling mistakes (!2833, #1521)
📦 Dependencies
- (deps) Drop
rustls-pemfiledependency (!2833) - (deps) Remove rustls feature from aws-sdk-s3 (!2833)
- (deps) Update rustls-webpki to v0.103.16 (!2833)
- (deps) Update webpki-roots to v1.0.11 (!2833)
- (deps) Update tokio to 1.54.1 (!2833)
- (deps) Update ctutils to 0.4.5 (!2833)
- (deps) Update roomserver to 0.10.3 (!2833)
- (deps) Document RUSTSEC-2026-0387 (!2833)
controller v0.35.2
🐛 Bug fixes
📦 Dependencies
- (deps) Update roomserver to v0.10.2 (!2828)
- (deps) Update rustls to 0.23.46 (!2828)
- (deps) Update yoke-derive to 0.8.4 (!2828)
- (deps) Document vulnerabilities (!2828)
controller v0.35.1
🚀 New features
📦 Dependencies
- (deps) Lock file maintenance (!2822)
controller v0.35.0
🚀 New features
- Close rooms when they are deleted over the REST API (!2639, #1461)
- (db) Drop casbin rule table (!2535, #1363)
- (roomserver) Ignore display name in start room requests (!2618)
- (auth) Wrap public endpoints with authorization middleware (!2627, #1451)
- Prepare
GET /rooms/{room_id}/eventfor invite code removal (!2698, #1467) - (roomserver) Add fields to call-in info (!2727, #1469)
- (logging) Record auth and authZ process (!2731)
- Add optional alias to rooms (!2723, #1457, #1458)
- Add
POST /rooms/name/verifyendpoint (!2723, #1456, #1470) - (livekit-proxy) Keep the
v1path component (!2654) - Remove invite-code api (!2654, #1459)
- One-link authorizer (no invite-code) (!2654)
- Ignore invalid authentication tokens (!2654)
- Add dev command to query invite links (!2654)
- (metrics) Expose metrics for internal roomserver (!2797, #1501)
🐛 Bug fixes
- (jobs) Room deletion is attempted twice when deleting events (!2639)
- (test)
sync_files_and_set_missing_to_zerochecks for the wrong asset count (!2639) - (jobs) Events and rooms of deleted users don't get cleaned up (!2641, #1463)
- (mailer) Mark messages as persistent (!2669)
- (api-authorization) Reject invite code access to event endpoints (!2696)
- (storage) Preserve raw query string in proxy download token to prevent 403 on strict S3 backends (!2695, #1468)
- (api-authorization) Don't panic when failing to parse path pattern (!2724, #1482)
- (authorization) Adjust access to
rooms/{room_id}/invites(!2734, #1485) - (docs) Add missing
/signaling/{token}endpoint (!2713) - (rooms) Make password_required role-aware (!2748)
- (docs) Fix typo (!2723)
- (api-actix-web) Typo in variable name (!2723)
- (rooms) Fix start pattern const (!2751)
- (justfile) Only consider branch local tags when generating changelog (!2752)
- (ci) Rename Ubuntu based image to resolute (!2759)
- (livekit-proxy) Use GET for rtc/validate endpoint (!2771, #1489)
- (docs) Fix typos in keycloak docs (!2773)
- (docs) Document correct room name suffix max length (!2775)
- (authorization) Accept room alias for
/v1/rooms/{room_id_or_alias}/assets/{asset_id}/download(!2783, #1492) - (meeting_details) Patch room with show_meeting_details (!2793, #1495)
⚡ Performance
- (jobs) Avoid redundant event lookups during event deletion (!2641)
- Don't clone room id or alias (!2758)
📚 Documentation
- (test-util) Remove broken link (!2535)
- (auth) Update authorization middleware docs (!2665, #1362)
- (api) Document the correct response body for
GET /events/{event_id}/invites(!2693) - (api) Remove invite code from
GET /rooms/{room_id}(!2696) - Document all roomserver modules in the example config (!2762)
- Document keycloak token introspection requirements (!2773)
- Remove invite code authentication from open-api spec (!2654)
- Enable more signaling modules in example config (!2781)
- Split migration guide into multiple files (!2782)
- Add migration guides for v0.31..v0.34 (!2782)
- Don't explain
force_path_stylewith the same words (!2782) - Update stale metrics docs (!2797)
- Add metrics migration guide for v0.35.0 (!2797)
- Add migration guide for 0.35 (!2809, #1497)
🔨 Refactor
- Use expect instead of allow to prevent unused allows (!2667)
- (docs) Remove unnecessary utoipa schemas (!2713)
- Simplify room checks in
PATCH /events/{event_id}(!2742)
📦 Dependencies
- (deps) Document RUSTSEC-2026-0258 (!2694)
- (deps) Lock file maintenance (!2664, !2682, !2702, !2720, !2740, !2768, !2792)
- (deps) Panic when starting a room due to version mismatch of jsonwebtoken (!2697)
- (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag (!2658)
- (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag (!2778)
- (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.97.1 (!2684)
- (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.97.1 (!2760)
- (deps) Update h2 to 0.4.16 (!2694)
- (deps) Update opentalk (!2654)
- (deps) Update opentalk (!2673)
- (deps) Update opentalk to 0.1.0 (!2648)
- (deps) Update pre-commit hook alessandrojcm/commitlint-pre-commit-hook to v9.26.0 (!2644)
- (deps) Update pre-commit hook davidanson/markdownlint-cli2 to v0.23.0 (!2649)
- (deps) Update pre-commit hook davidanson/markdownlint-cli2 to v0.23.1 (!2676)
- (deps) Update pre-commit hook davidanson/markdownlint-cli2 to v0.23.2 (!2703)
- (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.20.2 (!2660)
- (deps) Update redocly/cli docker tag to v1.34.17 (!2463)
- (deps) Update redocly/cli docker tag to v1.34.19 (!2718)
- (deps) Update rust crate aws-sdk-s3 to v1.138.0 (!2653)
- (deps) Update rust crate aws-sdk-s3 to v1.139.0 (!2690)
- (deps) Update rust crate base64 to 0.23 (!2694)
- (deps) Update rust crate bytes to v1.12.1 (!2651)
- (deps) Update rust crate diesel to v2.3.11 (!2661)
- (deps) Update rust crate etcd-client to 0.19 (!2121)
- (deps) Update rust crate etcd-client to 0.20 (!2777)
- (deps) Update rust crate flume to 0.12 (!2445)
- (deps) Update rust crate glob to v0.3.4 (!2688)
- (deps) Update rust crate itertools to 0.15 (!2648)
- (deps) Update rust crate md5 to v0.8.1 (!2656)
- (deps) Update rust crate mockall to 0.15 (!2645)
- (deps) Update rust crate pdf-extract to 0.12 (!2650)
- (deps) Update rust crate redis to v1.5.0 (!2712)
- (deps) Update rust crate rstest to 0.27.0 (!2791)
- (deps) Update rust crate rustls to v0.23.43 (!2710)
- (deps) Update rust crate rustls-pki-types to v1.15.1 (!2692)
- (deps) Update rust crate serial_test to v4 (!2701)
- (deps) Update rust crate snafu to v0.9.2 (!2689)
- (deps) Update rust crate sysinfo to v0.39.6 (!2657)
- (deps) Update rust crate tabled to 0.22 (!2788)
- (deps) Update rust crate tokio-stream to v0.1.19 (!2691)
- (deps) Update rust crate tokio-util to v0.7.19 (!2687)
- (deps) Update rust crate toml to v1.1.4 (!2705)
- (deps) Update rust crate yaml-rust2 to 0.12.0 (!2757)
- (deps) Update static postgres lib to v17.9 (!2619)
- (deps) Update stoplight/spectral docker tag to v6.16 (!2674)
- (deps) Use vendored swagger ui (!2759)
⚙ Miscellaneous
- Remove linting denies (!2667)
- Minor doc comment fixes (!2667)
- (settings) Fix
dead_codewarning when compiling without tests (!2744) - (ci) Use debian trixie for building ubuntu based image (!2759)
- Remove dead code (!2761)
- Remove unused invite-code errors (!2654)
- Remove invite-code parsing from auth middleware (!2654)
- Remove unused invite code inventory functions (!2654)
- Responde with 401 if accessing unauthenticated (!2654)
- Remove legacy and unsupported
stunsection from example (!2782)
Ci
- (pre-commit) Switch from taplo to olpat (taplo is unmaintained) (!2655)
- Use container scanning template (!2634)
- Remove unused redis container (!2744)
- Remove unnecessary commands from test script (!2744)
Test
- (proxy-download) Verify that the query is forwarded accurately (!2695)
- Migrate database tests to use testcontainers (!2744)
- Migrate tests using S3 to testcontainers (!2744)
- Reduce asset count of
sync_files_and_delete_missingto 99 (!2744)
obelisk v0.23.2
📦 Dependencies
- (deps) Update tokio to 1.54.1 (!640)
Security
- Update base images to mitigate compromised eMudhra intermediate certificates
obelisk v0.23.1
🐛 Bug fixes
- Run with at least 8 worker threads to avoid stalling issue (!632)
- Select correct H.264 payload format based on packetization-mode (!635)
- (obelisk) Fix stuttering audio for SIP callers (!637, #328)
📦 Dependencies
- (deps) Lock file maintenance (!636)
obelisk v0.23.0
🚀 New features
🐛 Bug fixes
- Rejoining from the waiting room does not work (!584, #315)
- Update g722 codec to fix crash when processing odd amount of samples (!605)
- Enable tls support for tungstenite (!611)
- Exit call after livekit disconnect grace timeout (!614)
- Do not unregister OPTIONs dialog usage early (!614)
- Update media direction on SDP offer session update (!614)
- Avoid possible deadlock in audio mixer sink (!614)
- Don't skip livekit room close when failing to terminate sip connection (!614)
- (ci) Set CXX to clang 21 enabling livekit to build (!618)
📚 Documentation
📦 Dependencies
- (deps) Bump dependencies (!602)
- (deps) Lock file maintenance (!544, !583, !591, !601, !607, !613)
- (deps) Update opentalk (!512, !577, !609, !620)
⚙ Miscellaneous
Test
- (rtp) Add srtp cipher round trip tests (!621)
recorder v0.18.2
Security
- Update base images to mitigate compromised eMudhra intermediate certificates
📦 Dependencies
- (deps) Update rustls-webpki to 0.103.16 (!890)
- (deps) Update webpki-roots to 1.0.11 (!890)
- (deps) Update tokio to 1.54.1 (!890)
recorder v0.18.1
🐛 Bug fixes
- (environment) Fix parsing and deprecate inconsistent double underscore prefix (!881, #271)
- Deadlock and hangs (!884, #276, #277)
📚 Documentation
- Minor fixes (!874)
📦 Dependencies
- (deps) Update rustls to 0.23.46 (!884)
- (deps) Document RUSTSEC-2026-0367, RUSTSEC-2026-0368 & RUSTSEC-2026-0369 (!884)
recorder v0.18.0
🚀 New features
- Implement lobby join flow (!796, #257)
- (orchestrator) Implement the resource collision callback (!843)
🐛 Bug fixes
- (recorder) Properly stop streams when shutting down recording session (!795)
- (recorder) Invert test if stream is running in stop_stream (!795)
- Recorder creates empty files when receiving two start commands in a row (!819, #262)
- (ci) Fix package installation in container build and do not fail silently (!846)
- (signaling) Exit on roomserver signaling disconnect (!850)
- (signaling) Stop recorder on MovedToWaitingRoom (!850)
- Update documentation (!849)
- Update and explicity close compositor (!856)
- Keep tasks lock while spawning session (!860)
- (signaling) Exit recording session on websocket signaling error (!863)
- (docker) Add clang and CXX variable to dockerfile (!865)
📚 Documentation
🔨 Refactor
- Use dedicated session handle for recording sessions (!843)
📦 Dependencies
- (deps) Lock file maintenance (!789, !820, !824, !831, !833, !837)
- (deps) Lock file maintenance and opentalk-compositor v0.19.0 (!844)
- (deps) Update alpine docker tag to v3.24 (!833)
- (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust (!770, !833, !838)
- (deps) Update gstreamer base image to 1.26 (based on ubuntu 26.04) (!847)
- (deps) Update opentalk (!803, !821, !827, !828, !834, !842, !843)
- (deps) Update opentalk-controller (!794)
- (deps) Update opentalk-signaling to 0.16 (!870)
- (deps) Update pre-commit hook alessandrojcm/commitlint-pre-commit-hook to v9.26.0 (!833)
- (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.20.2 (!833)
- (deps) Update pre-commit hook markdownlint/markdownlint to v0.18.1 (!833)
- (deps) Update registry.gitlab.com/pipeline-components/markdownlint docker tag to v0.14.15 (!766)
- (deps) Update rust crate spin (!794)
- (deps) Update rust crate tokio-tungstenite to 0.30 (!833)
✨ Style
- Cleanup whitespaces (!794)
⚙ Miscellaneous
- Remove package renames (!792)
- Ignore unmaintained warning (!794)
- (just) Add
use-branch-tagsfor changelog building (!870)
Ci
- (renovate) Update opentalk group (!794)
- (security) Update all packages in the container on build (!846)
- Allow admonitions in markdown (!845)
roomserver v0.10.3
🐛 Bug fixes
📚 Documentation
- Fix issue link in changelog (pointed to monorepo) (!1346)
Security
- Update base images to mitigate compromised eMudhra intermediate certificates
📦 Dependencies
- (deps) Update tokio to 1.54.1 (!1346)
roomserver v0.10.2
🐛 Bug fixes
- Ensure all events are send even with invalid participants (!1322, #335)
- Don't send events to disconnected participants (!1322)
- (roomserver) Send join_blocked within the signaling event envelope (!1331, #311)
- (recording) Disable recording module when e2ee is enabled (!1333, #345)
- (livekit) Include livekit service_url for service participants (!1336)
- (excalidraw) Do not send participants their own (volatile) broadcasts (!1337, #348)
- (roomserver) Close empty rooms when the last lobby connection leaves (!1340, #349)
- (room) Do not hold the room open for service users (!1340, #349)
- (room) Conference role is not considered when determining if a user can skip the waiting room (!1340, #350)
- (room) Sending a participant to the waiting room does not revoke their moderator rights (!1340, #355)
- (moderation) Lobby and conference role drift when role is changed in the conference (!1340)
- (room) Participants promoted to moderator are rejected when entering the conference (!1340, #356)
- (room) Start the time limit countdown on the first join (!1341, #362)
- Ensure each crate compiles individually (!1341)
🔨 Refactor
- Broadcast moderation role changes (!1340)
📦 Dependencies
- (deps) Lock file maintenance (!1341)
⚙ Miscellaneous
- Reduce log level to warn for unknown participants (!1322)
Test
- (room) Fix slow idle timeout tests (!1341)
roomserver v0.10.1
🐛 Bug fixes
- Remove test to break cyclic dependency (!1316)
roomserver v0.10.0
🚀 New features
- Include example config in generated signaling module docs (!1274)
🐛 Bug fixes
- (debriefing) Moderators keep their roles on kick (!1295, #326)
- (timer) Include ready state when switching breakout rooms (!1298, #327)
- (meeting_details) Hide meeting details from users (!1301, #329)
- (meeting_details) Patch show_meeting_details (!1301, #329)
- (livekit-proxy) Forward websocket pings (!1306)
📚 Documentation
- Update shared folder module description to include OpenCloud (!1274)
- Add breakout room and congested connections metrics docs (!1304, #333)
📦 Dependencies
- (deps) Update pnpm to v11.24.0 (!1281)
- (deps) Update rust to 1.98 (!1282)
- (deps) Lock file maintenance (!1282)
- (deps) Update rust crate yaml-rust2 to 0.12 (!1269)
- (deps) Update egui to verion 0.36.1 (!1246)
- (deps) Lock file maintenance (!1302)
- (deps) Update livekit (!1308)
- (deps) Update rust crate dirs to v7 (!1300)
Test
- (livekit-proxy) Ensure user is disconnected when moved to waiting room (!1297)
roomserver v0.9.0
🚀 New features
- (moderation) Add an
issued_byfield toModerationEvent::RoleUpdated(!1254, #311) - (logging) Add
RoomIdto spans inParticipantConnectionTask(!1275) - (logging) Remove redundant participant ids (!1275)
- (room) Include
RoomAliasinJoinSuccess(!1287, #325) - Remove the invite code (!1292, #300)
🐛 Bug fixes
- (justfile) Only consider branch local tags when generating changelog (!1265)
- (justfile) Use correct version for create-release (!1267)
- Leaked waiting room participant when congested (!1271, #314)
- (chat) Correctly log token bucket size (!1276)
- (livekit-proxy) Use GET for rtc/validate endpoint (!1277, #317)
- Allow concurrent livekit connections (!1285, #320)
- (orchestrator) Handle resource collision response from orchestrator (!1292)
🔨 Refactor
- Remove unused
add_conference_connectionmethod (!1275)
📦 Dependencies
- (deps) Update pnpm to v11.21.0 (!1257)
- (deps) Lock file maintenance (!1258)
- (deps) Update grafana/k6 docker tag to v2.2.0 (!1260)
- (deps) Update opentalk (!1264)
- (deps) Update tungstenite and tokio-tungstenite to v0.30.0 (!1264)
- (deps) Update rust crate testcontainers to 0.28.0 (!1249)
- (deps) Update pnpm to v11.22.0 (!1268)
- (deps) Update h2 to 0.4.16 (!1270)
- (deps) Use vendored swagger ui (!1270)
- (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.98.0 (!1288)
- (deps) Update node.js to v24.20.0 (!1289)
- (deps) Update opentalk (!1292)
- (deps) Update chacha20 (!1292)
Ci
- (justfile) Use unified versioning (!1292)
Test
- (moderation) Rename misleading test (!1254)
smtp-mailer v0.19.1
🐛 Bug fixes
- Add timezone data to from scratch image (!840, #198)
- (smtp-mailer) Log error on RabbitMQ delivery error (!840, #199)
📦 Dependencies
- (deps) Lock file maintenance (!840)
Security
- Update base images to mitigate compromised eMudhra intermediate certificates
smtp-mailer v0.19.0
🚀 New features
- Render room alias instead of ID when set (!805, #188)
- Replace invite link with join link, remove
invite_code(!772, #185)
🐛 Bug fixes
- (justfile) Fetch version correctly when commiting release (!807)
- (justfile) Only consider branch local tags when generating changelog (!807)
- Log phone number parsing failures with debug level and remove leading whitespace (!820, #189)
📚 Documentation
- Migration guide 0.17 -> 0.18 (!827)
- Add migration 0.18 -> 0.19 (!827)
- Fix changelog for 0.17.0 and 0.18.0 (!827)
🔨 Refactor
- Simplify
format_telephone_number_filtererror handling (!820)
📦 Dependencies
- (deps) Lock file maintenance (!811, !819, !823)
- (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust (!816, !817)
- (deps) Update rust crate rstest to 0.27.0 (!822)
- (deps) Update rust crate tera-contrib to 0.3.0 (!814)
orchestrator v0.12.1
Security
- Update base images to mitigate compromised eMudhra intermediate certificates
📦 Dependencies
- (deps) Update rustls to v0.23.46 (!273)
- (deps) Update rustls-webpki to v0.103.16 (!273)
- (deps) Update tokio to 1.54.1 (!273)
orchestrator v0.12.0
🐛 Bug fixes
- (redis) Lower the keep alive interval to two seconds (!252, #49)
- (redis) Handle OrchestratorServicesKey in remove_instance script (!252, #50)
- Preserve path in public_url when joining 'roomserver/' (!253)
- (docs) Add missing documentation in example.toml (!253)
- (recorder) Handle the 204 created response on init call (!259)
🔨 Refactor
- (livekit-proxy) Add more trace/debug logging (!248)
Ci
- Remove unused code ()
orchestrator v0.9.0
📦 Dependencies
- (deps) Update rust crate rustls to v0.23.42 (!189)
- (deps) Update opentalk (!177)
- (deps) Update rust crate spin (!177)
⚙ Miscellaneous
- (roomserver) Update roomserver crate to 0.2.0 (!179)
outlook-add-in v0.6.0
🚀 New features
📚 Documentation
📦 Dependencies
- (deps) Update i18next-http-backend to 4.0.6 (!309)
outlook-add-in v0.5.0
🚀 New features
- (one-link) Remove invite code handling (!282, #95)
- Improve error handling when fetching user profile fails (!285)
- Enable creation of recurring meetings (!281, #100)
- Edit and delete single occurrences of recurring meetings (!281, #100)
- (recurrence) Map Windows time zone to IANA (!281, #100)
🐛 Bug fixes
- (recurrence) Resolve occurrence instance id via controller (!281)
- Preserve stored schedule (!281)
- (recurrence) Block save and surface error on recurrence conversion failure (!281)
- (recurrence) Label occurrence exceptions with the recurrence time zone (!281)
- Cover DST cover gap (!281)
🔨 Refactor
- Remove obsolete
UpdateRoomPayloadinterface (!287)
📦 Dependencies
- (deps) Update dependency valibot to ^1.4.2 (!265)
- (deps) Update dependency webpack to ^5.110.3 (!251)
- (deps) Update dev dependencies (!288)
⚙ Miscellaneous
- (justfile) Use opentalk-git-cliff for update-changelog (!290)
Ci
- Pin pnpm version (!283)
Test
- Init setup (!280)
ot-setup v26.3.0
Changed
- Update container image versions related to the product version v26.3.0.
opentalk-compose v26.3.0
🐛 Bug fixes
- (ci) Deploy testing hosts from tag pipeline packages (!257)
📦 Dependencies
- (deps) Update OpenTalk product version v26.3.0 (!260)
postgres v18.6.0
ndt-server v0.26.1
garage v2.5.0
garage v2.4.1
Generation of this document was supported by retoki.