Repository navigation
Commit 54108d8
committed
connector-apple-calendar: event-processing parity with google
Port four event-processing improvements from google-calendar to
Apple Calendar:
- Batched saveLinks(): collapse per-event saveLink RPCs into one
per page via a linksBySource Map. Heavy recurring meetings with
many exception instances now write as a single link with N
occurrences instead of N+1 separate saves.
- Order-independent pending-occurrence drain + seen_master
tracking: end-of-batch drain merges pending occurrences into
masters present in the batch regardless of arrival order;
full-pass terminal orphan flush forwards leftover pendings
whose master was seen this pass (runtime upserts onto existing
master) and silently drops those whose master never appeared
(deleted upstream). Replaces the wholesale clear-all-pendings
at finishSync that silently dropped legitimate cross-page
cancellations.
- Two-pass quick + full initial sync: quick pass with now->+1y
front-loads upcoming meetings; full pass walks the 2-year
backfill range. Both share one sync lock; phase carried in
SyncState.
- Hash-keyed description notes: key as description-<sha256-8>
so edits produce new notes (prior versions preserved as
history) instead of overwriting in place. Apple ICS CREATED
is per-spec stable across edits, so firstSeenAt isn't needed
here (unlike Outlook/Google).1 parent d5eb836 commit 54108d8
1 file changed
Lines changed: 338 additions & 78 deletions
0 commit comments