Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Implement MSC3575: Sliding Sync #8328

Merged
merged 99 commits into from
Sep 7, 2022
Merged

Implement MSC3575: Sliding Sync #8328

merged 99 commits into from
Sep 7, 2022

Conversation

kegsay
Copy link
Member

@kegsay kegsay commented Apr 14, 2022

Implements basic support for Sliding Sync.

This includes cypress E2E tests.


Here's what your changelog entry will look like:

✨ Features

list ranges update but the UI doesn't
* Release threads as a beta feature ([\#8081](#8081)). Fixes element-hq/element-web#21351.
* More video rooms design updates ([\#8222](#8222)).
* Update video rooms to new design specs ([\#8207](#8207)). Fixes element-hq/element-web#21515, element-hq/element-web#21516 element-hq/element-web#21519 and element-hq/element-web#21526.
* Live Location Sharing - left panel warning with error ([\#8201](#8201)).
* Live location sharing - Stop publishing location to beacons with consecutive errors ([\#8194](#8194)).
* Live location sharing: allow retry when stop sharing fails ([\#8193](#8193)).
* Allow voice messages to be scrubbed in the timeline ([\#8079](#8079)). Fixes element-hq/element-web#18713.
* Live location sharing - stop sharing to beacons in rooms you left ([\#8187](#8187)).
* Allow sending and thumbnailing AVIF images ([\#8172](#8172)).
* Live location sharing - handle geolocation errors ([\#8179](#8179)).
* Show voice room participants when not connected ([\#8136](#8136)). Fixes element-hq/element-web#21513.
* Add margins between labs sections ([\#8169](#8169)).
* Live location sharing - send geolocation beacon events - happy path ([\#8127](#8127)).
* Add support for Animated (A)PNG ([\#8158](#8158)). Fixes element-hq/element-web#12967.
* Don't form continuations from thread roots ([\#8166](#8166)). Fixes element-hq/element-web#20908.
* Improve handling of animated GIF and WEBP images ([\#8153](#8153)). Fixes element-hq/element-web#16193 and element-hq/element-web#6684.
* Wire up file preview for video files ([\#8140](#8140)). Fixes element-hq/element-web#21539.
* When showing thread, always auto-focus its composer ([\#8115](#8115)). Fixes element-hq/element-web#21438.
* Live location sharing - refresh beacon expiry in room ([\#8116](#8116)).
* Use styled mxids in member list v2 ([\#8110](#8110)). Fixes element-hq/element-web#14825. Contributed by @SimonBrandner.
* Delete groups (legacy communities system) ([\#8027](#8027)). Fixes element-hq/element-web#17532.
* Add a prototype of voice rooms in labs ([\#8084](#8084)). Fixes element-hq/element-web#3546.
* Fix editing `<ol>` tags with a non-1 start attribute ([\#8211](#8211)). Fixes element-hq/element-web#21625.
* Fix URL previews being enabled when room first created ([\#8227](#8227)). Fixes element-hq/element-web#21659.
* Don't use m.call for Jitsi video rooms ([\#8223](#8223)).
* Scale emoji with size of surrounding text ([\#8224](#8224)).
* Make "Jump to date" translatable ([\#8218](#8218)).
* Normalize call buttons ([\#8129](#8129)). Fixes element-hq/element-web#21493. Contributed by @luixxiul.
* Show room preview bar with maximised widgets ([\#8180](#8180)). Fixes element-hq/element-web#21542.
* Update more strings to not wrongly mention room when it is/could be a space ([\#7722](#7722)). Fixes element-hq/element-web#20243 and element-hq/element-web#20910.
* Fix issue with redacting via edit composer flow causing stuck editStates ([\#8184](#8184)).
* Fix some image/video scroll jumps ([\#8182](#8182)).
* Fix "react error on share dialog" ([\#8170](#8170)). Contributed by @yaya-usman.
* Fix disambiguated profile in threads in bubble layout ([\#8168](#8168)). Fixes element-hq/element-web#21570. Contributed by @SimonBrandner.
* Responsive BetaCard on Labs ([\#8154](#8154)). Fixes element-hq/element-web#21554. Contributed by @luixxiul.
* Display button as inline in room directory dialog ([\#8164](#8164)). Fixes element-hq/element-web#21567. Contributed by @luixxiul.
* Null guard TimelinePanel unmount edge ([\#8171](#8171)).
* Fix beta pill label breaking ([\#8162](#8162)). Fixes element-hq/element-web#21566. Contributed by @luixxiul.
* Strip relations when forwarding ([\#7929](#7929)). Fixes element-hq/element-web#19769, element-hq/element-web#18067 element-hq/element-web#21015 and element-hq/element-web#10924.
* Don't try (and fail) to show replies for redacted events ([\#8141](#8141)). Fixes element-hq/element-web#21435.
* Fix 3pid member info for space member list ([\#8128](#8128)). Fixes element-hq/element-web#21534.
* Set max-width to user context menu ([\#8089](#8089)). Fixes element-hq/element-web#21486. Contributed by @luixxiul.
* Fix issue with falsey hrefs being sent in events ([\#8113](#8113)). Fixes element-hq/element-web#21417.
* Make video sizing consistent with images ([\#8102](#8102)). Fixes element-hq/element-web#20072.
@kegsay kegsay requested a review from a team as a code owner April 14, 2022 15:26
Copy link
Member

@turt2live turt2live left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall the code itself seems fine - the vast majority of my concerns are (partially) undocumented code style matching things.

There is a comment about the setting though, which I think is highest priority here.

We'd also need to see the js-sdk side up for review in order to merge this, as otherwise people won't be able to build the project anymore because TypeScript types will be missing.

src/MatrixClientPeg.ts Outdated Show resolved Hide resolved
src/SdkConfig.ts Outdated Show resolved Hide resolved
src/SdkConfig.ts Outdated Show resolved Hide resolved
src/SlidingSyncManager.ts Outdated Show resolved Hide resolved
src/SlidingSyncManager.ts Outdated Show resolved Hide resolved
src/sentry.ts Outdated Show resolved Hide resolved
src/settings/Settings.tsx Outdated Show resolved Hide resolved
src/settings/controllers/SlidingSyncController.ts Outdated Show resolved Hide resolved
src/settings/controllers/SlidingSyncController.ts Outdated Show resolved Hide resolved
src/settings/controllers/SlidingSyncController.ts Outdated Show resolved Hide resolved
@weeman1337 weeman1337 self-requested a review September 5, 2022 09:24
Copy link
Contributor

@weeman1337 weeman1337 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 tested on the Netlify deployment without labs setting enabled. Everything seems to be working fine. Do we have an existing sliding sync proxy we can use for convenient testing?

src/rageshake/submit-rageshake.ts Outdated Show resolved Hide resolved
src/stores/RoomViewStore.tsx Show resolved Hide resolved
src/SlidingSyncManager.ts Outdated Show resolved Hide resolved
src/SlidingSyncManager.ts Outdated Show resolved Hide resolved
src/SlidingSyncManager.ts Outdated Show resolved Hide resolved
src/SlidingSyncManager.ts Outdated Show resolved Hide resolved
src/components/views/rooms/RoomSublist.tsx Outdated Show resolved Hide resolved
src/hooks/useSlidingSyncRoomSearch.ts Outdated Show resolved Hide resolved
src/components/views/dialogs/spotlight/SpotlightDialog.tsx Outdated Show resolved Hide resolved
src/stores/room-list/SlidingRoomListStore.ts Outdated Show resolved Hide resolved
src/SlidingSyncManager.ts Outdated Show resolved Hide resolved
Copy link
Member

@t3chguy t3chguy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM other than that small nit

@kegsay kegsay merged commit a215027 into develop Sep 7, 2022
@kegsay kegsay deleted the kegan/sync-v3 branch September 7, 2022 15:42
su-ex added a commit to SchildiChat/element-desktop that referenced this pull request Sep 28, 2022
* Element Call video rooms ([\#9267](matrix-org/matrix-react-sdk#9267)).
* Device manager - rename session ([\#9282](matrix-org/matrix-react-sdk#9282)).
* Allow widgets to read related events ([\#9210](matrix-org/matrix-react-sdk#9210)). Contributed by @dhenneke.
* Device manager - logout of other session ([\#9280](matrix-org/matrix-react-sdk#9280)).
* Device manager - logout current session ([\#9275](matrix-org/matrix-react-sdk#9275)).
* Device manager - verify other devices ([\#9274](matrix-org/matrix-react-sdk#9274)).
* Allow integration managers to remove users ([\#9211](matrix-org/matrix-react-sdk#9211)).
* Device manager - add verify current session button ([\#9252](matrix-org/matrix-react-sdk#9252)).
* Add NotifPanel dot back. ([\#9242](matrix-org/matrix-react-sdk#9242)). Fixes element-hq/element-web#17641.
* Implement MSC3575: Sliding Sync ([\#8328](matrix-org/matrix-react-sdk#8328)).
* Add the clipboard read permission for widgets ([\#9250](matrix-org/matrix-react-sdk#9250)). Contributed by @stefanmuhle.
* Make autocomplete pop-up wider in thread view ([\#9289](matrix-org/matrix-react-sdk#9289)).
* Fix soft crash around inviting invalid MXIDs in start DM on first message flow ([\#9281](matrix-org/matrix-react-sdk#9281)). Fixes matrix-org/element-web-rageshakes#15060 and matrix-org/element-web-rageshakes#15140.
* Fix in-reply-to previews not disappearing when swapping rooms ([\#9278](matrix-org/matrix-react-sdk#9278)).
* Fix invalid instanceof operand window.OffscreenCanvas ([\#9276](matrix-org/matrix-react-sdk#9276)). Fixes element-hq/element-web#23275.
* Fix memory leak caused by unremoved listener ([\#9273](matrix-org/matrix-react-sdk#9273)).
* Fix thumbnail generation when offscreen canvas fails ([\#9272](matrix-org/matrix-react-sdk#9272)). Fixes element-hq/element-web#23265.
* Prevent sliding sync from showing a room under multiple sublists ([\#9266](matrix-org/matrix-react-sdk#9266)).
* Fix tile crash around tooltipify links ([\#9270](matrix-org/matrix-react-sdk#9270)). Fixes element-hq/element-web#23253.
* Device manager - filter out nulled metadatas in device tile properly ([\#9251](matrix-org/matrix-react-sdk#9251)).
* Fix a sliding sync bug which could cause rooms to loop ([\#9268](matrix-org/matrix-react-sdk#9268)).
* Remove the grey gradient on images in bubbles in the timeline ([\#9241](matrix-org/matrix-react-sdk#9241)). Fixes element-hq/element-web#21651.
* Fix html export not including images ([\#9260](matrix-org/matrix-react-sdk#9260)). Fixes element-hq/element-web#22059.
* Fix possible soft crash from a race condition in space hierarchies ([\#9254](matrix-org/matrix-react-sdk#9254)). Fixes matrix-org/element-web-rageshakes#15225.
* Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field ([\#9259](matrix-org/matrix-react-sdk#9259)).
* Handle M_INVALID_USERNAME on /register/available ([\#9237](matrix-org/matrix-react-sdk#9237)). Fixes element-hq/element-web#23161.
* Fix issue with quiet zone around QR code ([\#9243](matrix-org/matrix-react-sdk#9243)). Fixes element-hq/element-web#23199.
su-ex added a commit to SchildiChat/element-web that referenced this pull request Sep 28, 2022
* Element Call video rooms ([\element-hq#9267](matrix-org/matrix-react-sdk#9267)).
* Device manager - rename session ([\element-hq#9282](matrix-org/matrix-react-sdk#9282)).
* Allow widgets to read related events ([\element-hq#9210](matrix-org/matrix-react-sdk#9210)). Contributed by @dhenneke.
* Device manager - logout of other session ([\element-hq#9280](matrix-org/matrix-react-sdk#9280)).
* Device manager - logout current session ([\element-hq#9275](matrix-org/matrix-react-sdk#9275)).
* Device manager - verify other devices ([\element-hq#9274](matrix-org/matrix-react-sdk#9274)).
* Allow integration managers to remove users ([\element-hq#9211](matrix-org/matrix-react-sdk#9211)).
* Device manager - add verify current session button ([\element-hq#9252](matrix-org/matrix-react-sdk#9252)).
* Add NotifPanel dot back. ([\#9242](matrix-org/matrix-react-sdk#9242)). Fixes element-hq#17641.
* Implement MSC3575: Sliding Sync ([\element-hq#8328](matrix-org/matrix-react-sdk#8328)).
* Add the clipboard read permission for widgets ([\element-hq#9250](matrix-org/matrix-react-sdk#9250)). Contributed by @stefanmuhle.
* Make autocomplete pop-up wider in thread view ([\element-hq#9289](matrix-org/matrix-react-sdk#9289)).
* Fix soft crash around inviting invalid MXIDs in start DM on first message flow ([\element-hq#9281](matrix-org/matrix-react-sdk#9281)). Fixes matrix-org/element-web-rageshakes#15060 and matrix-org/element-web-rageshakes#15140.
* Fix in-reply-to previews not disappearing when swapping rooms ([\element-hq#9278](matrix-org/matrix-react-sdk#9278)).
* Fix invalid instanceof operand window.OffscreenCanvas ([\element-hq#9276](matrix-org/matrix-react-sdk#9276)). Fixes element-hq#23275.
* Fix memory leak caused by unremoved listener ([\element-hq#9273](matrix-org/matrix-react-sdk#9273)).
* Fix thumbnail generation when offscreen canvas fails ([\element-hq#9272](matrix-org/matrix-react-sdk#9272)). Fixes element-hq#23265.
* Prevent sliding sync from showing a room under multiple sublists ([\element-hq#9266](matrix-org/matrix-react-sdk#9266)).
* Fix tile crash around tooltipify links ([\element-hq#9270](matrix-org/matrix-react-sdk#9270)). Fixes element-hq#23253.
* Device manager - filter out nulled metadatas in device tile properly ([\element-hq#9251](matrix-org/matrix-react-sdk#9251)).
* Fix a sliding sync bug which could cause rooms to loop ([\element-hq#9268](matrix-org/matrix-react-sdk#9268)).
* Remove the grey gradient on images in bubbles in the timeline ([\element-hq#9241](matrix-org/matrix-react-sdk#9241)). Fixes element-hq#21651.
* Fix html export not including images ([\element-hq#9260](matrix-org/matrix-react-sdk#9260)). Fixes element-hq#22059.
* Fix possible soft crash from a race condition in space hierarchies ([\element-hq#9254](matrix-org/matrix-react-sdk#9254)). Fixes matrix-org/element-web-rageshakes#15225.
* Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field ([\element-hq#9259](matrix-org/matrix-react-sdk#9259)).
* Handle M_INVALID_USERNAME on /register/available ([\element-hq#9237](matrix-org/matrix-react-sdk#9237)). Fixes element-hq#23161.
* Fix issue with quiet zone around QR code ([\element-hq#9243](matrix-org/matrix-react-sdk#9243)). Fixes element-hq#23199.
su-ex added a commit to SchildiChat/matrix-react-sdk that referenced this pull request Sep 28, 2022
* Element Call video rooms ([\matrix-org#9267](matrix-org#9267)).
* Device manager - rename session ([\matrix-org#9282](matrix-org#9282)).
* Allow widgets to read related events ([\matrix-org#9210](matrix-org#9210)). Contributed by @dhenneke.
* Device manager - logout of other session ([\matrix-org#9280](matrix-org#9280)).
* Device manager - logout current session ([\matrix-org#9275](matrix-org#9275)).
* Device manager - verify other devices ([\matrix-org#9274](matrix-org#9274)).
* Allow integration managers to remove users ([\matrix-org#9211](matrix-org#9211)).
* Device manager - add verify current session button ([\matrix-org#9252](matrix-org#9252)).
* Add NotifPanel dot back. ([\matrix-org#9242](matrix-org#9242)). Fixes element-hq/element-web#17641.
* Implement MSC3575: Sliding Sync ([\matrix-org#8328](matrix-org#8328)).
* Add the clipboard read permission for widgets ([\matrix-org#9250](matrix-org#9250)). Contributed by @stefanmuhle.
* Make autocomplete pop-up wider in thread view ([\matrix-org#9289](matrix-org#9289)).
* Fix soft crash around inviting invalid MXIDs in start DM on first message flow ([\matrix-org#9281](matrix-org#9281)). Fixes matrix-org/element-web-rageshakes#15060 and matrix-org/element-web-rageshakes#15140.
* Fix in-reply-to previews not disappearing when swapping rooms ([\matrix-org#9278](matrix-org#9278)).
* Fix invalid instanceof operand window.OffscreenCanvas ([\matrix-org#9276](matrix-org#9276)). Fixes element-hq/element-web#23275.
* Fix memory leak caused by unremoved listener ([\matrix-org#9273](matrix-org#9273)).
* Fix thumbnail generation when offscreen canvas fails ([\matrix-org#9272](matrix-org#9272)). Fixes element-hq/element-web#23265.
* Prevent sliding sync from showing a room under multiple sublists ([\matrix-org#9266](matrix-org#9266)).
* Fix tile crash around tooltipify links ([\matrix-org#9270](matrix-org#9270)). Fixes element-hq/element-web#23253.
* Device manager - filter out nulled metadatas in device tile properly ([\matrix-org#9251](matrix-org#9251)).
* Fix a sliding sync bug which could cause rooms to loop ([\matrix-org#9268](matrix-org#9268)).
* Remove the grey gradient on images in bubbles in the timeline ([\matrix-org#9241](matrix-org#9241)). Fixes element-hq/element-web#21651.
* Fix html export not including images ([\matrix-org#9260](matrix-org#9260)). Fixes element-hq/element-web#22059.
* Fix possible soft crash from a race condition in space hierarchies ([\matrix-org#9254](matrix-org#9254)). Fixes matrix-org/element-web-rageshakes#15225.
* Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field ([\matrix-org#9259](matrix-org#9259)).
* Handle M_INVALID_USERNAME on /register/available ([\matrix-org#9237](matrix-org#9237)). Fixes element-hq/element-web#23161.
* Fix issue with quiet zone around QR code ([\matrix-org#9243](matrix-org#9243)). Fixes element-hq/element-web#23199.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants