-
Notifications
You must be signed in to change notification settings - Fork 389
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
MSC3998: Add timestamp massaging to /join
and /knock
#3998
base: main
Are you sure you want to change the base?
Conversation
/join
and /knock
timestamp massaging/join
and /knock
timestamp massaging
/join
and /knock
timestamp massaging/join
and /knock
timestamp massaging
/join
and /knock
timestamp massaging/join
and /knock
@@ -0,0 +1,98 @@ | |||
# MSC3998: Add timestamp massaging to `/join` and `/knock` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cc @ara4n as the original ?ts
proposer from the old version of MSC2716
cc @tulir as an interested party in timestamp massaging (author of MSC3316 and one of the main consumers of the ?ts
API)
@@ -0,0 +1,98 @@ | |||
# MSC3998: Add timestamp massaging to `/join` and `/knock` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not entirely clear to me why /createRoom
is isolated from these endpoints at the moment. To ease discussion, it might make sense to merge the MSCs into a single place to catch what other endpoints might need this behaviour then break it up (if needed) prior to FCP.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They need timestamp massaging for different reasons and alternatives vary. I think it makes more sense to split them up but it does make sense to keep the bigger picture in mind.
In real-life scenarios, practically, this hasn't mattered much for content because the | ||
DAG is ordered topologically and not by timestamp but is a semantic inconsistency that | ||
is becoming more important with API's like `/timestamp_to_event` which find events by | ||
their `origin_server_ts`. And makes things tricky for the Matrix Public Archive to | ||
navigate history by date seamlessly assuming good intentions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add this context to the MSC: It also mattered to us in real life with historical Gitter rooms where we imported history and ran into these messy client issues:
MSC3998: Add timestamp massaging to
/join?ts=123
and/knock?ts=123
Rendered
Server implementations:
Other related references:
ts
to allow appservices set theorigin_server_ts
for state events synapse#11866/createRoom
/createRoom
timestamp massaging proposed in this MSC and mentions the/join
problem: Add timestamp massaging to/createRoom
synapse#15346