Skip to content

feat: improve UX during repairs#1580

Merged
tyler-dane merged 7 commits intomainfrom
feat/repair-ux
Mar 28, 2026
Merged

feat: improve UX during repairs#1580
tyler-dane merged 7 commits intomainfrom
feat/repair-ux

Conversation

@tyler-dane
Copy link
Copy Markdown
Contributor

@tyler-dane tyler-dane commented Mar 28, 2026

Closes #1576


Note

Medium Risk
Touches Google Calendar sync/repair flows across backend websocket payloads and frontend state/UI, so regressions could affect sync status reporting and user remediation behavior. Changes are guarded by tests but span multiple layers (API error parsing, websocket events, Redux, and UI).

Overview
Improves Google Calendar repair UX by making repair vs incremental sync explicit end-to-end. Websocket IMPORT_GCAL_END payloads now include an operation (REPAIR/INCREMENTAL), and both backend repair/incremental sync emit this consistently.

Adds smarter repair failure handling and messaging. Backend detects Google rate-limit/quota errors to return a friendlier message, and treats revoked/invalid tokens during repair by pruning Google data + emitting GOOGLE_REVOKED instead of a generic repair error.

Updates web UI to reflect active repairs and show actionable feedback. Frontend tracks isRepairing, shows a dedicated "Repairing…" state/spinner, clears repair state on repair completion/revoke, and shows a single de-duped toast for repair failures (but not for incremental errors).

Written by Cursor Bugbot for commit 6c374d8. This will update automatically on new commits. Configure here.

Comment thread packages/web/src/socket/hooks/useGcalSync.ts Outdated
Comment thread packages/web/src/socket/hooks/useGcalSync.ts Outdated
Comment thread packages/web/src/auth/hooks/oauth/useConnectGoogle.ts Outdated
Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is ON. A cloud agent has been kicked off to fix the reported issue. You can view the agent here.

Comment thread packages/web/src/socket/hooks/useGcalSync.ts Outdated
@tyler-dane tyler-dane merged commit f2905c0 into main Mar 28, 2026
9 checks passed
@tyler-dane tyler-dane deleted the feat/repair-ux branch March 28, 2026 12:53
tyler-dane added a commit to Muhammad-Nur-Alamsyah-Anwar/compass that referenced this pull request Mar 30, 2026
* feat: added repair ux

* feat(backend): add repair logic

* fix: address comments

* chore: cleanup backend errors

* refactor: convert state to 'operation' message from webhooks for simplicity

* fix(web): correct error msg

* fix(web): make stop repair conditional
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

User should get UX feedback during repair

1 participant