Skip to content

Restore Google sign-in retry state for reject and no-navigation paths - #2050

Closed
groupthinking with Copilot wants to merge 2 commits into
mainfrom
copilot/restore-google-login-retry-state
Closed

groupthinking with Copilot wants to merge 2 commits into
mainfrom
copilot/restore-google-login-retry-state

Conversation

Copilot AI commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Canonical issue

Linked by automation.

Outcome

Google sign-in now reliably recovers to a retryable state when initiation fails or resolves without starting navigation, while preserving the in-flight disabled state when redirect does start.

Scope

  • Included:
    • Login button state handling
      • Added a post-signIn micro-wait before deciding whether navigation started, preventing false retry/error UI during deferred redirect start.
    • Targeted regression coverage
      • Added a test for the deferred-navigation edge case (signIn resolves, navigation begins on next tick) to lock in duplicate-click protection and no-error behavior.
    • Existing retry-path guarantees preserved
      • Reject and no-navigation return paths continue to re-enable the button and show a generic, accessible error message.
  • Explicitly excluded:
    • Callback-path sanitization
    • Public auth-route behavior
    • OAuth provider configuration/credentials
    • Deployment/payment behavior
await signIn('google', { callbackUrl });
await new Promise((resolve) => window.setTimeout(resolve, 0));

if (window.location.href !== initialLocation) {
  return; // keep submitting/disabled state during redirect start
}

Risk

  • Risk level: low
  • Failure mode:
    • If redirect start timing changes again, retry/error state could regress on edge timing boundaries.
  • Rollback:
    • Revert apps/web/src/app/login/GoogleSignInButton.tsx and apps/web/src/app/login/GoogleSignInButton.test.tsx to previous revision.

Verification

Head SHA: a627bb2f3f997a5b38cf8fdb960429170eeeaf27

  • Focused checks executed:

    • npm --workspace=apps/web run test -- src/app/login/GoogleSignInButton.test.tsx src/lib/__tests__/auth-paths.test.ts src/lib/__tests__/auth-config-source.test.ts src/__tests__/proxy-auth-gate.test.ts
    • npm --workspace=apps/web run lint
    • npm --workspace=apps/web run type-check
    • npm --workspace=apps/web run build
  • Focused tests

  • Required CI

  • Review threads resolved

Production evidence

Not applicable for this change set (UI state + unit/regression coverage; no runtime config or deployment behavior change).

Agent handoff

  • One canonical issue is linked
  • No competing PR implements the same issue
  • Acceptance criteria are satisfied
  • Required checks pass on the current head
  • Human decision is requested only for product, security, irreversible infrastructure, or production approval

@coderabbitai

coderabbitai Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Ignore keyword(s) in the title.

⛔ Ignored keywords (3)
  • WIP
  • DO NOT MERGE
  • [skip ci]

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: groupthinking/EventRelay/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 40c67f6b-faaa-46b8-b383-92e4bc2cdd09

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI linked an issue Sep 18, 2026 that may be closed by this pull request
7 tasks
Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com>
Copilot AI changed the title [WIP] Restore Google login retry state Restore Google sign-in retry state for reject and no-navigation paths Sep 18, 2026
@kk-agent

Copy link
Copy Markdown
Collaborator

AXIOM keep-moving: closing as duplicate of open auth retry work (#1971/#1995). Prefer single survivor path.

@kk-agent kk-agent closed this Sep 18, 2026
@vercel

vercel Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
v0-uvai Ready Ready Preview, v0 Sep 18, 2026 10:04pm UTC

@github-actions github-actions Bot added javascript Pull requests that update javascript code tests labels Sep 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔍 PR Validation

⚠️ PR title should follow conventional commits format

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

javascript Pull requests that update javascript code tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Agent] Restore Google login retry state

3 participants