You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Speaking with Jarry from AERC today I realise storage for Thread/changes is not needed. We can easily implement this as off today!
Here is how:
GETTING state for threads -> get the state for email ;-)
When I ask for changes since thread state B
THEN I just list Email changes since that date
AND we aggregate the data
addedEmailIDs = union(emailState.added.id)
addedTHreadCandidates = addedEmailIDs.map(this::retrieveThread) // record Thread(id, emailIds)
addedTHread = addedTHreadCandidates.filter(_.emailIds all contained in addedEmailIDs)
changedEmailIDs = union(emailState.added.id ++ emailState.removed.id ) // updated emails never impact threads
updatedThreads = changedEmailIDs.map(this::retrieveThread falback to threadId is messageId) - addedTHread
This will effectively return deleted threads as 'updated' but clients WILL be able to resynchronise this and detect the actual deletion through a Thread/get call.
Implement a ThreadChangeRepository (API / memory / Cassandra)
The text was updated successfully, but these errors were encountered: