Robin and GitHub
ee2b0c6a5d
Merge pull request #3625 from robintown/misc
...
Miscellaneous clean-up
2025-12-09 10:01:11 -05:00
Robin
6ee3ef2795
Edit a misleading log line
...
The factory function is called once per item to construct the item. It is not called on future updates to the item's data.
2025-12-08 23:38:54 -05:00
Robin
2f3f9f95eb
Use more compact optional chaining and coalescing notation
2025-12-08 23:38:15 -05:00
Robin
9481dc401c
Remove extraneous 'scope running' check
...
Semantically, behaviors are only meaningful for as long as their scope is running. Setting a behavior's value to an empty array once its scope ends is not guaranteed to work (as it depends on execution order of how the scope is ended), and subscribers should be robust enough to handle clean-up of all connections at the end of the scope either way.
2025-12-08 23:34:42 -05:00
Robin
d8b9568400
Stop publisher in a less brittle way
2025-12-08 23:33:41 -05:00
Robin and GitHub
f599e22e94
Merge pull request #3614 from robintown/simplify-analytics-id
...
Simplify computation of analytics ID
2025-12-03 13:59:01 -05:00
Robin
bbd92f666b
Simplify computation of analytics ID
...
Since we now bundle a trusted Element Call widget with our messenger applications and this widget reports analytics to an endpoint determined by the messenger app, there is no longer any reason to compute a different analytics ID from the one used by the messenger app.
2025-12-03 10:42:04 -05:00
Robin
83ea154e1a
Fix the wrong layout being used until window size changes
...
While looking into what had regressed https://github.com/element-hq/element-call/issues/3588 , I found that 28047217b8 had filled in a couple of behaviors with non-reactive default values, the "natural window mode" behavior being among them. This meant that the app would no longer determine the correct window mode upon joining a call, instead always guessing "normal" as the value. This change restores its reactivity.
2025-12-02 10:36:53 -05:00
Robin
0240087afe
Unpin matrix-js-sdk so it can be upgraded
2025-12-01 13:09:10 -05:00
Robin and GitHub
171c289f2d
Merge pull request #3564 from element-hq/renovate/livekit-client
...
Update dependency livekit-client to v2.15.15
2025-11-17 13:41:44 -05:00
Robin
cf8298cd69
Fix lints
2025-11-14 18:57:39 -05:00
Robin
bb746dc8dc
Fix a resource leak in the track processor code
2025-11-14 18:45:02 -05:00
Robin
53aaa011b7
Remove stray comma
...
This comma was showing up in the bottom left corner of the UI.
2025-11-14 16:41:18 -05:00
Robin
494ed7c126
Fix the MatrixRTC mode developer controls
...
They weren't responding properly to clicks, and make more sense as radio buttons.
2025-11-14 14:15:58 -05:00
Robin
da85e74596
Restore LocalMembership tests
2025-11-14 10:48:24 -05:00
Robin
c7f50b53f5
Fix decryption errors
...
The code had regressed to a state where it was attempting to use one encryption worker for all LiveKit rooms, which does not currently work.
2025-11-12 15:41:41 -05:00
Robin
a62d8368a1
Fix and simplify screen sharing
2025-11-12 15:02:19 -05:00
Robin
27b76b4b1d
Remove unused Async type
2025-11-12 14:28:26 -05:00
Robin
8d421899a6
Fix formatting of doc comment
2025-11-12 10:16:15 -05:00
Robin
92ddc4c797
Fix avatar reactivity, simplify display names tracking
2025-11-09 01:16:39 -05:00
Robin
b4c17ed26d
Replace generateKeyed$ with a redesigned generateItems operator
...
And use it to clean up a number of code smells, fix some reactivity bugs, and avoid some resource leaks.
2025-11-09 00:46:16 -05:00
Robin and GitHub
5afc3c2598
Merge pull request #3556 from element-hq/renovate/node-24.x
...
Update Node.js to v24
2025-11-05 13:55:24 -05:00
Robin and GitHub
8ad0cb1955
Merge pull request #3551 from element-hq/renovate/embedded-package-dependencies
...
Update embedded package dependencies to v8.13.0
2025-11-05 13:53:27 -05:00
Robin and GitHub
9bd464a7f1
Merge pull request #3550 from element-hq/renovate/github-actions
...
Update softprops/action-gh-release digest to 6da8fa9
2025-11-05 13:53:08 -05:00
Robin and GitHub
f0adae41ef
Merge pull request #3552 from element-hq/renovate/livekit-client
...
Update dependency livekit-client to v2.15.14
2025-11-05 13:49:44 -05:00
Robin and GitHub
eebcd133f3
Merge pull request #3553 from element-hq/robin/trusted-publishing
...
Remove use of npm access token now that trusted publishing is set up
2025-11-05 13:45:52 -05:00
Robin
79bd458dc2
Remove use of npm access token now that trusted publishing is set up
...
npm has recently limited the lifetime of all access tokens to 90 days (https://gh.io/npm-token-changes ), so it would be a bit inconvenient to stick to our current access token-based method of publishing releases. Meanwhile npm has implemented a more secure publishing method based on OIDC in which you tell the registry that a particular GitHub Actions workflow should be a "trusted publisher" for a given package, and then the CLI will authenticate automatically. (https://docs.npmjs.com/trusted-publishers )
I've already set trusted publishing up on the registry side, and since we're already granting the job permission to generate ID tokens for provenance, there should be no additional lines of config needed to make it work. Let's take away the access token and see how this goes next time we release.
2025-11-03 17:13:03 -05:00
Robin
db2004fb90
Remove unused string
2025-10-22 23:29:36 -04:00
Robin
e0b9a85f02
Merge branch 'livekit' into voip-team/rebased-multiSFU
2025-10-22 23:28:26 -04:00
Robin
6be7749091
Remove even more dead code
2025-10-22 23:27:38 -04:00
Robin
5245b22d80
Remove dead test files
...
While we still ought to eventually port these tests in some way, the presence of these empty test files is causing a Vitest failure, so it's easiest to just let them go and refer to Git history when we do want to reference them next.
2025-10-22 23:18:15 -04:00
Robin
75a8dd21eb
Remove some dead code
2025-10-22 23:17:07 -04:00
Robin
2c5afe82c4
Skip GroupCallView tests for now
2025-10-22 23:13:57 -04:00
Robin
58cd12b9b8
Fix a number of remaining test failures
2025-10-22 22:57:29 -04:00
Robin
a1c7255cc6
Restore CallViewModel tests to working order
...
I've left only one of the tests behind (skipped).
2025-10-22 18:50:16 -04:00
Robin
9ca8962328
Remove unused useECConnectionState React hook
...
It has been replaced by Connection.
2025-10-22 18:48:28 -04:00
Robin and GitHub
e7e0facaa5
Merge pull request #3536 from robintown/stable-speaker-switches
...
Avoid gratuitous animations when the speaker changes
2025-10-21 13:36:54 -04:00
Robin
1a26a85a78
Show that we've proved to TypeScript that the media is user media
2025-10-21 13:22:20 -04:00
Robin and GitHub
4936cdfbf6
Merge pull request #3537 from robintown/connection-leaks
...
Fix resource leaks when we stop using a connection
2025-10-21 09:56:31 -04:00
Robin
340265a838
Enable the PiP tile in expanded spotlight layout to swap speakers without a layout shift
...
This was apparently left unimplemented during the first iteration of the TileStore. It's a welcome UI optimization and we can reliably test for it.
2025-10-21 01:08:46 -04:00
Robin
1b3a56427f
Document generateKeyed$ more thoroughly
2025-10-21 00:27:18 -04:00
Robin
27f24ca565
Document CallViewModel and some terms used
2025-10-21 00:07:48 -04:00
Robin
13894aaf3a
Simplify some test helpers that no longer need continuations
2025-10-17 12:34:06 -04:00
Robin
d5efba285b
Fix resource leaks when we stop using a connection
...
The execution of certain Observables related to a local or remote connection would continue even after we stopped caring about said connection because we were failing to give these state holders a proper ObservableScope of their own, separate from the CallViewModel's longer-lived scope. With this commit they now have scopes managed by generateKeyed$.
2025-10-17 12:23:53 -04:00
Robin
717c7420f9
Require ObservableScopes of state holders to be specified explicitly
...
Previously we had a ViewModel class which was responsible for little more than creating an ObservableScope. However, since this ObservableScope would be created implicitly upon view model construction, it became a tad bit harder for callers to remember to eventually end the scope (as you wouldn't just have to remember to end ObservableScopes, but also to destroy ViewModels). Requiring the scope to be specified explicitly by the caller also makes it possible for the caller to reuse the scope for other purposes, reducing the number of scopes mentally in flight that need tending to, and for all state holders (not just view models) to be handled uniformly by helper functions such as generateKeyed$.
2025-10-17 12:23:53 -04:00
Robin
414322e5d9
Fix TileStore's ability to swap spotlight speakers without a layout shift
...
This was regressed in 79c40f198c because of the overlooked renaming of the 'speaking' field to 'speaking$'.
2025-10-17 11:25:39 -04:00
Robin
1eec7314e8
Remove unnecessary lint suppressions
2025-10-17 11:22:23 -04:00
Robin
2c66e11a0a
Fix connection tests
...
Removing one of these tests because it was doing a lot of work to test something that was made trivial in b0eb566a4f .
2025-10-14 16:04:52 -04:00
Robin
102e581c41
Serialize updates to the call intent
...
So that the value advertised in your membership can't desync from the actual value if you toggle video too fast.
2025-10-14 15:20:07 -04:00
Robin
b0eb566a4f
Simplify local transport connection state tracking
2025-10-14 14:43:13 -04:00
Robin
2dc6134606
Stick to the term 'transport' rather than 'focus'
2025-10-14 14:38:37 -04:00
Robin
ea17ed7253
Rename 'localTransport' to 'transport', since it's often remote
2025-10-14 14:34:51 -04:00
Robin
9f4e99310b
Elaborate on a TODO for preloading JWT tokens
2025-10-14 14:32:56 -04:00
Robin
625cfa15ff
Move sorting bin calculation into UserMedia
2025-10-14 14:31:35 -04:00
Robin
95069fd3fa
Fix joining call with audio and video muted
2025-10-14 12:19:23 -04:00
Robin
13636b78d9
Replace deprecated CallMembership.sender with userId
2025-10-14 12:07:51 -04:00
Robin
bcbf7a90f0
Initialize preferredTransport$ in a less unusual way
2025-10-14 12:00:00 -04:00
Robin
2de7a20d8a
Remove outdated comment
2025-10-14 11:54:36 -04:00
Robin
b030d304df
Fix crash during focus switching
2025-10-14 09:29:48 -04:00
Robin
392c51fbf6
Merge branch 'voip-team/rebased-multiSFU' of github.com:element-hq/element-call into voip-team/rebased-multiSFU
2025-10-14 09:22:08 -04:00
Robin
a18700cbcd
Avoid updating membership during focus switch
2025-10-14 09:16:46 -04:00
Robin
de5f5198dd
Merge branch 'livekit' into voip-team/rebased-multiSFU
...
Note that this effectively *reverts* 3ac2aa8526 because this branch now has what is a better UX (at least I think so): the in-call view is presented instantly when pressing the join button. Errors that occur during initial connection procedures will be surfaced more uniformly.
2025-10-09 16:44:12 -04:00
Robin
f9f2896a6a
Merge branch 'voip-team/rebased-multiSFU' of github.com:element-hq/element-call into voip-team/rebased-multiSFU
2025-10-09 16:37:48 -04:00
Robin
85ffe68d98
Remove outdated comment
2025-10-08 19:20:21 -04:00
Robin
2c576a7477
Clean up subscriptions in Connection tests
2025-10-08 19:09:27 -04:00
Robin
64c2e5911c
Update outdated comment
2025-10-08 19:09:08 -04:00
Robin
5be3b91509
Fix focus connection state typo, simplify its initialization
2025-10-08 19:09:03 -04:00
Robin
2d7e4247f3
Note a potential resource leak
2025-10-08 18:51:30 -04:00
Robin
00daf834b6
Remove local participant case (now enforced by types) from audio tests
2025-10-08 17:53:11 -04:00
Robin
dcc3ab641f
Remove MockedObject from mockMediaDevices type signature
2025-10-08 17:40:03 -04:00
Robin
dee06a4b70
Remove unused useIsEarpiece hook
2025-10-08 17:37:54 -04:00
Robin
3691e7120d
Restore a hidden 'null' state for the local transport/connection
2025-10-08 17:35:53 -04:00
Robin
8778be8351
Fix doc comment typo
2025-10-08 17:34:33 -04:00
Robin
e88474452f
Correct / document some missing bits in tests
2025-10-08 17:33:17 -04:00
Robin
b1d143720a
Add comments to Async
2025-10-08 17:08:51 -04:00
Robin
5da780ed30
Remove dead MuteStates file
...
It's been replaced by a refactored RxJS version living in src/state.
2025-10-08 16:43:43 -04:00
Robin
c96e81bfd3
Simplify type of audio participants exposed from CallViewModel
2025-10-08 16:42:36 -04:00
Robin
e346c8c148
Re-enable React strict mode
2025-10-08 16:39:27 -04:00
Robin
1a4b38cf93
Document ObservableScope.reconcile
2025-10-08 12:54:24 -04:00
Robin and GitHub
5835cd423e
Merge pull request #3517 from element-hq/renovate/github-actions
...
Update GitHub Actions
2025-10-08 10:19:22 -04:00
Robin
669bc76dd5
Replace calls to deprecated resolveActiveFocus
2025-10-08 01:04:58 -04:00
Robin
1fff71ace1
Actually leave the MatrixRTC session again
2025-10-03 21:00:45 -04:00
Robin
1820cac3f6
Create media items for session members not joined to LiveKit
2025-10-03 19:14:48 -04:00
Robin
86fb026be8
Turn multi-SFU media transport into a developer option
2025-10-03 14:43:22 -04:00
Robin and GitHub
71127a4e94
Merge pull request #3516 from element-hq/toger5/voip-team/rebased-multiSFU-bump-to-new-js-sdk-version
...
Use updated multi sfu js-sdk
2025-09-30 11:24:12 -04:00
Robin
a4a0a58a72
Remove the option to show non-member ("ghost") participants
...
As we'd like to get the multi-SFU feature branch shipped, this is not the most important debugging tool to expend effort on at the moment.
2025-09-26 13:27:18 -04:00
Robin
dbdf853d55
Stop connections on view model destroy
2025-09-26 13:20:55 -04:00
Robin
0759f9b27d
Don't render audio from participants that aren't meant to be publishing
2025-09-25 21:29:02 -04:00
Robin
4980d8a622
Merge branch 'livekit' into voip-team/rebased-multiSFU
2025-09-25 18:40:59 -04:00
Robin
530fbaf90a
Clear up the room membership confusion around reading session members
2025-09-24 21:39:36 -04:00
Robin
6cf020763e
Make UI react instantly to hanging up but also wait for leave sound
...
This ensures that we don't see a mistaken 'reconnecting' toast while we're hanging up (and also that the leave sound gets a chance to play in widgets once again).
2025-09-24 21:26:16 -04:00
Robin
edd3eb8747
Implement screen sharing
2025-09-24 13:54:54 -04:00
Robin
f99a256c86
Reset matrix-js-sdk to multi SFU branch
2025-09-24 13:53:39 -04:00
Robin
8e21ea6d51
Merge branch 'livekit' into voip-team/rebased-multiSFU
2025-09-24 10:12:26 -04:00
Robin and Timo K
e08f16f889
All my Friday work. Demoable!
2025-09-19 17:50:43 +02:00
Robin and Timo K
d46fe55a67
Import unfinished mute states refactor
2025-09-19 17:50:43 +02:00
Robin and Timo K
02f4c73759
Add my own local storage SFU config stuff too
2025-09-19 17:50:43 +02:00
Robin and Timo K
cb91f1ad4f
Make it actually join the session
2025-09-19 17:50:43 +02:00
Robin and Timo K
c6e8c94fd6
Fix makeFocus
2025-09-19 17:50:43 +02:00
Robin and Timo K
d9b6302bf7
Fix crash?
2025-09-19 17:50:43 +02:00