github element-hq/element-call v0.8.0-rc.1

pre-release2 days ago

What's Changed

The first release candidate for v0.8.0.

Highlights

This release contains a fundamental change: video tiles are now based on matrix and not based on LiveKit anymore.
This is the last underlying piece missing to transition to to-device key exchange. This project resulted in building a new MembershipManager since the RTC membership now plays a much more central role and we need it to be correct in all scenarios.

  • Determine which tiles are on screen in a more stable manner
  • Make video tiles be based on MatrixRTC member not LiveKit participants
  • Add sound effect when the user exits a call and when a screen share is started
  • Authenticate media requests when loading avatars
  • Add wave/hello reaction
  • React to theme changes in widget mode
  • Prevent new devices from automatically starting unmuted
  • Remember previous mute states when devices disappear and reappear
  • Error screens
  • Hide the header in widget mode
  • Leave session when error occurs and show error screens in widget mode
  • Introduce a 'close' action when the widget is ready to close (This allows an error to be shown in the widget mode. Also useful for other widgets.)
  • Inform user that their camera is starting int the Lobby
  • Use the New MatrixRTCSession MembershipManager

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-GB language to en by @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 monorepo to v3 (major) by @renovate in #2954
  • Remember previous mute states when devices disappear and reappear by @robintown in #2957
  • Make error screens more visually consistent by @robintown in #2951
  • Prevent new devices from automatically starting unmuted in call by @robintown in #2959
  • Update dependency vite to v6.0.9 [SECURITY] by @renovate in #2964
  • Fix calculation of local membership identifier by @Half-Shot in #2966
  • Update dependency @stylistic/eslint-plugin to v3 by @renovate in #2968
  • Automatically deploy livekit branch to call.element.dev via workflow dispatch by @hughns in #2974
  • Do run build workflow/action in CI when GHA workflows change by @hughns in #2976
  • Adjust renovate bot schedule and enable vulnerability updates by @hughns in #2977
  • Fix renovate schedule settings by @hughns in #2979
  • Fix screenshare displayname displaying as [👻] by @Half-Shot in #2981
  • Bump matrix-js-sdk to v36.1.0 by @toger5 in #2967
  • Resolve version clash in matrix-widget-api dependency by @toger5 in #2988
  • dual license AGPL + Commercial by @ara4n in #2984
  • Update dependency vitest to v3.0.5 [SECURITY] by @renovate in #2986
  • Update LiveKit components by @renovate in #2962
  • Use --frozen-lockfile when install deps in CI by @hughns in #2992
  • Cleanup GitHub Actions by @hughns in #2983
  • Don't produce compressed assets at build time and instead do it as part of the nginx build by @hughns in #2995
  • Explicitly build and publish docker for develop/livekit branch by @hughns in #2996
  • Show current SFU and Server Info in developer tab by @hughns in #3000
  • Copyright header should say dual license not just AGPL by @hughns in #3013
  • Send a 'close' action when the widget is ready to close by @robintown in #3011
  • Actually hide the header on error pages by @robintown in #3019
  • Clarify what useLatest is for by @robintown in #3020
  • Leave session when error occurs and show error screens in widget mode by @robintown in #3021
  • Show an error screen when the SFU is at capacity by @robintown in #3022
  • Update config.sample.json by @escix in #3001
  • Update readme to reflect latest config.json and matrix-js-sdk dependency by @hughns in #3028
  • Update dependency livekit-client to v2.9.5 by @renovate in #3029
  • Error Handling: gracefully handle missing livekit service url in config by @BillCarsonFr in #3027
  • Localazy Download by @RiotRobot in #3030
  • Update GitHub Actions by @renovate in #3034
  • Fix: i18n not properly configured in vitest by @BillCarsonFr in #3037
  • Added OpenGraph and Twitter meta tags for better link previews by @Harshal-Taori-11 in #3006
  • Change LK log level to warn by @toger5 in #3049
  • Prevent PRs with the X-Blocked label from being merged by @robintown in #3041
  • Send a 'join' action when entering the call by @robintown in #3055
  • Use the configured brand name in OpenGraph tags by @robintown in #3054
  • Respect the returnToLobby flag by @robintown in #3051
  • Reduce redundant calculations of display name map by @toger5 in #3062
  • Use the New MatrixRTCSession MembershipManager by @toger5 in #3015

New Contributors

Full Changelog: v0.7.2...v0.8.0-rc.1

Don't miss a new element-call release

NewReleases is sending notifications on new releases.