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

Dendrite sends read receipts regardless of user preference #3284

Open
matrixbot opened this issue Nov 1, 2024 · 7 comments
Open

Dendrite sends read receipts regardless of user preference #3284

matrixbot opened this issue Nov 1, 2024 · 7 comments

Comments

@matrixbot
Copy link
Collaborator

This issue was originally created by @necropola at matrix-org/dendrite#3284.

Background information

  • dendrite-0.13.4+317b101
  • postgresql-15.4
  • Running native (no docker) on ArchLinux with nginx as SSL proxy
  • go-1.21.4
  • element-web-v1.11.51

Description

  • Read Receipts are sent even when disabled in element-web User Preferences/Presence.
  • Disabling inbound/outbound presence in dendrite config has no effect on receiving/sending receipts. (I have both disabled on my dendrite server.)
  • I'm getting the Read Receipts from dendrite on another user/server (synapse with same element-web version)

Steps to reproduce

  • Disable sending Read Receipts in element-web client with dendrite HS and read a message the other (synapse) user posted to a chat room
  • Check on the other user (synapse) with show read receipts from other users enabled that they are still getting read receipts from dendrite,
  • Doing the same from the other (synapse) user works, i. e. read receipts are not sent when disabled by user preference.

Basically synapse honors this (element) user preference and dendrite ignores it.

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @S7evinK at matrix-org/dendrite#3284 (comment).

Imo, not a Dendrite issue, more Element Web..
The client knows what to send and what not..

We can't check everything a random client sends us.

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @necropola at matrix-org/dendrite#3284 (comment).

Does the client (element-web) talk to other servers or is it the homeserver (dendrite, synapse, ...)? I thought it's the latter. And somehow synapse knows how to handle the user preference. I think we should, check what's in the matrix protocol specs.

I think, it's about whether dendrite supports MSC2285 or not, but it apparently got a checkmark for supporting it: matrix-org/dendrite#3222

Note, that I am only assuming that element-web (correctly) uses hidden/private read receipts when the user disables the option to send read receipts to other users. I neither know for sure nor am I knowledgable enough (yet), to figure out what's going on exactly.

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @S7evinK at matrix-org/dendrite#3284 (comment).

Right, Element Web does indeed not use m.read.private (Spec) as the receiptType since we don't announce support for Matrix 1.4.

If you really want this now, you can patch
https://github.com/matrix-org/dendrite/blob/fd11e65a9d113839177f9f7a32af328a0292b195/clientapi/routing/routing.go#L132-L153
to include 1.4

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @necropola at matrix-org/dendrite#3284 (comment).

Let's see, if I understand this correctly:

This makes it even harder for dendrite (server) developers to keep up with possible feature creep introduced by other (client and server) developers and gives a lot of power to the people deciding what goes in to a Matrix Protocol Version.

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @S7evinK at matrix-org/dendrite#3284 (comment).

Exactly.

As you've seen, I've created several issues regarding support for specific versions. Thing is, we already claim to have support for 1.1 and 1.2, which in reality we don't.

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @necropola at matrix-org/dendrite#3284 (comment).

Announcing support for v1.4 (and v1.3) by patching my dendrite sources does indeed fix this issue. Though this isn't of course a proper fix. What would be the best way to go forward? Add all features (MSCS) to dendrite to fully support the matrix protocol up to version v1.x with x being what? (synapse-1.98.0 has just announced support for v1.7, v1.8, and v1.9)

  • My golang skills are quite rusty and have never been particularly good.
  • I'm kinda worried about the future of the non-mainstream matrix clients and servers. Seeing how element and synapse are pullling ahead.
  • How does/will the new license and repository impact dendrite? (https://github.com/matrix-org/dendrite/discussions/3281l)
  • matrix-org/synapse has now been forked to element-hq/synapse and has then been archived at its original place.

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @spaetz at matrix-org/dendrite#3284 (comment).

What would be the best way to go forward?

Indeed, the only way right now is to implement the missing features, to support matrix up to 1.4. there are meta issues for each version.

There are ideas floating to announce feature support instead of version support, but that is not what the spec says right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant