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

origin_client_ts to distinguish composed v. sent timestamps #2043

Open
ara4n opened this issue Dec 28, 2024 · 0 comments
Open

origin_client_ts to distinguish composed v. sent timestamps #2043

ara4n opened this issue Dec 28, 2024 · 0 comments
Labels
improvement An idea/future MSC for the spec

Comments

@ara4n
Copy link
Member

ara4n commented Dec 28, 2024

Suggestion
The intention of timestamp fields on events was always to distinguish timings clearly across the lifecycle of a message being sent: when the send button was hit (origin_client_ts); when it was received by the server (origin_server_ts); and possibly unsigned data for when it was delivered to the destination server (dest_server_ts); when it was received by a given destination client (dest_client_ts).

Historically, clients tended not to automatically flush their send queues, and so the user had to consciously interact when flushing the queue - meaning they could remove stale messages and psychologically were effectively "hitting send again" in order to send them. Therefore origin_server_ts was an adequate timestamp for the sent msgs.

Nowadays however, clients like matrix-rust-sdk automatically flush send queues in the background, meaning that clients send messages with arbitrary origin_server_ts which don't reflect when the user consciously intended a message to be sent. Therefore, we need to (at last) introduce origin_client_ts to distinguish the two, letting clients display timestamps based on when a message was created rather than when it happened to get received by the server.

See element-hq/element-meta#2678 for more details.

@ara4n ara4n added the improvement An idea/future MSC for the spec label Dec 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement An idea/future MSC for the spec
Projects
None yet
Development

No branches or pull requests

1 participant