feat: ability to entirely disable typing and read receipts #821

Closed
opened 2025-05-08 00:04:18 +00:00 by nex · 5 comments
Owner

As discussed in the main room, disabling read receipts and typing indicators locally may improve user privacy, especially on shared servers.

This could be as simple as turning public read receipts (not private ones) requests & typing requests into no-op functions when a relevant config option is enabled.

As [discussed in the main room](https://matrix.to/#/!main-1:continuwuity.org/$qisBnlKFReyjVf969WHyRBmQibFFyIquFBDFExP8ev4?via=nexy7574.co.uk&via=explodie.org&via=matrix.org), disabling read receipts and typing indicators locally may improve user privacy, especially on shared servers. This could be as simple as turning public read receipts (not private ones) requests & typing requests into no-op functions when a relevant config option is enabled.
nex added the
Enhancement
Good first issue
Matrix/Client
labels 2025-05-08 00:04:18 +00:00
Jade added the
Difficulty
Easy
label 2025-06-22 23:05:22 +00:00
Owner

This issue has been posted to This Week in Rust's Call for Participation. If you're new to the project, check out the contributing guide. Welcome!

This issue has been posted to This Week in Rust's Call for Participation. If you're new to the project, check out the [contributing guide](https://continuwuity.org/contributing). Welcome!
Contributor

I'd like to try to dip my toes into this.
But I just want to make sure I've understood the code correctly this far: There's no handling of different directions (incoming, outgoing) for these events locally, like there is for the federated versions, right? Just on/off?

Also, do you want this to disable local presence? Both create_typing_event_route() and set_read_marker_route() updates the local presence, so I can either bail out early and don't update presence if local typing and read receipts are disabled, or sprinkle the functions with ifs to make presence still work.

I'd like to try to dip my toes into this. But I just want to make sure I've understood the code correctly this far: There's no handling of different directions (incoming, outgoing) for these events locally, like there is for the federated versions, right? Just on/off? Also, do you want this to disable local presence? Both create_typing_event_route() and set_read_marker_route() updates the local presence, so I can either bail out early and don't update presence if local typing and read receipts are disabled, or sprinkle the functions with ifs to make presence still work.
Owner

It probably makes sense to disable the endpoints entirely, presence is handled by the sync loop anyway

And yeah it doesn't really make sense to have directions for local features - it's not really going anywhere, disabling one way would it be the same as disabling it entirely

It probably makes sense to disable the endpoints entirely, presence is handled by the sync loop anyway And yeah it doesn't really make sense to have directions for local features - it's not really going anywhere, disabling one way would it be the same as disabling it entirely
Contributor

I already made a PR before I saw your comment, where I didn't change the calls to update presence. Please have a look at it, and if you think it's better to just bail out early, I'll update the code and doc comments.

I already made a PR before I saw your comment, where I didn't change the calls to update presence. Please have a look at it, and if you think it's better to just bail out early, I'll update the code and doc comments.
Owner

Your code looks good.

Your code looks good.
nex closed this issue 2025-07-08 13:25:42 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: continuwuation/continuwuity#821
No description provided.