-
Notifications
You must be signed in to change notification settings - Fork 12
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
Expected UTDs: Hide device-relative historical UTDs #2313
Comments
Probably requires a fix to element-hq/element-web#27009? Edit: not really. The two are orthogonal. |
This is somewhat related to #2314, and dealing with the race condition might have a similar solution. |
As a first step, we will not hide the events altogether, but display a placeholder. |
Note: we should ensure that it's also hiding historical UTDs in thread view. |
Rough idea for approach here:
More detailed work:
|
Turns out this is useful for element-hq/element-meta#2313.
Turns out this is useful for element-hq/element-meta#2313.
Decision tree for the text to be displayed: flowchart TD
A{Timestamp on the message\npostdates the creation of our device}
A -- Yes --> X
A -- No --> B
B{Is there a backup}
B -- No --> Y
B -- Yes --> C
C{Is the device verified}
C -- No --> Z
C -- Yes --> X
X([Normal UTD error])
Y([History is not available on this device])
Z([You need to verify this device])
|
A freshly logged in session will have access to event in the joined rooms, but not to the keys for the messages as the device didn't exist when the event were sent.
The new device has to go through the verification process in order to get access to the keys and properly display history.
We are talking here about
Device-Relative
history:Currently EIX is hiding such history until the device has access to backup:
Technical Inputs
How to detect when an event is historical to the current device?
Currently EIX is using events
origin_server_ts
of events (isItemInEncryptionHistory). It's comparing the local creation date of the device ( since the unix epoch) to the eventorigin_server_ts
(Timestamp in milliseconds since the unix epoch on originating homeserver when this event was sent.)Some downside on this approach is that if the device local time or server local time is wrong it could messed up things.
Another approach could be to use the API end-point used to get the messages?
It's anyhow hard to see if something is really device relative history, as the process of sending is inherently racy.
There might be some events that are shown were they shouldn't (sent around the same time the device is logged in but before propagated to anyone)
Proposal
If an UTD has not be displayed on screen, it should not be reported to analytics.
Tasks
Tasks
Known possible issues
The text was updated successfully, but these errors were encountered: