mirror of
https://github.com/bulwarkmail/webmail.git
synced 2026-11-05 00:14:18 +00:00
Review of the calendar store found writes that went missing, went out wrong, or appeared twice. - Writes with different scheduling flags stay separate and go out in order. Merging them collapsed the two steps of an occurrence change, so attendees who had answered got no mail, and "don't notify" went out to everyone with a later RSVP. - An edit made after a create's lost response is sent as an update. An import of a uid the server has updates what differs. - `createCalendarEvent`, `batchCreateCalendarEvents` and `createCalendarTask` choose a uid before the first send, so a lost answer online doesn't duplicate. - The client resolves stand-in ids before the network, which covers an open dialog once the server is back. - A stale whole `recurrenceOverrides` map no longer erases overrides. - A 4xx refuses that write and the queue goes on. `serverFail`, `rateLimit` or an answer with no verdict retry instead of deleting. - "This and all following" is refused offline with a clear message. - A full list only drops what the server says it doesn't have. Sync adopts a stand-in by uid. Reminder keys survive a stand-in becoming real. Accounts the session no longer lists are forgotten. Changed tests: the one asserting a sticky scheduling flag is gone, it locked in the bug. Reminder keys now use the account and uid. Two flush assertions drop `sent: 1`, because sync reads a lost write back first. The two-account id test uses a listed account, as unlisted ones are removed.