The cache issue: this caused etag mismatches when sharing a file multiple
times using always_create_new_node=False. Even though we don't use this
option right now, it should be easy to enable.
We can save dirty files, either to disk or the cloud, but I think that's
a bad idea to:
- Share unsaved data to the cloud; users can assume it's saved
to disk and close blender, losing their file.
- Save unsaved data first; this can overwrite a file a user
didn't want to overwrite.
The clearest way is simply to refuse to handle dirty datablocks.