When adding a guest to an event that already had guests, creating the calendar
invitation draft on mobile could throw an exception.
The issue occurred because each draft email attached an .ics file by creating
a temp file, uploading it, and then deleting it. Multiple drafts ran in
parallel, causing two drafts to attempt deleting the same file — the second one
always failing.
This commit fixes the problem by deferring file deletion until after the promise
completes and ensuring these operations run sequentially (invite, cancellation
and update of an event).
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>
Refactor our instance deserialization/serialization pipeline, both on
TypeScript and on Rust [sdk] to use typeId and attributeIds instead of
typeNames and attributeNames. We furthermore ignore cardinalities
on associations until the instance layer and always
store associations as arrays. This commit introduces **eventual
consistency** on the client, i.e. we are from now on always storing data
in the newest schema format (activeApplicationVersionsForWritingSum)
which ensures that all data is already available on the client after
updating the client to a newer version. This removes the need for
offline migrations on the client and also removes backward migrations
on the server. Furthermore, the server model types are now available
on the client, retrievable through the ApplicationTypesFacade. This is
our first step towards FastSync.
Co-authored-by: nig <nig@tutao.de>
Co-authored-by: abp <abp@tutao.de>
Co-authored-by: jomapp <17314077+jomapp@users.noreply.github.com>
Co-authored-by: map <mpfau@users.noreply.github.com>
Co-authored-by: sug <sug@tutao.de>
Co-authored-by: Kinan <104761667+kibibytium@users.noreply.github.com>
This commit moves pieces of code that are used by both apps
and removes the Contact synchronization part from Calendar
since the app doesn't offer these functions. Also generates a
common xcodegen yml file to be shared between mail and calendar.