This repository was archived by the owner on Apr 26, 2024. It is now read-only.
Track notification counts per thread (implement MSC3773) (redo)#13776
Merged
Track notification counts per thread (implement MSC3773) (redo)#13776
Conversation
ab4004d to
d3918d8
Compare
This was referenced Sep 12, 2022
16b1f7f to
fc8e0fa
Compare
d3918d8 to
a5a11c7
Compare
clokep
commented
Sep 13, 2022
clokep
commented
Sep 13, 2022
fad9dc0 to
b00b4c1
Compare
b00b4c1 to
0a52fbf
Compare
0a52fbf to
62aa85b
Compare
Member
Author
|
@erikjohnston I set you as the reviewer since most of this PR is the same as #13181, which you had previously reviewed. You can push it back to the group if you'd like. |
clokep
commented
Sep 19, 2022
Comment on lines
+90
to
+92
| # The threads_id column must exist for event_push_actions, event_push_summary, | ||
| # receipts_linearized, and receipts_graph. | ||
| 73 |
Member
Author
There was a problem hiding this comment.
We might be able to defer actually bumping the minimum schema a bit, but results would be inconsistent if you rolled back (you'd end up with nulls in some places which would make the joins not work). Not sure if that's more desirable though.
Member
Author
There was a problem hiding this comment.
We discussed this a bit and think it is OK.
Note that schema 73 was introduced in v1.68.0rc1.
Member
Author
|
@erikjohnston I think this is ready for another review! |
Member
Author
|
Annoyingly I think we want to wait another version before merging? Will ask folks. |
4 tasks
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))
This was referenced Mar 29, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Track notification counts on a per-thread basis, implementing MSC3773.
The overall design of this is to add a
thread_idcolumn to theevent_push_actions(+event_push_actions_staging) andevent_push_summarytables. This allows the results to be segmented by the thread (by storing either the root event ID in thethread_idcolumn or the special value"main").When retrieving counts of notifications we can then segment based on the thread, this is opt-in for the client by providing a sync flag. In the case the client doesn't want separate threads we simply sum across all threads + the main timeline.
The summarization code also needs to be updated to be per thread, instead of just per room.
Please see MSC3773 for a description of the API changes.
Part of #12550
This is essentially a rebase of #13181 on top of #13753 (see #13181 (comment) for the rationale why it was separated).
We want this to land in Synapse v1.69.0 the earliest since it forces an updated schema which is landing in v1.68.0.