Releases: element-hq/element-call
v0.10.0-rc.3
To Device compatibility RC3
Backwards compatible with ratcheting and logging fix.
What's Changed
- Backport v0.10.0: Revert livekit-client to 2.10.0 by @robintown in #3223
- Backport v0.10.0: Fix matrixRTC js-sdk logs in rageshakes by @toger5 in #3227
- Backport v0.10.0: Set ratchetWindowSize > 0, to enable ratchet compatibility. by @toger5 in #3225
Full Changelog: v0.10.0-rc.2...v0.10.0-rc.3
Docker full package
Element Call is available as a Docker image from the GitHub Container Registry.
The image provides a full build of Element Call that can be used both in standalone and as a widget (on a remote URL).
docker pull ghcr.io/element-hq/element-call:v0.10.0-rc.3
Embedded packages
This release includes the following embedded packages that allow Element Call to be used as an embedded widget
within another application.
NPM
npm install @element-hq/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.10.0-rc.3-SNAPSHOT'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.10.0-rc.3")
v0.10.0-rc.2
What's Changed
- Backport: update developer key transport setting description by @toger5 in #3195
- Backport: Bump js-sdk to develop branch (with RoomAndToDeviceTransport) by @toger5 in #3207
- Backport: Improve tagging of Release versions of platform specific embedded packages by @toger5 in #3212
- Backport: Fix to-device encryption info label by @toger5 in #3209
- Backport: bump js sdk to fix logging by @toger5 in #3216
Full Changelog: v0.10.0-rc.1...v0.10.0-rc.2
Docker full package
Element Call is available as a Docker image from the GitHub Container Registry.
The image provides a full build of Element Call that can be used both in standalone and as a widget (on a remote URL).
docker pull ghcr.io/element-hq/element-call:v0.10.0-rc.2
Embedded packages
This release includes the following embedded packages that allow Element Call to be used as an embedded widget
within another application.
NPM
npm install @element-hq/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.10.0-rc.2-SNAPSHOT'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.10.0-rc.2")
v0.10.0-rc.1
To Device compatibility RC1
What's Changed
- remove fallback MatrixRTC backend from netlify PR builds by @fkwp in #3117
- Fix join errors mistakenly showing a generic error screen by @robintown in #3118
- Enable analytics only while authenticated by @robintown in #3053
- Fix compilation error when trying to use SwiftPM embedded package by @hughns in #3124
- Update dependency vite to v6.2.3 [SECURITY] by @renovate in #3125
- Add endpoint routing to README.md by @fkwp in #3130
- Upgrade to Yarn v4 (Berry) by @robintown in #3095
- Transition from consuming js-sdk source to
lib(build output) by @toger5 in #3093 - Show URL params and environment variables in developer tab by @hughns in #3134
- Always run build CI workflow by @hughns in #3139
- Clarify who is responsible for compliance and consent in relation to analytics by @hughns in #3116
- Improve documentation for how to use the embedded package by @hughns in #3146
- Rename EULA to SSLA by @toger5 in #3135
- Fix example JWT service .well-known endpoints in self-hosting.md by @fkwp in #3136
- Expose version string in embedded SwiftPM and AAR by @hughns in #3144
- Use correct rageshake URL when running in embedded package + tests by @hughns in #3132
- Localazy Download by @RiotRobot in #3152
- Update dependency vite to v6.2.4 [SECURITY] by @renovate in #3151
- Test: End to end integrated test for ElementCall in widget mode by @BillCarsonFr in #3123
- Fix lint and playwright errors caused by matrix-js-sdk/src import by @toger5 in #3164
- Widget: Add missing to device permission for encryption keys by @BillCarsonFr in #3163
- Add simple release note automation by @toger5 in #3145
- Pin dependencies by @renovate in #3153
- Add yarn scripts for disabling/enabling
.links.yamlby @toger5 in #3168 - Default vite config to support using local build of crypto wasm by @BillCarsonFr in #3038
- Update dependency vite to v6.2.5 [SECURITY] by @renovate in #3169
- Add yarn and bundled element call renovate group. by @toger5 in #3173
- Update readme by @fkwp in #3165
- Update dependency livekit-client to v2.10.0 by @renovate in #3175
- Update self-hosting.md docs formatting by @HarHarLinks in #3178
- Localazy Download by @RiotRobot in #3180
- Update dependency livekit-client to v2.11.0 by @renovate in #3181
- Update dependency livekit-client to v2.11.1 by @renovate in #3183
- Update self-hosting.md by @fkwp in #3179
- Add option to enable to-device-encryption by @toger5 in #3167
- Update dependency livekit-client to v2.11.2 by @renovate in #3189
- Fix Docker image tag in release notes by @AndrewFerr in #3190
- Add
RoomAndToDeviceKeyTransportby @toger5 in #3185
New Contributors
- @HarHarLinks made their first contribution in #3178
Full Changelog: v0.9.0-rc.1...v0.10.0-rc.1
Docker full package
Element Call is available as a Docker image from the GitHub Container Registry.
The image provides a full build of Element Call that can be used both in standalone and as a widget (on a remote URL).
docker pull ghcr.io/element-hq/element-call:v0.10.0-rc.1
Embedded packages
This release includes the following embedded packages that allow Element Call to be used as an embedded widget
within another application.
NPM
npm install @element-hq/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.10.0-rc.1'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.10.0-rc.1")
v0.9.0
What's Changed
Highlights
- Element Call is now available as two packages: "full" and "embedded"
- Full package is the same as what was previously published: docker image + tarball
- Embedded package is to allow Element Call to be distributed as part of a Matrix Client supporting Web (NPM), Android (AAR) and iOS (SwiftPM) platforms
- Documentation improvements
- New self-hosting guide
- Clarifications around URL parameters
- Improvements to error handling including:
- participant limit imposed by a LiveKit SFU
- failure to get JWT token
- End-to-end integration tests using Playwright
Changes
Documentation
- Separate widget-only URL parameters in the documentation by @hughns in #3088
- Refactor README.md by @fkwp in #3059
- README.md add information about rc_delayed_event_mgmt by @fkwp in #3026
- Update readme with new Element Call screenshot by @fkwp in #3099
- deleted old demo.jpg by @fkwp in #3104
Other
- Expose
setLKLogLevelto window for debugging. by @toger5 in #3064 - Cache calls to removeHiddenChars() to fix performance bottleneck in Safari by @hughns in #3066
- Use fetch() in a way that works for file URLs by @hughns in #3071
- Pin matrix-js-sdk to a specific commit by @robintown in #3080
- Fix typing on config: EULA is optional as it has a default by @hughns in #3074
- Vite embedded build of Element Call by @hughns in #3077
- refactor: Centralize group call errors in custom GroupCallErrorBoundary by @BillCarsonFr in #3058
- Error: use a close button instead of go to home when in widget mode by @BillCarsonFr in #3063
- Fix: js-sdk version that uses expected value for
isJoined(isJoinedwill now be false before we left as expected by EC) by @toger5 in #3092 - First integration tests with playwright by @BillCarsonFr in #3091
- Integration Test: Add test for register, login, logout and guest create and join call by @BillCarsonFr in #3096
- Integration Test: Add test for register, login, logout and guest create and join call by @BillCarsonFr in #3097
- Keep rate limits for dev backend, disable only for playwright tests by @BillCarsonFr in #3098
- Eslint: Ensure playwright files are checked by eslint by @BillCarsonFr in #3101
- Downgrade to livekit-client v2.9.1 by @robintown in #3109
- Show "insufficient capacity" when hitting participant limits by @robintown in #3110
- Run the 'prevent blocked' workflow even if PR has conflicts by @robintown in #3112
- Error management: Handle fail to get JWT token by @BillCarsonFr in #3076
- Move all tests into one workflow, give them clear names by @robintown in #3111
- Publish embedded package for releases of Element Call by @hughns in #3086
- Analytics configuration is the responsibility of the host application when running in widget mode by @hughns in #3089
- Fix join errors mistakenly showing a generic error screen by @robintown in #3119
- Fix compilation error when trying to use SwiftPM embedded package by @hughns in #3127
- Use correct rageshake URL when running in embedded package by @hughns in #3133
Full Changelog: v0.8.0...v0.9.0
No changes since v0.9.0-rc.4: v0.9.0-rc.4...v0.9.0
Docker full package
Element Call is available as a Docker image from the GitHub Container Registry.
The image provides a full build of Element Call that can be used both in standalone and as a widget (on a remote URL).
docker pull ghcr.io/element-hq/element-call:v0.9.0
Embedded packages
This release includes the following embedded packages that allow Element Call to be used as an embedded widget
within another application.
NPM
npm install @element-hq/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.9.0'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.9.0")
v0.9.0-rc.4
What's Changed since rc.3
Full Changelog: v0.9.0-rc.3...v0.9.0-rc.4
Docker full package
Element Call is available as a Docker image from the GitHub Container Registry.
The image provides a full build of Element Call that can be used both in standalone and as a widget (on a remote URL).
docker pull ghcr.io/element-hq/element-call:0.9.0-rc.4
Embedded packages
This release includes the following embedded packages that allow Element Call to be used as an embedded widget
within another application.
NPM
npm install @element-hq/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.9.0-rc.4'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.9.0-rc.4")
v0.9.0-rc.3
What's Changed since rc.2
Full Changelog: v0.9.0-rc.2...v0.9.0-rc.3
Docker full package
Element Call is available as a Docker image from the GitHub Container Registry.
The image provides a full build of Element Call that can be used both in standalone and as a widget (on a remote URL).
docker pull ghcr.io/element-hq/element-call:0.9.0-rc.3
Embedded packages
This release includes the following embedded packages that allow Element Call to be used as an embedded widget
within another application.
NPM
npm install @element-hq/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.9.0-rc.3'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.9.0-rc.3")
v0.9.0-rc.2
What's Changed since rc.1
- Backport: Fix join errors mistakenly showing a generic error screen by @robintown in #3119
Full Changelog: v0.9.0-rc.1...v0.9.0-rc.2
Docker full package
Element Call is available as a Docker image from the GitHub Container Registry.
The image provides a full build of Element Call that can be used both in standalone and as a widget (on a remote URL).
docker pull ghcr.io/element-hq/element-call:0.9.0-rc.2
Embedded packages
This release includes the following embedded packages that allow Element Call to be used as an embedded widget
within another application.
NPM
npm install @element-hq/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.9.0-rc.2'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.9.0-rc.2")
v0.9.0-rc.1
What's Changed
This is the first release candidate of v0.9.0.
Highlights
- Element Call is now available as two packages: "full" and "embedded"
- Full package is the same as what was previously published: docker image + tarball
- Embedded package is to allow Element Call to be distributed as part of a Matrix Client supporting Web (NPM), Android (AAR) and iOS (SwiftPM) platforms
- Documentation improvements
- New self-hosting guide
- Clarifications around URL parameters
- Improvements to error handling including:
- participant limit imposed by a LiveKit SFU
- failure to get JWT token
- End-to-end integration tests using Playwright
Changes
- Refactor README.md by @fkwp in #3059
- Use fetch() in a way that works for file URLs by @hughns in #3071
- Localazy Download by @RiotRobot in #3078
- Fix typing on config: EULA is optional as it has a default by @hughns in #3074
- Vite embedded build of Element Call by @hughns in #3077
- refactor: Centralize group call errors in custom GroupCallErrorBoundary by @BillCarsonFr in #3058
- Separate widget-only URL parameters in the documentation by @hughns in #3088
- First integration tests with playwright by @BillCarsonFr in #3091
- README.md add information about rc_delayed_event_mgmt by @fkwp in #3026
- Integration Test: Add test for register, login, logout and guest create and join call by @BillCarsonFr in #3096
- Integration Test: Add test for register, login, logout and guest create and join call by @BillCarsonFr in #3097
- Keep rate limits for dev backend, disable only for playwright tests by @BillCarsonFr in #3098
- Update readme with new Element Call screenshot by @fkwp in #3099
- Eslint: Ensure playwright files are checked by eslint by @BillCarsonFr in #3101
- deleted old demo.jpg by @fkwp in #3104
- Show "insufficient capacity" when hitting participant limits by @robintown in #3110
- Run the 'prevent blocked' workflow even if PR has conflicts by @robintown in #3112
- Error management: Handle fail to get JWT token by @BillCarsonFr in #3076
- Move all tests into one workflow, give them clear names by @robintown in #3111
- Publish embedded package for releases of Element Call by @hughns in #3086
- Analytics configuration is the responsibility of the host application when running in widget mode by @hughns in #3089
Full Changelog: v0.8.0...v0.9.0-rc.1
Docker full package
Element Call is available as a Docker image from the GitHub Container Registry.
The image provides a full build of Element Call that can be used both in standalone and as a widget (on a remote URL).
docker pull ghcr.io/element-hq/element-call:0.9.0-rc.1
Embedded packages
This release includes the following embedded packages that allow Element Call to be used as an embedded widget
within another application.
NPM
npm install @element-hq/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.9.0-rc.1'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.9.0-rc.1")
v0.8.0
What's Changed
Highlights
This release brings a major architectural shift: call participation and video tiles now rely onΒ MatrixRTC membershipΒ instead of theΒ LiveKit room state. This marks the final step toward enablingΒ to-device media key exchange. To support this change, we introduced a newΒ MembershipManager, ensuring RTC membership is accurately handled across all scenarios.
Additionally this release includes various usability improvements.
Key updates:
- Implement the newΒ MatrixRTCSession MembershipManager
- Base (call participation) video tiles onΒ MatrixRTC membershipΒ rather than LiveKit participants (a prerequisite for to-device E2EE key distribution)
- Improve UX by making on-screen tile selection and arrangement more stable
- Add sound effects for call exits and screen share activation
- Introduce aΒ wave/hello reactionΒ π
- Ensure new devicesΒ don't start unmuted by default
- RememberΒ previous mute statesΒ when devices disconnect and reconnect
- Begin handling errors more gracefully, including:
- SFU capacity limits
- Missing MatrixRTC backend in a Matrix site deployment
- Enhancements in widget mode:
- Adapt toΒ theme changes during a call
- Hide the header
- On Failure: leave session and show relevant error
- Introduce a "close" action when the widget is ready to shut down (allowing error messages to be displayed and benefiting other widgets)
- Notify users when their camera is initializing in theΒ Lobby
- Authenticate media requests when loadingΒ avatars
Changes
- Upgrade js-sdk to develop with MSC4222 state_after support by @hughns in #2841
- Mute state improvements including muting if skipLobby=true in SPA (Same as #2834) by @toger5 in #2846
- Fix wrong hand raise margins in pip tile. by @toger5 in #2840
- Fix Cache-Control header for docker images by @hughns in #2847
- Bump js-sdk (key after leave fix) by @toger5 in #2850
- Use light background by @toger5 in #2851
- Add sound effect for call joined / left by @Half-Shot in #2794
- Show hostname in developer settings by @hughns in #2857
- Add a lower limit to duplicate tiles. by @Half-Shot in #2854
- add information about MSC4222 state_after by @fkwp in #2864
- Rename
en-GBlanguage toenby @hughns in #2866 - Use a consistent background colour for video tiles and avatars by @hughns in #2868
- Make video tiles be based on MatrixRTC member not LiveKit participants by @toger5 in #2701
- Localazy Download by @RiotRobot in #2877
- Use specific Node.js version (22) instead of latest LTS by @hughns in #2879
- Authenticate media requests when loading avatars by @Half-Shot in #2856
- Ensure call sound effects are played over the correct sink by @Half-Shot in #2863
- Configure sentry integration for netlify PR previews by @hughns in #2884
- Update dependency vite to v6 by @renovate in #2853
- Add missing full stops from end of settings descriptions by @hughns in #2883
- Ignore URL params where they are not applicable for the mode (widget vs SPA) by @hughns in #2882
- Check for parentUrl when deciding whether a SPA specific url parameter should be ignored by @hughns in #2881
- Enable @typescript-eslint/consistent-type-imports lint rule by @hughns in #2886
- Simplify settings tabs by @hughns in #2875
- Add some quick-and-dirty debug info for TileStore by @robintown in #2887
- Rename developerSettingsTab to developerMode for consistency by @hughns in #2889
- Add support for playing a sound when the user exits a call. by @Half-Shot in #2860
- Clean up useMuteStates test by @hughns in #2891
- Refactor preferences tab strings for consistency by @hughns in #2888
- Bump matrix-js-sdk by @hughns in #2897
- Determine which tiles are on screen in a more stable manner by @robintown in #2894
- Developer setting to show LiveKit participants that do not have MatrixRTC sessions a.k.a. non-member tiles by @hughns in #2771
- Wait for .well-known/matrix/client to load before determining MatrixRTC foci by @hughns in #2901
- Localazy Download by @RiotRobot in #2898
- Revert "Wait for .well-known/matrix/client to load before determining MatrixRTC foci" by @toger5 in #2902
- Skip some redundant updates to the grid and spotlight by @robintown in #2899
- Support selection of audio output device when using Firefox by @robintown in #2816
- Use finnish notation for observables by @hughns in #2905
- Use afterEach from vitest for consistency by @hughns in #2908
- Use AutoDiscovery.getRawClientConfig() instead of MatrixClient.getClientWellKnown() and wait for result by @hughns in #2906
- Bump matrix-js-sdk for bundle improvements by @hughns in #2911
- Introduce intent URL param and make it change the default lobby behaviour by @hughns in #2828
- Inform user that their camera is starting in Lobby by @hughns in #2869
- Fix loading of matrix-sdk-crypto-wasm when running in local development mode by @hughns in #2915
- Add screen share sound effect. by @Half-Shot in #2917
- Refactor reactions / hand raised to use rxjs and start ordering tiles based on hand raised. by @Half-Shot in #2885
- Update dependency @livekit/components-react to v2.6.10 by @renovate in #2920
- Update LiveKit components by @renovate in #2923
- Add developer mode option to show RTC connection statistics by @hughns in #2904
- Update dependency @vector-im/compound-design-tokens to v3 by @renovate in #2896
- Upgrade to React Router v6 by @sandhose in #2919
- Update dependency i18next to v24 by @renovate in #2822
- Remove unnecessary dependency on @testing-library/react-hooks by @hughns in #2926
- Use documented @sentry/vite-plugin config options by @hughns in #2925
- Update dependency @vector-im/compound-web to v7.6.2 by @renovate in #2932
- Update codecov/codecov-action action to v5 by @renovate in #2933
- Update docker/build-push-action action to v6.11.0 by @renovate in #2936
- Set the document title to the current call name. by @Half-Shot in #2928
- Add wave/hello reaction by @davidegirardi in #2921
- React to theme changes in widget mode by @robintown in #2910
- Update dependency global-jsdom to v26 by @renovate in #2941
- Update dependency jsdom to v26 by @renovate in #2938
- Type fixes for react v19 compatibility by @hughns in #2937
- Update GitHub Actions by @renovate in #2945
- Use correct Sentry entrypoints for react router v7 by @hughns in #2943
- Disambiguate displaynames by @Half-Shot in #2918
- Bump matrix-js-sdk to latest by @hughns in #2946
- Fix displayname calculation around RTL / unhomoglyth. by @Half-Shot in #2953
- Update dependency @sentry/vite-plugin to v3 by @renovate in #2950
- Update vitest mo...
v0.8.0-rc.4
What's Changed since rc.3
- Rename built artifact name on v0.8.0 release branch for compatibility with Netlify PR preview by @hughns in #3108
- Downgrade to livekit client v2.9.1 by @hughns in #3106
Full Changelog: v0.8.0-rc.3...v0.8.0-rc.4