Suggestion: Checksum task corpus

I'm putting this here rather than in a ticket because I want to get reactions from others to see if it's a good idea.

The incremental update model for local caches makes me nervous. If a client gets out of sync for any reason it will forever remain out of sync. I am thinking that one way out of this would be to supply a checksum function in the API: Return a checksum of all tasks on the server. Then compare it with a checksum of all tasks in the local cache. If they don't match after a sync then they're out of sync and the client knows it should wipe its cache and download everything.

Checksum would have to be done on the concatenation of all fields and notes in each task. Would require careful specification. Comments?

We are already working on this. The danger is that doing the checksum is a very expensive operation for the server to do, and it is likely that the clients may do their checksum wrong and cause unnecessary re-syncing (extra demand on the server). We may have to limit checksums to once a day, or something to prevent too much overhead on the server.