30e9de13f922cf36738fd2debd4639c18b7bdeff
- Create eventChangeDispatcher.ts: dispatchEventChange + isMeaningfulChange - D-04: description-only edits are silent; meaningful fields = title/dtstartUtc/dtstartDate/allDay/location - D-03: actor excluded via ne() + application-level filter; all subs filtered by userId != actorUserId - D-13: reads only push_subscriptions from MariaDB — no tsdav/Fastmail I/O - syncCalendar: add optional onChanges callback; populate title from VEVENT SUMMARY on every upsert - syncCalendar: pre-upsert SELECT to detect add vs update; track changedFields; prune emits deletes - poller: pass onChanges with actor=cred.userId (external changes from other member) - outboxWorker.triggerTargetedResync: pass onChanges with actor=userId (this-member writes) - All 4 eventChangeDispatcher tests + 14 sync tests GREEN
The file is empty.
Languages
TypeScript
97.3%
JavaScript
1.6%
CSS
0.9%
Dockerfile
0.1%