refactor: clarify google sync ownership#1711
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR continues the Google sync refactor by making the backend ownership easier to read from the file tree and service names. The main goal is to make it obvious which code owns Google auth, Google Calendar sync/import/repair, and Google webhook watches.
packages/backend/src/sync/services/watch.packages/backend/src/sync/services/google-calendar-sync.repairGoogleCalendarSyncfor forced recovery andstartGoogleCalendarSyncIfNeededfor metadata-aware startup.The public behavior is intended to stay the same; this is a readability and maintainability pass over the existing split. Google API field names like
channelIdremain unchanged where they are part of Google's watch protocol.Why
The branch had already split one large sync service into smaller modules, but the resulting boundaries were still hard to follow: auth owned a Calendar client, "channel" meant a Google watch, and "lifecycle restart" covered both normal startup and forced repair. This PR makes those concepts line up with the domain language we actually use when debugging the system.
Validation
bun run type-checkgit diff --checkNote: full
bun run lintis still blocked by the existing repo-wide lint backlog, not by this change.Review Notes
Suggested review focus:
repairGoogleCalendarSyncvs.startGoogleCalendarSyncIfNeededcommunicates the intended behavior clearly.