feat: ability to entirely disable typing and read receipts #821
Labels
No labels
Bug
Cherry-picking
Database
Dependencies
Difficulty
Easy
Difficulty
Hard
Difficulty
Medium
Documentation
Enhancement
Good first issue
Help wanted
Inherited
Matrix/Administration
Matrix/Appservices
Matrix/Auth
Matrix/Client
Matrix/Core
Matrix/Federation
Matrix/MSC
Matrix/Media
Meta
Meta/Packaging
Priority
Blocking
Priority
High
Priority
Low
Security
Status
Confirmed
Status
Duplicate
Status
Invalid
Status
Needs Investigation
Wont fix
old/ci/cd
old/rust
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: continuwuation/continuwuity#821
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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.
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!
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.
oddlid referenced this issue2025-07-08 10:48:30 +00:00
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
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.
Your code looks good.