Releases: element-hq/element-call
v0.7.1
What's Changed
This release is a small release. Its main purpose is to add: Don't trigger keyboard shortcuts if modifiers are held.
- Dependency Updates
- Remove .well-known files from build process by @hughns in #2830
- Don't trigger keyboard shortcuts if modifiers are held by @robintown in #2831
- Fix a singular string using the plural form by @robintown in #2833
- Refactor URL parameters documentation into a table by @hughns in #2827
- The preload URL param shouldn't be used in SPA mode, so ignore it if not in widget by @hughns in #2832
- Refactor the speaker detection logic into observeSpeaker and add tests by @hughns in #2814
- Use hot marbles for speaker tests by @hughns in #2815
- Add explicit code split on matrix-sdk-crypto-wasm to allow caching between deploys by @hughns in #2823
- Some simple initial tests for MediaView by @hughns in #2813
Full Changelog: v0.7.0...v0.7.1
v0.7.0
What's Changed
Version 0.7.0 is one of the biggest Element Call releases we have done after switching to LiveKit.
The recent work has been focused on making Element Call more reliable. We took our time to look into all the tricky issues that can occur in a distributed context and made Element Call a lot more stable and resilient! But looking through the changes a very large amount of other improvements have also been developed!
This release is for everyone who wants a more stable and reliable matrix call experience and for everyone hungry for new features.
Here is the (already filtered) list of PR's which make element call better than ever:
Reactions and Raise Hands:
- Hand raise feature by @mgcm in #2542
- Support for generic reactions by @Half-Shot in #2708
- Sound effect volume adjustment & tooltip by @Half-Shot in #2762
- Decrypt potential reaction events before checking their type by @robintown in #2761
- Add keyboard shortcuts for raised hand / reactions by @Half-Shot in #2784
- Update reactions to new design by @Half-Shot in #2751
- Make reactions background use the frosted glass look by @toger5 in #2792
- Add feature to release hand raised when the tile indicator is clicked. by @Half-Shot in #2721
- Decrypt reaction events by @robintown in #2747
- Add sound effect volume slider by @Half-Shot in #2732
- Small improvements for reaction rendering by @Half-Shot in #2749
Testing:
- Expose TestScheduler as global by @hughns in #2796
- Make it clearer what are inputs and what are expected outputs in test cases by @hughns in #2808
- Use hot test input marbles instead of cold by @hughns in #2810
- Disambiguate between types of "member" by @hughns in #2807
- Small improvements to settings tab by @Half-Shot in #2789
- Replace device dropdowns with radio buttons by @robintown in #2803
- Don't fall back as eagerly to unselected devices by @robintown in #2802
- Add tests for Modal by @Half-Shot in #2731
Media Devices:
- Add a button to switch the camera on mobile by @robintown in #2694
- Remove duplicate media devices from the list by @robintown in #2691
- Add config options for starting with audio and video enabled by @robintown in #2687
- Don't mirror rear-facing cameras in the lobby by @robintown in #2711
Load optimizations:
- Use optimized font from fontsource by @sandhose in #2775
- Lazy-load pako when submitting rageshake by @sandhose in #2782
- Load the Intl.Segmenter and Intl.DurationFormat polyfills only if needed by @sandhose in #2778
- Handle locales as Vite assets by @sandhose in #2776
- Precompress assets and set the right cache headers by @sandhose in #2786
- Send 'Vary: Content-Encoding' header from nginx by @sandhose in #2787
- Pre-fetch the config.json to improve startup time by @sandhose in #2790
- Sync the Vaul version with the one used by Compound by @sandhose in #2783
- Lazy load matrix-js-sdk when running as SPA by @hughns in #2785
Other improvements:
- Make it possible to use the JWT service with a local homeserver by @robintown in #2648
- Set LiveKit keyring size to 256 by @hughns in #2660
- Make the volume slider less silly by @robintown in #2681
- Don't cause the local tile to disappear when joining by @robintown in #2686
- Add a config option to disable the app prompt by @robintown in #2709
- Hide the 'profile' menu option in widget mode by @robintown in #2692
- Refactor to make encryption scheme available in view models by @hughns in #2702
- Show speaking indicators in spotlight during screen sharing by @robintown in #2690
- default to flat structre of m.call.member evenst (one event per sessi⦠by @fkwp in #2716
- Keep tiles in a stable order by @robintown in #2670
- Don't hide video on encryption status error by @hughns in #2726
- Fix lobby disappearing when using a lower 550 width window on Firefox. by @toger5 in #2730
- Make the footer display more nicely on narrow screens by @robintown in #2738
- Improve interactions to hide/show the footer by @robintown in #2737
- Make one-on-one layout less prone to crashing by @robintown in #2752
- Fix footer not adapting to narrow windows by @robintown in #2754
- Add matrix_rtc_session config options + bump js-sdk by @hughns in #2756
- Skip lobby when coming from waitForInvite state. by @toger5 in #2753
- Show a different icon for participants that you've muted by @robintown in #2772
New Contributors
- @a-mnich made their first contribution in #2653
- @mgcm made their first contribution in #2542
- @sandhose made their first contribution in #2774
Full Changelog: v0.6.6...v0.7.0
v0.6.6
What's Changed
- Make the links on the log in page visually consistent by @robintown in #2643
- Make the cookie policy link show up again by @robintown in #2644
Full Changelog: v0.6.5...v0.6.6
v0.6.5
What's Changed
- Fkwp/change license by @fkwp in #2612
- Update all non-major dependencies by @renovate in #2615
- Include the hostname of where EC is running in rageshakes by @hughns in #2616
- Enable lint rules for Promise handling to discourage misuse of them. by @toger5 in #2607
- Update dependency @vector-im/compound-web to v6.1.2 by @renovate in #2617
- Rageshake logging improvements by @hughns in #2622
- Diagnose the missing room members situation by @robintown in #2620
- Update the copyright header template by @robintown in #2619
- Give user feedback if the rageshake submission failed by @hughns in #2621
- Replace typography components with Compound components by @robintown in #2624
- Update actions/upload-artifact digest to 5076954 by @renovate in #2626
- Update peter-evans/create-pull-request action to v7 by @renovate in #2628
- Update LiveKit components by @renovate in #2627
- Add button to remove call from recents by @Johennes in #2618
- Update dependency @vector-im/compound-web to v6.2.0 by @renovate in #2633
- Update dependency vite to v5.4.6 [SECURITY] by @renovate in #2636
- Retry a join on invite if the response was M_FORBIDDEN by @Half-Shot in #2637
- Bump js-sdk by @hughns in #2638
- Update dependency livekit-client to v2.5.2 by @renovate in #2642
- Update LiveKit components by @renovate in #2641
- Test CallViewModel by @robintown in #2629
- Test a few React components by @robintown in #2614
New Contributors
- @Half-Shot made their first contribution in #2637
Full Changelog: v0.6.4...v0.6.5
v0.6.4
Highlights
This release fixes rageshake submission, which had been broken since v0.6.1.
What's Changed
- Update dependency livekit-client to v2.5.1 by @renovate in #2606
- Update dependency matrix-widget-api to v1.9.0 by @renovate in #2601
- Remove a test debug log by @robintown in #2597
- Test MediaViewModel by @robintown in #2598
- Update typescript-eslint monorepo to v8 (major) by @renovate in #2523
- Remove ResizeObserver polyfill by @robintown in #2473
- Localazy Download by @RiotRobot in #2439
- Make the test coverage target non-blocking by @robintown in #2609
- Fix rageshakes by @robintown in #2608
- Update matrix-js-sdk by @robintown in #2610
Full Changelog: v0.6.2.0...v0.6.4
v0.6.3
Highlights
This release is a follow up to the recent Vodozemac update. The rust crypto does things differently and a couple of edge cases surfaced since the release of 0.6.1 and now got fixed.
We adapted more Compound components which is a very welcome visible change and gives all menus and buttons a new and nicer look.
Less visible changes are adjustments that we made for EX PictureInPicture. This is quiet an exciting project and the EX repositories and releases are the better place to look for the upcoming call PictureInPicture in the latest element apps.
Last but not least a very welcome contribution by @Johennes added the feature of displaying a QR code in the call share dialog!
What's Changed
- Update dependency @vector-im/compound-web to v6.1.0 by @renovate in #2577
- Update all non-major dependencies by @renovate in #2581
- Update dependency jsdom to v25 by @renovate in #2580
- Add simple global controls to put the call in picture-in-picture mode by @robintown in #2573
- Clean up our tests in preparation for the testing sprint by @robintown in #2466
- Link "Create an account" button to registration page by @Johennes in #2583
- set codecov token from secrets by @fkwp in #2585
- Perform dead code analysis with Knip by @robintown in #2575
- Replace remaining React ARIA components with Compound components by @robintown in #2576
- Fix rust crypto: Don't use legacy
cryptoStore
anymore. by @toger5 in #2587 - Remove shadow for layout switcher. by @toger5 in #2588
- Make js-sdk imports consistent by @richvdh in #2590
- Fix for missing client store (caused by: #2587) by @toger5 in #2591
- Make one more js-sdk import consistent by @AndrewFerr in #2595
- Add Codecov svg to README.md by @toger5 in #2589
- Add missing productName string by @toger5 in #2596
- Depend on a tagged js-sdk release by @AndrewFerr in #2593
- Upgrade Compound Web by @robintown in #2594
- Add back keyboard toast tests by @toger5 in #2582
- Update actions/upload-artifact action to v4.4.0 by @renovate in #2599
- Fix (rust crypto): Adjust login procedures to account for rust crypto behaviour. by @toger5 in #2603
- Update all non-major dependencies by @renovate in #2600
- Display QR code when sharing invite link by @Johennes in #2602
New Contributors
Full Changelog: v0.6.1...v0.6.3
v0.6.1
Highlights
A couple of visual issues with the call interface have been fixed, and the application no longer depends on the deprecated libolm crypto library. It has been replaced with Vodozemac (though the application also doesn't have any direct use for it yet; watch this space!)
What's Changed
- Update all non-major dependencies by @renovate in #2554
- Clarify web server compatibility by @pixlwave in #2555
- Update GitHub Actions by @renovate in #2557
- Update docker/build-push-action action to v6.7.0 by @renovate in #2565
- Update dependency livekit-client to v2.5.0 by @renovate in #2564
- Bump js-sdk for sender key reliability improvements by @hughns in #2567
- Show user's Matrix ID and device ID in developer settings tab by @hughns in #2559
- Fix long call names overflowing the interface by @robintown in #2569
- Update all non-major dependencies by @renovate in #2570
- Use Rust crypto implementation by @hughns in #2571
- Fix spotlight tile regressions by @robintown in #2578
New Contributors
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Highlights
With this release, we're shipping a big round of changes to how tiles in the call interface are laid out. The theme here is to get the basics right, and we hope it shows! Notably:
- Tiles are now always sorted based on their importance; presenters and speakers will naturally rise to the top. This replaces the ability to rearrange tiles via drag-and-drop.
- In the spirit of getting the basics right, we've also removed the ability to expand tiles (for now?). We hope that the spotlight mode is able to fill this gap, now that it has fewer visual glitches and distracting animations.
- We've heard loud and clear that the call interface could do with less negative space. Between the new layout algorithms and reduced margins, you should see some improvements here.
- Lastly, the layouts on mobile devices have been redesigned from first principles to make better use of the limited screen space, for both small and large calls.
As always, we welcome feedback, and look forward to the incremental improvements we can now make more easily with this stronger foundation.
What's Changed
- Unified grid layout (#2325)
- Refactor settings to use observables (#2368)
- Add a developer option to duplicate tiles (#2369)
- Add toggle to always show yourself (#2380)
- Replace react-rxjs with observable-hooks (#2381)
- New spotlight layout (#2382)
- Show speaker in the spotlight in large grids (#2416)
- New one-on-one layout (#2417)
- Implement most of the remaining layout changes (#2463)
- New call layouts (#2485)
- Update dependency livekit-client to v2.4.0 (#2490)
- Quick and dirty fix to spotlight reactivity (#2494)
- Fkwp/cleanup config (#2498)
- Update LiveKit components (#2499)
- Update dependency matrix-widget-api to v1.7.0 (#2491)
- Update all non-major dependencies (#2492)
- Update dependency eslint-plugin-unicorn to v55 (#2503)
- Show layout switcher in widget/embedded mode (#2493)
- Improve accessibility of keyboard shortcuts (#2502)
- Fix grammar and spelling for comments and code (#2506)
- Make layout reactivity less brittle (#2501)
- Import Compound icons in the new recommended way (#2509)
- Update dependency @vector-im/compound-design-tokens to v1.7.0 (#2516)
- Don't consider microphone mute state in importance ordering (#2515)
- Give tiles a minimum area rather than a minimum width and height (#2513)
- Fix a crash when using the duplicate tiles option (#2512)
- Don't show the speaker in the spotlight in large grids (#2511)
- Only show the expand button in spotlight layout (#2510)
- Update LiveKit components (#2518)
- Update dependency livekit-client to v2.4.1 (#2519)
- Delete the unused full screen code (#2486)
- Add DeviceMute widget action
io.element.device_mute
. (#2482) - Backport deviceSetup await (#2522)
- Update GitHub Actions (#2524)
- Update dependency livekit-client to v2.4.2 (#2526)
- Update dependency matrix-widget-api to v1.8.1 (#2527)
- Update LiveKit components (#2525)
- Add future related widget capabilities (#2505)
- More strongly prefer putting a remote speaker in the spotlight (#2528)
- Fix Renovate warning (#2532)
- Bump matrix-widget-api (#2529)
- Add back some margins to the interface (#2531)
- Show your own name on your tile (#2530)
- Don't refer to MSC3779 explicitly in comment (#2533)
- Update dependency @vector-im/compound-web to v6 (#2448)
- Update all non-major dependencies (#2535)
- Improve the layouts on small mobile calls (#2514)
- Update dependency @vector-im/compound-design-tokens to v1.8.0 (#2538)
- Update dependency postcss-preset-env to v10 (#2534)
- Fix a crash when the duplicate tiles option is empty (#2539)
- Add note on how to add a new translation key (#2536)
- Don't show local media on top of itself (#2541)
- Update js-sdk to use non-legacy calls if found (#2540)
- Avoid T-shaped layouts in 4 person calls (#2547)
- Consider any sufficiently short window 'flat' (#2545)
- Avoid duplicating the video of someone in the spotlight (#2546)
- Show controls on tap/hover on small screens (#2548)
- Don't keep someone in the spotlight if they've left the call (#2552)
Full Changelog: v0.5.18...v0.6.0
v0.5.18
We are making progress to support reliable state events. This makes stable EC compatible with the new member event format but does not yet use it.
Support for the new membership format (MSC4143) (this is all conditional and EC is still compatible with the old style (MSC3401) )
- Make widgets request the room creation event (#2457)
- Reduce noise coming from Renovate updates (#2441)
- Skip error screen for the issue, that the homeserver does not support the room summary endpoint. (#2453)
- Make widgets request the room creation event (#2457)
- Let Element Call widget set session memberships (#2459)
- Add config to send session membership state events (#2460)
Auto muting when participant count reaches > 8
- Don't update mute when reaching the user count threshold. (#2474)
Full Changelog: v0.5.17...v0.5.18
v0.5.17
Important: This release requires in SPA version of Element Call that the related homeserver has enabled MSC3266 due to the knocking feature. The widget version implementing pure MatrixRTC does not have this requirement.
What's Changed
- Update dependency @livekit/components-react to v2.1.3 (#2323)
- Knocking support (#2281)
- Update actions/upload-artifact digest to 79616d2 (#2332)
- Update peter-evans/create-pull-request action to v6.0.4 (#2334)
- Update dependency @types/node to v20.12.7 (#2319)
- Update actions/upload-artifact digest to 552bf37 (#2338)
- Update dependency @livekit/components-react to v2.2.0 (#2339)
- Update peter-evans/create-pull-request action to v6.0.5 (#2345)
- Update docker/build-push-action digest to eb539f4 (#2344)
- Update dependency livekit-client to v2.1.1 (#2346)
- Fix device enabled/disabled flickering in lobby (#2350)
- Revert "Fix device enabled/disabled flickering in lobby" (#2351)
- Drop unsupported field from backend/livekit.yaml (#2349)
- Fix audio/video device flickering (#2353)
- Add data models for the new call layouts (#2086)
- Update dependency @livekit/components-react to v2.2.1 (#2356)
- Update dependency livekit-client to v2.1.2 (#2357)
- Join knock rooms on page load if already invited (#2355)
- refactor run-id handling of GitHub Actions (#2333)
- Update docker/build-push-action digest to 729f7f4 (#2363)
- Update dependency livekit-client to v2.1.3 (#2364)
- doc: Add a tip about Synapse (#2343)
- Add more valid rooms to the recents list (#2361)
- Don't auto-join knock room on invite after leave (#2362)
- Reword message for failure to join/find room (#2360)
- Update docker/setup-buildx-action digest to be3701b (#2367)
- Update docker/metadata-action digest to 2ee3d30 (#2366)
- Update docker/login-action digest to d910b14 (#2365)
- Update docker/login-action digest to 7840e6d (#2370)
- Update docker/build-push-action digest to 6003d32 (#2371)
- Update docker/build-push-action digest to df19a79 (#2374)
- Update docker/setup-buildx-action digest to 5138f76 (#2378)
- Update docker/metadata-action digest to f7b4ed1 (#2377)
- Update docker/login-action digest to 70fccc7 (#2376)
- Update docker/build-push-action digest to 2a53c6c (#2375)
- Update dependency livekit-client to v2.1.5 (#2379)
- Wait for a full sync on startup (#2372)
- Update babel monorepo to v7.24.6 (#2229)
- Update dependency @livekit/components-react to v2.3.1 (#2384)
- Update dependency @livekit/components-core to v0.10.2 (#2383)
- Update dependency eslint-plugin-deprecate to v0.8.5 (#2387)
- package.json add name field (#2386)
- Update dependency @types/node to v20.12.12 (#2388)
- Update dependency @sentry/vite-plugin to v2.17.0 (#2255)
- Update docker/login-action digest to db77945 (#2390)
- Update docker/build-push-action digest to ef6cba3 (#2389)
- Update docker/login-action digest to 0d4c9c5 (#2394)
- Update docker/build-push-action digest to ca052bb (#2393)
- Update participant count color (#2395)
- Update dependency livekit-client to v2.2.0 (#2400)
- Remove excessive footer space (#2397)
- Update dependency vaul to v0.9.1 (#2392)
- Update dependency react-i18next to v14.1.2 (#2391)
- Update dependency i18next-http-backend to v2.5.2 - autoclosed (#2335)
- Update dependency @types/lodash to v4.17.4 (#2271)
- Update typescript-eslint monorepo to v7.12.0 (#2250)
- Update react monorepo (#2403)
- Update dependency @types/grecaptcha to v3.0.9 (#2231)
- Update dependency i18next-browser-languagedetector to v7.2.1 (#2292)
- Update dependency @opentelemetry/instrumentation-document-load to ^0.38.0 (#2293)
- Update dependency prettier to v3.3.0 (#2401)
- Update dependency vite to v5.2.12 (#2402)
- Update dependency @opentelemetry/instrumentation-user-interaction to ^0.38.0 (#2404)
- Update dependency @sentry/vite-plugin to v2.18.0 (#2405)
- Update dependency @testing-library/react to v14.3.1 (#2406)
- Update dependency @livekit/components-react to v2.3.2 (#2419)
- Update docker/build-push-action digest to cfed4e9 (#2422)
- Update dependency posthog-js to v1.139.2 (#2414)
- Remove
EventType.GroupCallPrefix
from widget capabilities (#2399) - Update dependency livekit-client to v2.3.0 (#2428)
- Update docker/build-push-action digest to 4367da9 (#2425)
- Update dependency @livekit/components-core to v0.10.3 (#2426)
- Update dependency @livekit/components-react to v2.3.3 (#2427)
- Update docker/build-push-action digest to 94f8f8c (#2431)
- Update dependency eslint-plugin-react to v7.34.3 (#2410)
- Update dependency @vector-im/compound-web to v3.3.1 (#2408)
- Update typescript-eslint monorepo to v7.13.1 (#2424)
- Load focus information from well known and use client config only as a fallback. (#2358)
- Update dependency livekit-client to v2.3.1 (#2436)
- Update docker/build-push-action digest to f6010ea (#2437)
- Use correct DOM event name for visibility changes in useWakeLock (#2435)
- Update matrix-js-sdk (#2430)
- Bump ws from 8.16.0 to 8.17.1 (#2438)
New Contributors
- @MomentQYC made their first contribution in #2343
- @kilimnik made their first contribution in #2386
- @dreamflasher made their first contribution in #2397
- @hughns made their first contribution in #2435
- @dependabot made their first contribution in #2438
Full Changelog: v0.5.16...v0.5.17