Replies: 2 comments
-
Yeah, I was testing EteSync for encrypted DAV transport and stumbled upon EteBase which was subsequently mentioned during our conversation. Additional bonus: this should greatly simplify "Android client" as it can defer synchronization to https://github.com/etesync/android. @tasn, do you have any opinion on the outline written by Dustin? |
Beta Was this translation helpful? Give feedback.
0 replies
-
I put in an issue for this in #175. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
@savchenko suggested this (I believe! possibly @dbr?)
https://www.etebase.com/ defines a very generic, end-to-end encrypted sync protocol, with a server implementation and lots of client libraries, including one in Rust.
From a brief read of the docs, I think one way to approach this, while maintaining the detailed OT semantics we've established, would be as follows:
taskchampion.task-history
latestVersion
, which takes the form of an Etebase uid (I can't find more about this than just "it's a string", but that's OK)taskchampion.history-segment
parentVersion
(uid) and the history segmentcoll.latestVersion
parentVersion
-- and it doesn't seem there's a way around that. Probably the best approach is to iterate backward, starting withcoll.latestVersion
. The risk is that if the two histories are unrelated, it will take a long time with many fetches to figure that out. That could be overcome by putting a timestamp on the versions and stopping the search if the returned versions get too old.Note that this would not interoperate with iCalendar TODO items. I think that building a CLI to do so would be neat, but it isn't TaskChampion as the semantics of those TODOs would be totally different.
Thoughts? This actually sounds pretty easy, but that's without having written a line of code yet :)
Beta Was this translation helpful? Give feedback.
All reactions