Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Accept receipts on events related to the root event. #14174

Merged
merged 9 commits into from
Oct 14, 2022

Conversation

clokep
Copy link
Contributor

@clokep clokep commented Oct 13, 2022

See the discussion in #14168, this is a minor spec-compliance fix for how clients expect receipts to work.

Builds on #14163

More tests at matrix-org/complement#501.

@clokep clokep changed the base branch from develop to clokep/thread-cache-clear October 13, 2022 17:03
@clokep clokep changed the base branch from clokep/thread-cache-clear to develop October 13, 2022 17:03
@clokep clokep changed the base branch from develop to clokep/thread-cache-clear October 13, 2022 20:00
@clokep clokep marked this pull request as ready for review October 13, 2022 20:01
@clokep clokep requested a review from a team as a code owner October 13, 2022 20:01
Base automatically changed from clokep/thread-cache-clear to develop October 14, 2022 11:10
Copy link
Contributor

@DMRobertson DMRobertson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry Patrick, I have erred on the side of caution and pedantry here. I hope you find my comments useful rather than irritating.

synapse/rest/client/receipts.py Outdated Show resolved Hide resolved
synapse/rest/client/receipts.py Outdated Show resolved Hide resolved
synapse/rest/client/receipts.py Show resolved Hide resolved
synapse/rest/client/receipts.py Outdated Show resolved Hide resolved
synapse/rest/client/receipts.py Outdated Show resolved Hide resolved
synapse/storage/databases/main/relations.py Outdated Show resolved Hide resolved
synapse/storage/databases/main/relations.py Outdated Show resolved Hide resolved
tests/storage/test_relations.py Outdated Show resolved Hide resolved
synapse/rest/client/receipts.py Outdated Show resolved Hide resolved
synapse/storage/databases/main/relations.py Show resolved Hide resolved
Co-authored-by: David Robertson <davidr@element.io>
Copy link
Contributor

@DMRobertson DMRobertson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for bearing with me---I understand the threads data model (at the protocol level) much better now.

I think this looks good. The only outstanding comments are me fussing over phrasing. I've made some wording suggestions, but I'm happy to leave them to your discretion!

@clokep clokep enabled auto-merge (squash) October 14, 2022 17:32
@clokep clokep merged commit d1bdecc into develop Oct 14, 2022
@clokep clokep deleted the clokep/thread-root-rels branch October 14, 2022 18:05
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Oct 29, 2022
Upstream changes:

Synapse 1.70.1 (2022-10-28)
===========================

(bugfixes)


Synapse 1.70.0 (2022-10-26)
===========================

Features
--------

- Support for
  [MSC3856](matrix-org/matrix-spec-proposals#3856):
  threads list
  API. ([\#13394](matrix-org/synapse#13394),
  [\#14171](matrix-org/synapse#14171),
  [\#14175](matrix-org/synapse#14175))

- Support for thread-specific notifications & receipts
  ([MSC3771](matrix-org/matrix-spec-proposals#3771)
  and
  [MSC3773](matrix-org/matrix-spec-proposals#3773)). ([\#13776](matrix-org/synapse#13776),
  [\#13824](matrix-org/synapse#13824),
  [\#13877](matrix-org/synapse#13877),
  [\#13878](matrix-org/synapse#13878),
  [\#14050](matrix-org/synapse#14050),
  [\#14140](matrix-org/synapse#14140),
  [\#14159](matrix-org/synapse#14159),
  [\#14163](matrix-org/synapse#14163),
  [\#14174](matrix-org/synapse#14174),
  [\#14222](matrix-org/synapse#14222))

- Stop fetching missing `prev_events` after we already know their
  signature is
  invalid. ([\#13816](matrix-org/synapse#13816))

- Send application service access tokens as a header (and query
  parameter). Implements
  [MSC2832](matrix-org/matrix-spec-proposals#2832). ([\#13996](matrix-org/synapse#13996))

- Ignore server ACL changes when generating pushes. Implements
  [MSC3786](matrix-org/matrix-spec-proposals#3786). ([\#13997](matrix-org/synapse#13997))

- Experimental support for redirecting to an implementation of a
  [MSC3886](matrix-org/matrix-spec-proposals#3886)
  HTTP rendezvous
  service. ([\#14018](matrix-org/synapse#14018))

- The `/relations` endpoint can now be used on
  workers. ([\#14028](matrix-org/synapse#14028))

- Advertise support for Matrix 1.3 and 1.4 on
  `/_matrix/client/versions`. ([\#14032](matrix-org/synapse#14032),
  [\#14184](matrix-org/synapse#14184))

- Improve validation of request bodies for the [Device
  Management](https://spec.matrix.org/v1.4/client-server-api/#device-management)
  and [MSC2697 Device
  Dehyrdation](matrix-org/matrix-spec-proposals#2697)
  client-server API
  endpoints. ([\#14054](matrix-org/synapse#14054))

- Experimental support for
  [MSC3874](matrix-org/matrix-spec-proposals#3874):
  Filtering threads from the `/messages`
  endpoint. ([\#14148](matrix-org/synapse#14148))

- Improve the validation of the following PUT endpoints:
  [`/directory/room/{roomAlias}`](https://spec.matrix.org/v1.4/client-server-api/#put_matrixclientv3directoryroomroomalias),
  [`/directory/list/room/{roomId}`](https://spec.matrix.org/v1.4/client-server-api/#put_matrixclientv3directorylistroomroomid)
  and
  [`/directory/list/appservice/{networkId}/{roomId}`](https://spec.matrix.org/v1.4/application-service-api/#put_matrixclientv3directorylistappservicenetworkidroomid). ([\#14179](matrix-org/synapse#14179))


Deprecations and Removals
-------------------------

- Remove the experimental implementation of
  [MSC3772](matrix-org/matrix-spec-proposals#3772). ([\#14094](matrix-org/synapse#14094))

- Remove the unstable identifier for
  [MSC3715](matrix-org/matrix-spec-proposals#3715). ([\#14106](matrix-org/synapse#14106),
  [\#14146](matrix-org/synapse#14146))
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Events related to the root event of a thread cannot have read receipts sent on them
2 participants