- Shipped
- November 15, 2026 at 10:00 AM UTC
- Author
- Kamo
- Commit
- 72f2365
CalendarSyncJob and ContactSyncJob fetched nothing: they bumped ctags and marked every integration IDLE/SUCCESS, which Settings showed as "Last synced". BidirectionalSyncJob marked every journal row SUCCESS without sending anything, and OAuthTokenRefreshJob saved whole stale ContactIntegration entities, undoing status and settings written in between. Now DaemonService only owns the clock: GroupwareSyncJob (every 5 min) POSTs EmailService **************** and daemon.sync.trigger (Sync Now) relays to **************** both with mlos.internal-auth-secret. Token refresh happens inside each EmailService sync.
