matrix-org / matrix-org/matrix-rust-sdk

unread counts: add support for threaded receipts

Open
#3,055 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-Event cache A-Read receipts
Dominant language
Rust
Stars
2.3k
Forks
500
Avg merge
1d 16h
Merged PRs (30d)
106

Description

The PR https://github.com/matrix-org/matrix-rust-sdk/pull/3054 fixed a bug with implicit receipts where:
1. You receive a mention in a thread.
2. You reply to that thread in a different client (Element Web in my case).
3. You open the room in EX and the badge doesn't get cleared.

However, if we want to get the behaviour 100% right I believe the badge should be cleared as soon as the other client opens the thread (in fact, its own unread status is cleared in that client).

So the problem I see now is:

1. You receive a mention in a thread.
2. You open it in another client (EW?). The unread gets removed in this client.
3. The unread marker and the mention badge are still present in the EX client.

Opening the room in EX fixes the stuck unread and mention indicators, but it shouldn't be needed.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading PR 3054 and tracing how threaded receipts, unread markers, and mention badges are handled across clients. Reproduce the sequence described with Element Web and EX; done means EX clears the unread marker and mention badge when another client opens the thread, without requiring the room to be opened.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.