Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Threaded message is missing my reaction #22157

Closed
MadLittleMods opened this issue May 11, 2022 · 10 comments · Fixed by matrix-org/matrix-react-sdk#9356
Closed

Threaded message is missing my reaction #22157

MadLittleMods opened this issue May 11, 2022 · 10 comments · Fixed by matrix-org/matrix-react-sdk#9356
Assignees
Labels
A-Reactions A-Threads O-Uncommon Most users are unlikely to come across this or unexpected workflow S-Major Severely degrades major functionality or product features, with no satisfactory workaround T-Defect

Comments

@MadLittleMods
Copy link
Contributor

Steps to reproduce

  1. Open a thread
  2. Put a reaction on one of the messages
    • It's probably related to the fact that the threaded message was edited but my client wasn't showing the edit at the time and I reacted to the original message instead of the edit. In any case, it seems like the reaction should follow.
  3. Come back to the room later and notice your reaction isn't displayed

Related to #21627

Thread information

mxMatrixClientPeg.matrixClient.getRoom("!xxx:matrix.org").findEventById("$threadRoot").getThread().events.length
28

When I look at the events in mxMatrixClientPeg.matrixClient.getRoom("!xxx:matrix.org").findEventById("$threadRoot").getThread().events, it does include my reaction. Full output in the rageshake issue.

Relevant events

Full uncensored screenshots, context, event_ids, etc in the rageshake log issue: https://github.com/matrix-org/element-web-rageshakes/issues/12869

The original message being reacted to:

{
    "content": {
        "algorithm": "m.megolm.v1.aes-sha2",
        "ciphertext": "...",
        "m.relates_to": {
            "event_id": "$E74-sH4t54_0GjTZDBiPdm7Wq1pb1_eHV_VdHUe6wac",
            "is_falling_back": true,
            "m.in_reply_to": {
                "event_id": "$UnyKkkxehyjqYR66zfb74F2OtnV7ts-L9fd83msrNnQ"
            },
            "rel_type": "m.thread"
        },
    },
    "origin_server_ts": 1652201438062,
    "room_id": "!xxx:matrix.org",
    "sender": "@alice",
    "type": "m.room.encrypted",
    "unsigned": {
        "age": 101777709,
        "m.relations": {
            "m.annotation": {
                "chunk": [
                    {
                        "type": "m.reaction",
                        "key": "😢",
                        "count": 1
                    }
                ]
            }
        }
    },
    "event_id": "$yYGxATPiCuhVCK1cKiCXB9MSXUyTZcXTVBjAZNT5fGM",
    "age": 101777709
},

The edit:

{
  "content": {
    "algorithm": "m.megolm.v1.aes-sha2",
    "ciphertext": "....",
    "m.relates_to": {
      "event_id": "$yYGxATPiCuhVCK1cKiCXB9MSXUyTZcXTVBjAZNT5fGM",
      "rel_type": "m.replace"
    },
  },
  "origin_server_ts": 1652201489856,
  "room_id": "!xxx:matrix.org",
  "sender": "@alice",
  "type": "m.room.encrypted",
  "unsigned": {
    "age": 101296010
  },
  "event_id": "$gEFlk0Jea101_sk8sI6Vq6NxSv21bXcT3ILaNn7al1Q",
  "age": 101296010
}

My reaction. Interestingly, my reaction comes after the edit in time, but applies to the original message. This probably means my client was showing me out of date information in the first place.

{
  "content": {
    "m.relates_to": {
      "event_id": "$yYGxATPiCuhVCK1cKiCXB9MSXUyTZcXTVBjAZNT5fGM",
      "key": "😢",
      "rel_type": "m.annotation"
    }
  },
  "origin_server_ts": 1652250027013,
  "room_id": "!xxx:matrix.org",
  "sender": "@madlittlemods:matrix.org",
  "type": "m.reaction",
  "unsigned": {
    "age": 52235505
  },
  "event_id": "$cQpsz6y51fHg9THifzRLG7ABAFODMVTnEuM1I3-11C8",
  "user_id": "@madlittlemods:matrix.org",
  "age": 52235505
}

Outcome

What did you expect?

Reaction is shown on the threaded message

What happened instead?

Threaded message is missing my reaction

Operating system

Windows 10

Browser information

Chrome Version 101.0.4951.64

URL for webapp

https://develop.element.io/

Application version

Element version: 479d4bf-react-5348572439be-js-4d4d6e1411b6 Olm version: 3.2.8

Homeserver

matrix.org

Will you send logs?

Yes

@MadLittleMods MadLittleMods added T-Defect S-Major Severely degrades major functionality or product features, with no satisfactory workaround A-Reactions O-Uncommon Most users are unlikely to come across this or unexpected workflow A-Threads Z-MadLittleMods labels May 11, 2022
@t3chguy
Copy link
Member

t3chguy commented May 11, 2022

This is #9743

@t3chguy t3chguy closed this as completed May 11, 2022
@MadLittleMods
Copy link
Contributor Author

MadLittleMods commented May 11, 2022

@t3chguy Thanks for the link!

Reading over there, even though the client has both the reaction and target event, it sounds like we don't try to apply reactions we stumble upon in client to their target events because those events could already have bundled unsigned data included and we have no way to de-duplicate the existing bundled data to the random reaction event ID.

It looks like this does reproduce a tricky situation:

  1. Start a thread
  2. Add some thread replies
  3. React to one of the replies
  4. Edit the reply you reacted to
  5. Clear cache and refresh
  6. Notice the thread now has a Can't load this message (m.room.message) Submit logs (tile error boundary) for the message in question
react_devtools_backend.js:3973 TypeError: Cannot read properties of null (reading 'getMyMembership')
   at ReactionsRow_ReactionsRow.render (ReactionsRow.tsx:170:32)
   at qi (react-dom.production.min.js:187:125)
   at pi (react-dom.production.min.js:186:166)
   at ck (react-dom.production.min.js:269:357)
   at bk (react-dom.production.min.js:250:341)
   at ak (react-dom.production.min.js:250:277)
   at Tj (react-dom.production.min.js:250:138)
   at Lj (react-dom.production.min.js:243:146)
   at react-dom.production.min.js:123:110
   at push.exports.unstable_runWithPriority (scheduler.production.min.js:18:336)
   at gg (react-dom.production.min.js:122:318)
   at jg (react-dom.production.min.js:123:61)
   at ig (react-dom.production.min.js:122:428)
   at Jg (react-dom.production.min.js:237:147)
   at Object.enqueueSetState (react-dom.production.min.js:133:211)
   at TimelinePanel_TimelinePanel.push.C.setState (react.production.min.js:12:356)
   at onLoaded (TimelinePanel.tsx:1279:18)

@t3chguy Seems like this deserves a separate issue to at least not crash on a message? Update: #22195

@MadLittleMods
Copy link
Contributor Author

MadLittleMods commented May 13, 2022

What makes this work sometimes? I just checked in on the problem message today and the reaction is showing. Synapse is not bundling the information under unsigned on the edited message so it seems like the client is doing something smart sometimes. What's the differentiator?

The client had all of the information before. It had the reaction, the target event, and even had the reaction within the thread according to the matrix-js-sdk view of things.

@t3chguy
Copy link
Member

t3chguy commented May 13, 2022

Before the fix you commented on last week there was a race condition, that should be solved now given the async code is gone. If the reaction is seen via /sync or the /messages stream it'll be correctly related, if its in unsigned then it will not be due to lack of #9743.

@MadLittleMods
Copy link
Contributor Author

MadLittleMods commented May 13, 2022

Before the fix you commented on last week there was a race condition, that should be solved now given the async code is gone.

When did that fix ship? (I assume last week) Which one is it?

If the reaction is seen via /sync or the /messages stream it'll be correctly related, if its in unsigned then it will not be due to lack of #9743.

According to this, I feel like I shouldn't have seen the original reproduction which was only a couple days ago, given that Synapse wasn't bundling the reaction in unsigned under the edit before either and the client had the reaction event from somewhere (probably /messages).

@t3chguy
Copy link
Member

t3chguy commented May 13, 2022

When did that fix ship? (I assume last week) Which one is it?

matrix-org/matrix-js-sdk#2331 (comment)

According to this, I feel like I shouldn't have seen the original reproduction which was only a couple days ago, given that Synapse wasn't bundling the reaction under the edit before either and the client had the reaction event from somewhere (probably /messages).

In the OP of this issue you shared the event JSON which showed Synapse bundling the reaction.

image

@MadLittleMods
Copy link
Contributor Author

hmm, you mean bundled in unsigned under the the original message, not the edit.

I feel like in any case, the data available in the situation isn't different from today (where I can see it), to a couple days ago (where I couldn't).

I guess the differentiator could be:

  1. Context: The original message and edit are available on the homeserver time-wise by the time I send the reaction.
  2. My client is showing the outdated original message
  3. I reacted on the original
  4. The next day, the edit is slurped up somehow and available to show
  5. I view the thread and the messages come from the cache where they the original message won't have unsigned because it's cached from before I added my reaction.
    • I have no idea if the cache actually came into play here. Just trying to come up with some way to explain the difference.

But it's still not clear to me why the reaction wouldn't be shown in this case. It still seems possible given the constraints (we're not fighting against deduplicating unsigned here and even if the reaction was in unsigned, that's still my reaction I expect and everything would display correctly).

@t3chguy
Copy link
Member

t3chguy commented May 13, 2022

I don't think it would ever be bundled under the edit, bundled relationships are only 1st-order at the root level

@MadLittleMods
Copy link
Contributor Author

MadLittleMods commented May 13, 2022

I don't think it would ever be bundled under the edit, bundled relationships are only 1st-order at the root level

That makes sense. Thanks for the clarification 🙂

If the reaction is seen via /sync or the /messages stream it'll be correctly related, if its in unsigned then it will not be due to lack of #9743.

-- #22157 (comment)

Are these two conditions mutually exclusive?

To clarify this point, the original message did have the reaction bundled under unsigned which is biasing it to not be shown according to that statement.

If we discover reactions from /sync or /messages, will the reactions be added to the target message even if it has unsigned? It feels like we will show reactions given that the reaction is showing today.

And from a few days ago, I could see the hidden reaction event in the timeline (which means it was discovered via /messages), while looking at the thread where the reaction was missing. This seems like a valid bug?

@t3chguy
Copy link
Member

t3chguy commented May 18, 2022

If we discover reactions from /sync or /messages, will the reactions be added to the target message even if it has unsigned? It feels like we will show reactions given that the reaction is showing today.

Yes

And from a few days ago, I could see the hidden reaction event in the timeline (which means it was discovered via /messages), while looking at the thread where the reaction was missing. This seems like a valid bug?

That should be the bug fixed by the async->sync js-sdk changes

@justjanne justjanne self-assigned this Oct 11, 2022
su-ex added a commit to SchildiChat/matrix-react-sdk that referenced this issue Nov 12, 2022
* Loading threads with server-side assistance ([\matrix-org#9356](matrix-org#9356)). Fixes element-hq/element-web#21807, element-hq/element-web#21799, element-hq/element-web#21911, element-hq/element-web#22141, element-hq/element-web#22157, element-hq/element-web#22641, element-hq/element-web#22501 element-hq/element-web#22438 and element-hq/element-web#21678. Contributed by @justjanne.
* Make thread replies trigger a room list re-ordering ([\matrix-org#9510](matrix-org#9510)). Fixes element-hq/element-web#21700.
* Device manager - add extra details to device security and renaming ([\matrix-org#9501](matrix-org#9501)). Contributed by @kerryarchibald.
* Add plain text mode to the wysiwyg composer ([\matrix-org#9503](matrix-org#9503)). Contributed by @florianduros.
* Sliding Sync: improve sort order, show subspace rooms, better tombstoned room handling ([\matrix-org#9484](matrix-org#9484)).
* Device manager - add learn more popups to filtered sessions section ([\matrix-org#9497](matrix-org#9497)). Contributed by @kerryarchibald.
* Show thread notification if thread timeline is closed ([\matrix-org#9495](matrix-org#9495)). Fixes element-hq/element-web#23589.
* Add message editing to wysiwyg composer ([\matrix-org#9488](matrix-org#9488)). Contributed by @florianduros.
* Device manager - confirm sign out of other sessions ([\matrix-org#9487](matrix-org#9487)). Contributed by @kerryarchibald.
* Automatically request logs from other users in a call when submitting logs ([\matrix-org#9492](matrix-org#9492)).
* Add thread notification with server assistance (MSC3773) ([\matrix-org#9400](matrix-org#9400)). Fixes element-hq/element-web#21114, element-hq/element-web#21413, element-hq/element-web#21416, element-hq/element-web#21433, element-hq/element-web#21481, element-hq/element-web#21798, element-hq/element-web#21823 element-hq/element-web#23192 and element-hq/element-web#21765.
* Support for login + E2EE set up with QR ([\matrix-org#9403](matrix-org#9403)). Contributed by @hughns.
* Allow pressing Enter to send messages in new composer ([\matrix-org#9451](matrix-org#9451)). Contributed by @andybalaam.
* Fix regressions around media uploads failing and causing soft crashes ([\matrix-org#9549](matrix-org#9549)). Fixes matrix-org/element-web-rageshakes#16831, matrix-org/element-web-rageshakes#16824 matrix-org/element-web-rageshakes#16810 and element-hq/element-web#23641.
* Fix /myroomavatar slash command ([\matrix-org#9536](matrix-org#9536)). Fixes matrix-org/synapse#14321.
* Fix NotificationBadge unsent color ([\matrix-org#9522](matrix-org#9522)). Fixes element-hq/element-web#23646.
* Fix room list sorted by recent on app startup ([\matrix-org#9515](matrix-org#9515)). Fixes element-hq/element-web#23635.
* Reset custom power selector when blurred on empty ([\matrix-org#9508](matrix-org#9508)). Fixes element-hq/element-web#23481.
* Reinstate timeline/redaction callbacks when updating notification state ([\matrix-org#9494](matrix-org#9494)). Fixes element-hq/element-web#23554.
* Only render NotificationBadge when needed ([\matrix-org#9493](matrix-org#9493)). Fixes element-hq/element-web#23584.
* Fix embedded Element Call screen sharing ([\matrix-org#9485](matrix-org#9485)). Fixes element-hq/element-web#23571.
* Send Content-Type: application/json header for integration manager /register API ([\matrix-org#9490](matrix-org#9490)). Fixes element-hq/element-web#23580.
* Fix joining calls without audio or video inputs ([\matrix-org#9486](matrix-org#9486)). Fixes element-hq/element-web#23511.
* Ensure spaces in the spotlight dialog have rounded square avatars ([\matrix-org#9480](matrix-org#9480)). Fixes element-hq/element-web#23515.
* Only show mini avatar uploader in room intro when no avatar yet exists ([\matrix-org#9479](matrix-org#9479)). Fixes element-hq/element-web#23552.
* Fix threads fallback incorrectly targets root event ([\matrix-org#9229](matrix-org#9229)). Fixes element-hq/element-web#23147.
* Align video call icon with banner text ([\matrix-org#9460](matrix-org#9460)).
* Set relations helper when creating event tile context menu ([\matrix-org#9253](matrix-org#9253)). Fixes element-hq/element-web#22018.
* Device manager - put client/browser device metadata in correct section ([\matrix-org#9447](matrix-org#9447)). Contributed by @kerryarchibald.
* Update the room unread notification counter when the server changes the value without any related read receipt ([\matrix-org#9438](matrix-org#9438)).
su-ex added a commit to SchildiChat/element-desktop that referenced this issue Nov 12, 2022
* Switch to notarytool ([\element-hq#440](element-hq#440)).
* Loading threads with server-side assistance ([\#9356](matrix-org/matrix-react-sdk#9356)). Fixes element-hq/element-web#21807, element-hq/element-web#21799, element-hq/element-web#21911, element-hq/element-web#22141, element-hq/element-web#22157, element-hq/element-web#22641, element-hq/element-web#22501 element-hq/element-web#22438 and element-hq/element-web#21678. Contributed by @justjanne.
* Make thread replies trigger a room list re-ordering ([\#9510](matrix-org/matrix-react-sdk#9510)). Fixes element-hq/element-web#21700.
* Device manager - add extra details to device security and renaming ([\#9501](matrix-org/matrix-react-sdk#9501)). Contributed by @kerryarchibald.
* Add plain text mode to the wysiwyg composer ([\#9503](matrix-org/matrix-react-sdk#9503)). Contributed by @florianduros.
* Sliding Sync: improve sort order, show subspace rooms, better tombstoned room handling ([\#9484](matrix-org/matrix-react-sdk#9484)).
* Device manager - add learn more popups to filtered sessions section ([\#9497](matrix-org/matrix-react-sdk#9497)). Contributed by @kerryarchibald.
* Show thread notification if thread timeline is closed ([\#9495](matrix-org/matrix-react-sdk#9495)). Fixes element-hq/element-web#23589.
* Add message editing to wysiwyg composer ([\#9488](matrix-org/matrix-react-sdk#9488)). Contributed by @florianduros.
* Device manager - confirm sign out of other sessions ([\#9487](matrix-org/matrix-react-sdk#9487)). Contributed by @kerryarchibald.
* Automatically request logs from other users in a call when submitting logs ([\#9492](matrix-org/matrix-react-sdk#9492)).
* Add thread notification with server assistance (MSC3773) ([\#9400](matrix-org/matrix-react-sdk#9400)). Fixes element-hq/element-web#21114, element-hq/element-web#21413, element-hq/element-web#21416, element-hq/element-web#21433, element-hq/element-web#21481, element-hq/element-web#21798, element-hq/element-web#21823 element-hq/element-web#23192 and element-hq/element-web#21765.
* Support for login + E2EE set up with QR ([\#9403](matrix-org/matrix-react-sdk#9403)). Contributed by @hughns.
* Allow pressing Enter to send messages in new composer ([\#9451](matrix-org/matrix-react-sdk#9451)). Contributed by @andybalaam.
* Fix regressions around media uploads failing and causing soft crashes ([\#9549](matrix-org/matrix-react-sdk#9549)). Fixes matrix-org/element-web-rageshakes#16831, matrix-org/element-web-rageshakes#16824 matrix-org/element-web-rageshakes#16810 and element-hq/element-web#23641.
* Fix /myroomavatar slash command ([\#9536](matrix-org/matrix-react-sdk#9536)). Fixes matrix-org/synapse#14321.
* Fix i18n interpolation ([\element-hq#432](element-hq#432)). Fixes element-hq/element-web#23568.
* Fix config.json failing to load for Jitsi wrapper in non-root deployment ([\#23577](element-hq/element-web#23577)).
* Fix NotificationBadge unsent color ([\#9522](matrix-org/matrix-react-sdk#9522)). Fixes element-hq/element-web#23646.
* Fix room list sorted by recent on app startup ([\#9515](matrix-org/matrix-react-sdk#9515)). Fixes element-hq/element-web#23635.
* Reset custom power selector when blurred on empty ([\#9508](matrix-org/matrix-react-sdk#9508)). Fixes element-hq/element-web#23481.
* Reinstate timeline/redaction callbacks when updating notification state ([\#9494](matrix-org/matrix-react-sdk#9494)). Fixes element-hq/element-web#23554.
* Only render NotificationBadge when needed ([\#9493](matrix-org/matrix-react-sdk#9493)). Fixes element-hq/element-web#23584.
* Fix embedded Element Call screen sharing ([\#9485](matrix-org/matrix-react-sdk#9485)). Fixes element-hq/element-web#23571.
* Send Content-Type: application/json header for integration manager /register API ([\#9490](matrix-org/matrix-react-sdk#9490)). Fixes element-hq/element-web#23580.
* Fix joining calls without audio or video inputs ([\#9486](matrix-org/matrix-react-sdk#9486)). Fixes element-hq/element-web#23511.
* Ensure spaces in the spotlight dialog have rounded square avatars ([\#9480](matrix-org/matrix-react-sdk#9480)). Fixes element-hq/element-web#23515.
* Only show mini avatar uploader in room intro when no avatar yet exists ([\#9479](matrix-org/matrix-react-sdk#9479)). Fixes element-hq/element-web#23552.
* Fix threads fallback incorrectly targets root event ([\#9229](matrix-org/matrix-react-sdk#9229)). Fixes element-hq/element-web#23147.
* Align video call icon with banner text ([\#9460](matrix-org/matrix-react-sdk#9460)).
* Set relations helper when creating event tile context menu ([\#9253](matrix-org/matrix-react-sdk#9253)). Fixes element-hq/element-web#22018.
* Device manager - put client/browser device metadata in correct section ([\#9447](matrix-org/matrix-react-sdk#9447)). Contributed by @kerryarchibald.
* Update the room unread notification counter when the server changes the value without any related read receipt ([\#9438](matrix-org/matrix-react-sdk#9438)).
su-ex added a commit to SchildiChat/element-web that referenced this issue Nov 12, 2022
* Loading threads with server-side assistance ([\element-hq#9356](matrix-org/matrix-react-sdk#9356)). Fixes element-hq#21807, element-hq#21799, element-hq#21911, element-hq#22141, element-hq#22157, element-hq#22641, element-hq#22501 element-hq#22438 and element-hq#21678. Contributed by @justjanne.
* Make thread replies trigger a room list re-ordering ([\element-hq#9510](matrix-org/matrix-react-sdk#9510)). Fixes element-hq#21700.
* Device manager - add extra details to device security and renaming ([\element-hq#9501](matrix-org/matrix-react-sdk#9501)). Contributed by @kerryarchibald.
* Add plain text mode to the wysiwyg composer ([\element-hq#9503](matrix-org/matrix-react-sdk#9503)). Contributed by @florianduros.
* Sliding Sync: improve sort order, show subspace rooms, better tombstoned room handling ([\element-hq#9484](matrix-org/matrix-react-sdk#9484)).
* Device manager - add learn more popups to filtered sessions section ([\element-hq#9497](matrix-org/matrix-react-sdk#9497)). Contributed by @kerryarchibald.
* Show thread notification if thread timeline is closed ([\element-hq#9495](matrix-org/matrix-react-sdk#9495)). Fixes element-hq#23589.
* Add message editing to wysiwyg composer ([\element-hq#9488](matrix-org/matrix-react-sdk#9488)). Contributed by @florianduros.
* Device manager - confirm sign out of other sessions ([\element-hq#9487](matrix-org/matrix-react-sdk#9487)). Contributed by @kerryarchibald.
* Automatically request logs from other users in a call when submitting logs ([\element-hq#9492](matrix-org/matrix-react-sdk#9492)).
* Add thread notification with server assistance (MSC3773) ([\element-hq#9400](matrix-org/matrix-react-sdk#9400)). Fixes element-hq#21114, element-hq#21413, element-hq#21416, element-hq#21433, element-hq#21481, element-hq#21798, element-hq#21823 element-hq#23192 and element-hq#21765.
* Support for login + E2EE set up with QR ([\element-hq#9403](matrix-org/matrix-react-sdk#9403)). Contributed by @hughns.
* Allow pressing Enter to send messages in new composer ([\element-hq#9451](matrix-org/matrix-react-sdk#9451)). Contributed by @andybalaam.
* Fix regressions around media uploads failing and causing soft crashes ([\element-hq#9549](matrix-org/matrix-react-sdk#9549)). Fixes matrix-org/element-web-rageshakes#16831, matrix-org/element-web-rageshakes#16824 matrix-org/element-web-rageshakes#16810 and element-hq#23641.
* Fix /myroomavatar slash command ([\element-hq#9536](matrix-org/matrix-react-sdk#9536)). Fixes matrix-org/synapse#14321.
* Fix config.json failing to load for Jitsi wrapper in non-root deployment ([\element-hq#23577](element-hq#23577)).
* Fix NotificationBadge unsent color ([\element-hq#9522](matrix-org/matrix-react-sdk#9522)). Fixes element-hq#23646.
* Fix room list sorted by recent on app startup ([\element-hq#9515](matrix-org/matrix-react-sdk#9515)). Fixes element-hq#23635.
* Reset custom power selector when blurred on empty ([\element-hq#9508](matrix-org/matrix-react-sdk#9508)). Fixes element-hq#23481.
* Reinstate timeline/redaction callbacks when updating notification state ([\element-hq#9494](matrix-org/matrix-react-sdk#9494)). Fixes element-hq#23554.
* Only render NotificationBadge when needed ([\element-hq#9493](matrix-org/matrix-react-sdk#9493)). Fixes element-hq#23584.
* Fix embedded Element Call screen sharing ([\element-hq#9485](matrix-org/matrix-react-sdk#9485)). Fixes element-hq#23571.
* Send Content-Type: application/json header for integration manager /register API ([\element-hq#9490](matrix-org/matrix-react-sdk#9490)). Fixes element-hq#23580.
* Fix joining calls without audio or video inputs ([\element-hq#9486](matrix-org/matrix-react-sdk#9486)). Fixes element-hq#23511.
* Ensure spaces in the spotlight dialog have rounded square avatars ([\element-hq#9480](matrix-org/matrix-react-sdk#9480)). Fixes element-hq#23515.
* Only show mini avatar uploader in room intro when no avatar yet exists ([\element-hq#9479](matrix-org/matrix-react-sdk#9479)). Fixes element-hq#23552.
* Fix threads fallback incorrectly targets root event ([\element-hq#9229](matrix-org/matrix-react-sdk#9229)). Fixes element-hq#23147.
* Align video call icon with banner text ([\element-hq#9460](matrix-org/matrix-react-sdk#9460)).
* Set relations helper when creating event tile context menu ([\element-hq#9253](matrix-org/matrix-react-sdk#9253)). Fixes element-hq#22018.
* Device manager - put client/browser device metadata in correct section ([\element-hq#9447](matrix-org/matrix-react-sdk#9447)). Contributed by @kerryarchibald.
* Update the room unread notification counter when the server changes the value without any related read receipt ([\element-hq#9438](matrix-org/matrix-react-sdk#9438)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Reactions A-Threads O-Uncommon Most users are unlikely to come across this or unexpected workflow S-Major Severely degrades major functionality or product features, with no satisfactory workaround T-Defect
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants