Skip to content

Add dedicated /auth sign-in page with callback routing - #139

Merged
soorya-u merged 14 commits into
mainfrom
feat/auth-page-multi-provider-134
Aug 2, 2026
Merged

Add dedicated /auth sign-in page with callback routing#139
soorya-u merged 14 commits into
mainfrom
feat/auth-page-multi-provider-134

Conversation

@soorya-u

@soorya-u soorya-u commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a dedicated /auth route that presents GitHub, Google, and Magic Link sign-in methods, with Email+Password gated behind VITE_IS_DEV_MODE
  • route homepage sign-in and signed-out /auth/device through /auth using validated callbackUrl handling so successful sign-in returns users to /workers or back to device approval with user_code preserved
  • configure server-side Google + Magic Link auth (disableSignUp: false) and add Resend-backed magic-link email delivery with focused web/server tests for callback, visibility, and magic-link request flow

Test plan

  • bun --filter @cyrus/web check:types
  • bun --filter @cyrus/server check:types
  • bunx vitest run --project @cyrus/web
  • bunx vitest run --project @cyrus/server

Made with Cursor

Summary by CodeRabbit

  • New Features

    • Added email magic-link sign-in with branded HTML and plain-text emails.
    • Added Google sign-in support alongside existing authentication options.
    • Introduced refreshed authentication pages, social sign-in controls, and password visibility support.
    • Added animated visual elements to the sign-in experience.
    • Added dedicated magic-link and magic-link confirmation pages.
  • Bug Fixes

    • Improved callback handling after sign-in, including two-factor and device authorization flows.
    • Preserved destination URLs when starting authentication from protected pages.

soorya-u and others added 2 commits July 28, 2026 15:22
Route homepage and device authorization through /auth, add Google and magic-link providers with Resend-backed delivery, and cover callback/dev-mode behavior with web/server tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
Verify the sign-in/magic-link endpoint accepts requests without relying on intercepting internal plugin redirects or external Resend calls.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel

vercel Bot commented Jul 28, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
cyrus Ready Ready Preview Aug 2, 2026 5:47am

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@soorya-u, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 40 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b53b99ba-0df6-4936-ad96-0f2d55f7daed

📥 Commits

Reviewing files that changed from the base of the PR and between e0ea013 and 5ac8d0e.

📒 Files selected for processing (4)
  • .github/workflows/deploy.yml
  • apps/web/src/components/auth/sign-in.tsx
  • apps/web/src/components/login-form.tsx
  • apps/web/src/components/ui/orbiting-circles.tsx
📝 Walkthrough

Walkthrough

This PR adds Google OAuth and Resend-backed magic links on the server. The web app adds callback-safe authentication routes, password and magic-link forms, device authorization guards, two-factor method persistence, and updated TanStack Router wiring.

Changes

Authentication overhaul

Layer / File(s) Summary
Server OAuth and magic-link delivery
apps/server/src/auth/..., apps/server/src/emails/..., apps/server/src/config/..., apps/server/.env.example, tooling/test/mocks/...
The server configures Google OAuth and the Better Auth magic-link plugin. Resend renders and sends HTML and text email content. Environment schemas, worker types, dependencies, and server tests include the new settings and flow.
Callback and two-factor continuation
apps/web/src/utils/..., apps/web/src/hooks/auth/..., apps/web/src/auth/..., apps/web/src/stores/..., apps/web/src/routes/auth/device.tsx
Callback paths are validated and normalized. Sign-in continuation resolves callback targets, persists two-factor methods in session storage, and redirects unauthenticated device requests to /auth.
Auth UI and magic-link routes
apps/web/src/components/auth/..., apps/web/src/components/login-form.tsx, apps/web/src/routes/auth/..., apps/web/src/components/ui/..., apps/web/src/index.css
The web app adds password and magic-link form flows, callback propagation, magic-link plugin views, auth routes, provider styling, and animated login visuals.
Router and application wiring
apps/web/src/main.tsx, apps/web/src/lib/auth/..., apps/web/src/routeTree.gen.ts, apps/web/src/lib/env.ts, knip.json, package.json, apps/web/package.json, turbo.json
The auth client and provider configuration register magic links and Google. Generated route types include the new auth routes. Router, environment, package catalog, Knip, and Turborepo configuration are updated.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related issues

Possibly related PRs

  • soorya-u/cyrus#5 — Both changes modify the device authentication flow and Better Auth configuration.
  • soorya-u/cyrus#123 — Both changes modify apps/server/src/auth/options.ts and authentication configuration.
  • soorya-u/cyrus#136 — Both changes modify Better Auth UI components and the magic-link flow.

Sequence Diagram(s)

sequenceDiagram
  participant Browser
  participant AuthRoute
  participant LoginForm
  participant BetterAuth
  participant Resend
  Browser->>AuthRoute: Open auth route with callbackUrl
  AuthRoute->>LoginForm: Pass normalized callback URL
  LoginForm->>BetterAuth: Submit password or magic-link sign-in
  BetterAuth->>Resend: Send magic-link email
  BetterAuth-->>Browser: Continue to callback or two-factor route
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 21.88% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the primary change: adding a dedicated /auth sign-in page with callback routing.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/auth-page-multi-provider-134

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.

soorya-u and others added 2 commits July 28, 2026 16:02
Consolidate Resend + MagicLinkEmail rendering under apps/server/src/emails, and align react/@better-auth-ui/react versions via workspace catalogs.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep core and react on the same cataloged version so web auth UI imports stay compatible.

Co-authored-by: Cursor <cursoragent@cursor.com>
Refresh wrangler-generated bindings for Google/Resend secrets, and pass Better Auth's magic-link callback args straight through to the email sender.

Co-authored-by: Cursor <cursoragent@cursor.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/server/src/emails/magic-email.ts`:
- Around line 60-64: Update the email-sending flow around resend.emails.send to
capture its { data, error } result and explicitly propagate API-level failures
through the existing magic-link request path. Preserve the current send
arguments and successful behavior, but ensure a returned error is surfaced
instead of treating the request as successful.

In `@apps/web/src/auth/callback-url.ts`:
- Around line 8-16: Update toAbsoluteCallbackUrl to reject callback paths
containing backslashes before constructing the URL, while preserving the
existing same-origin relative-path validation from the callback URL flow. Ensure
backslash-based inputs cannot resolve to an off-origin URL.

In `@apps/web/src/auth/post-sign-in-redirect.ts`:
- Around line 7-9: Update the callback handling around normalizeCallbackPath to
reject any callbackUrl containing backslashes before normalization, and validate
absolute redirect URLs remain same-origin before returning them; otherwise use
defaultRedirect. Add a regression test covering a backslash-based bypass such as
/\\evil.example and preserve valid same-origin callback behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 57b0e313-544b-47e9-9c8f-30a8c1344fbe

📥 Commits

Reviewing files that changed from the base of the PR and between b65d3bc and 405d3b2.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (27)
  • apps/server/.env.example
  • apps/server/package.json
  • apps/server/src/auth/index.test.ts
  • apps/server/src/auth/options.ts
  • apps/server/src/config/env.ts
  • apps/server/src/emails/index.ts
  • apps/server/src/emails/magic-email.test.ts
  • apps/server/src/emails/magic-email.ts
  • apps/server/src/worker-configuration.d.ts
  • apps/web/package.json
  • apps/web/src/auth/auth-flows.test.ts
  • apps/web/src/auth/callback-url.ts
  • apps/web/src/auth/device-callback.ts
  • apps/web/src/auth/post-sign-in-redirect.ts
  • apps/web/src/auth/use-sign-in-continuation.ts
  • apps/web/src/components/auth/magic-link-button.tsx
  • apps/web/src/components/auth/magic-link.tsx
  • apps/web/src/components/auth/provider-buttons.tsx
  • apps/web/src/components/auth/sign-in.tsx
  • apps/web/src/components/home/hero.tsx
  • apps/web/src/lib/env.ts
  • apps/web/src/routeTree.gen.ts
  • apps/web/src/routes/auth/device.tsx
  • apps/web/src/routes/auth/index.tsx
  • apps/web/src/routes/auth/magic-link.tsx
  • package.json
  • tooling/test/mocks/auth-env.ts

Comment thread apps/server/src/emails/magic-email.ts Outdated
Comment thread apps/web/src/auth/callback-url.ts Outdated
Comment thread apps/web/src/auth/post-sign-in-redirect.ts Outdated
soorya-u and others added 2 commits July 28, 2026 18:01
Split auth helpers into hooks/stores/utils/lib and drop local copies of isTwoFactorRedirect and parseTwoFactorMethods from @better-auth-ui/core.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/web/src/utils/callback.ts`:
- Around line 4-5: Update the callback path validation near
normalizeCallbackPath to reject paths containing backslashes before constructing
the callback link, while preserving the existing slash and double-slash checks.
Add coverage verifying normalizeCallbackPath("/\\evil.example") returns null.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: dcb215cd-438f-41e8-93bb-469338d6f54d

📥 Commits

Reviewing files that changed from the base of the PR and between 405d3b2 and 9601ecc.

📒 Files selected for processing (25)
  • apps/server/src/auth/options.ts
  • apps/server/src/emails/magic-email.test.ts
  • apps/server/src/emails/magic-email.ts
  • apps/server/src/worker-configuration.d.ts
  • apps/web/src/auth/two-factor-methods.ts
  • apps/web/src/auth/use-sign-in-continuation.ts
  • apps/web/src/components/auth/magic-link-button.tsx
  • apps/web/src/components/auth/magic-link-sent.tsx
  • apps/web/src/components/auth/magic-link.tsx
  • apps/web/src/components/auth/sign-in.test.ts
  • apps/web/src/components/auth/sign-in.tsx
  • apps/web/src/constants/storage-keys.ts
  • apps/web/src/hooks/auth/use-sign-in-continuation.ts
  • apps/web/src/lib/auth/index.ts
  • apps/web/src/lib/auth/plugins/auth-plugin.ts
  • apps/web/src/lib/auth/plugins/magic-link-plugin.ts
  • apps/web/src/routeTree.gen.ts
  • apps/web/src/routes/auth/device.tsx
  • apps/web/src/routes/auth/index.tsx
  • apps/web/src/routes/auth/magic-link.tsx
  • apps/web/src/stores/stores.test.ts
  • apps/web/src/stores/two-factor-methods.ts
  • apps/web/src/utils/callback.test.ts
  • apps/web/src/utils/callback.ts
  • knip.json
💤 Files with no reviewable changes (2)
  • apps/web/src/auth/use-sign-in-continuation.ts
  • apps/web/src/auth/two-factor-methods.ts
🚧 Files skipped from review as they are similar to previous changes (8)
  • apps/web/src/components/auth/magic-link-button.tsx
  • apps/web/src/routes/auth/magic-link.tsx
  • apps/server/src/worker-configuration.d.ts
  • apps/server/src/emails/magic-email.test.ts
  • apps/web/src/routes/auth/device.tsx
  • apps/web/src/components/auth/magic-link.tsx
  • apps/web/src/components/auth/sign-in.tsx
  • apps/web/src/routes/auth/index.tsx

Comment thread apps/web/src/utils/callback.ts Outdated
@soorya-u soorya-u linked an issue Jul 29, 2026 that may be closed by this pull request
10 tasks
soorya-u and others added 2 commits July 29, 2026 19:32
Resend returns { error } instead of throwing, and WHATWG URL parsing treats /\evil as an authority bypass.

Co-authored-by: Cursor <cursoragent@cursor.com>
Propagating Resend API errors made the previous silent invalid-key path return 500.

Co-authored-by: Cursor <cursoragent@cursor.com>
soorya-u and others added 3 commits July 29, 2026 20:07
Keep both the auth index route and settings accounts route in the generated route tree.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ling.

Register magic-link/social providers on AuthProvider, use Magic Link as the production /auth surface, align primary CTAs with the hero, and tighten auth card layout.

Co-authored-by: Cursor <cursoragent@cursor.com>
Combine password and magic-link flows into one black card layout with FlickeringGrid behind OrbitingCircles, and lift provider buttons so they read against the dark surface.

Co-authored-by: Cursor <cursoragent@cursor.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/web/src/routes/auth/index.tsx (1)

15-22: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Preserve callbackUrl through password sign-in continuations.

Pass the route callbackUrl prop through to password flows or update the shared route query in handlePasswordSubmit; otherwise LoginForm.callbackUrl is passed to social/magic-link only, while useSignInContinuation falls back to redirectTo.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/web/src/routes/auth/index.tsx` around lines 15 - 22, Update AuthPage and
the password sign-in flow so the normalized callbackUrl remains available during
password continuations, either by passing it through the relevant password-flow
props or by updating the shared route query in handlePasswordSubmit. Ensure
useSignInContinuation receives the callback URL rather than falling back to
redirectTo, while preserving existing social and magic-link behavior.
🧹 Nitpick comments (3)
apps/web/src/components/ui/orbiting-circles.tsx (1)

33-48: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Hide the decorative orbit path from assistive technology.

The <title> element at Line 39 is announced by screen readers as "Orbit path". The circle is decorative. Add aria-hidden="true" to the svg and remove the <title>.

🔧 Proposed fix
 				<svg
+					aria-hidden="true"
 					className="pointer-events-none absolute inset-0 size-full"
 					version="1.1"
 					xmlns="http://www.w3.org/2000/svg"
 				>
-					<title>Orbit path</title>
 					<circle
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/web/src/components/ui/orbiting-circles.tsx` around lines 33 - 48, Add
aria-hidden="true" to the decorative SVG rendered by the path conditional and
remove its title element so assistive technology ignores the orbit path; leave
the circle’s visual rendering unchanged.
apps/web/src/components/ui/flickering-grid.tsx (1)

129-134: 🎯 Functional Correctness | 🔵 Trivial | 💤 Low value

Initialize lastTime on the first frame.

lastTime starts at 0. On the first animate call, time is the timestamp since page load. deltaTime therefore becomes that whole elapsed time in seconds. flickerChance * deltaTime then exceeds 1, so every square is re-randomized on the first frame. The effect is a single visible flash. It corrects itself on the next frame.

🔧 Proposed fix
-			let lastTime = 0;
+			let lastTime: number | null = null;
 			const animate = (time: number) => {
 				if (!(isInView && gridParams)) return;
 
-				const deltaTime = (time - lastTime) / 1000;
+				const deltaTime = lastTime === null ? 0 : (time - lastTime) / 1000;
 				lastTime = time;
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/web/src/components/ui/flickering-grid.tsx` around lines 129 - 134,
Update the animation loop around the local lastTime variable in animate so the
first frame initializes lastTime to the current time and skips elapsed-time
processing. Subsequent frames should calculate deltaTime from the previous frame
timestamp, preventing the initial page-load timestamp from causing a full-grid
flicker.
apps/web/src/components/login-form.tsx (1)

125-272: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy lift

The email/password form is implemented twice. This PR adds PasswordAuthFields in apps/web/src/components/login-form.tsx while apps/web/src/components/auth/sign-in.tsx keeps its own copy of the same form. The markup, the Tailwind classes, the onInvalid validation messages, and the authButtons composition match in both places. The two copies will diverge.

  • apps/web/src/components/login-form.tsx#L125-L272: promote PasswordAuthFields into a shared module, for example apps/web/src/components/auth/password-auth-fields.tsx, and import it here.
  • apps/web/src/components/auth/sign-in.tsx#L124-L330: replace the inline form and the authButtons composition with the shared component.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/web/src/components/login-form.tsx` around lines 125 - 272, Extract
PasswordAuthFields from apps/web/src/components/login-form.tsx:125-272 into a
shared module and import it here, preserving its props and behavior. In
apps/web/src/components/auth/sign-in.tsx:124-330, replace the duplicated inline
form and authButtons composition with the shared PasswordAuthFields component;
no direct changes are otherwise required at the extracted anchor site beyond the
move and import.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/web/src/components/auth/magic-link.tsx`:
- Line 136: Update the form control styling in the magic-link component,
including the input class at the referenced location and the button hover
classes around the additional locations, to use theme-aware background and
foreground tokens instead of hard-coded black, white, or light-text colors.
Preserve the existing control states while ensuring both light and dark themes
maintain readable contrast.

In `@apps/web/src/components/auth/sign-in.tsx`:
- Line 290: Update the remember-me conditional near the sign-in form to use
optional chaining when accessing emailAndPassword, changing the direct
rememberMe access to emailAndPassword?.rememberMe while preserving the existing
conditional rendering behavior.

In `@apps/web/src/components/login-form.tsx`:
- Around line 408-416: Update the magic-link flow around useSignInMagicLink and
AuthPrompts so failed requests surface an actionable error to the user in
production as well as password-enabled mode. Either render AuthPrompts
regardless of canUseEmailAndPassword, or add an onError handler to
signInMagicLink that displays the failure through the existing feedback
mechanism; preserve the current success navigation behavior.

In `@apps/web/src/components/ui/orbiting-circles.tsx`:
- Around line 49-71: Update the orbiting circles component around the
Children.map render so HTML props are not spread onto every child wrapper.
Prefer adding a single container that receives props and className while keeping
per-child wrappers limited to orbit styling, or narrow the component’s prop type
to prevent container attributes such as id and onClick; preserve the existing
OrbitingCircles child layout and animation behavior.

---

Outside diff comments:
In `@apps/web/src/routes/auth/index.tsx`:
- Around line 15-22: Update AuthPage and the password sign-in flow so the
normalized callbackUrl remains available during password continuations, either
by passing it through the relevant password-flow props or by updating the shared
route query in handlePasswordSubmit. Ensure useSignInContinuation receives the
callback URL rather than falling back to redirectTo, while preserving existing
social and magic-link behavior.

---

Nitpick comments:
In `@apps/web/src/components/login-form.tsx`:
- Around line 125-272: Extract PasswordAuthFields from
apps/web/src/components/login-form.tsx:125-272 into a shared module and import
it here, preserving its props and behavior. In
apps/web/src/components/auth/sign-in.tsx:124-330, replace the duplicated inline
form and authButtons composition with the shared PasswordAuthFields component;
no direct changes are otherwise required at the extracted anchor site beyond the
move and import.

In `@apps/web/src/components/ui/flickering-grid.tsx`:
- Around line 129-134: Update the animation loop around the local lastTime
variable in animate so the first frame initializes lastTime to the current time
and skips elapsed-time processing. Subsequent frames should calculate deltaTime
from the previous frame timestamp, preventing the initial page-load timestamp
from causing a full-grid flicker.

In `@apps/web/src/components/ui/orbiting-circles.tsx`:
- Around line 33-48: Add aria-hidden="true" to the decorative SVG rendered by
the path conditional and remove its title element so assistive technology
ignores the orbit path; leave the circle’s visual rendering unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 08cb9dcb-2e40-433a-a453-99e138590f22

📥 Commits

Reviewing files that changed from the base of the PR and between 1060fd0 and e0ea013.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (20)
  • apps/web/src/components/auth/magic-link-button.tsx
  • apps/web/src/components/auth/magic-link-sent.tsx
  • apps/web/src/components/auth/magic-link.tsx
  • apps/web/src/components/auth/provider-button.tsx
  • apps/web/src/components/auth/sign-in.tsx
  • apps/web/src/components/home/hero.tsx
  • apps/web/src/components/login-form.tsx
  • apps/web/src/components/ui/flickering-grid.tsx
  • apps/web/src/components/ui/input-group.tsx
  • apps/web/src/components/ui/orbiting-circles.tsx
  • apps/web/src/index.css
  • apps/web/src/lib/auth/index.ts
  • apps/web/src/main.tsx
  • apps/web/src/routeTree.gen.ts
  • apps/web/src/routes/auth/index.tsx
  • apps/web/src/routes/auth/magic-link-sent.tsx
  • apps/web/src/routes/auth/route.tsx
  • apps/web/src/utils/callback.ts
  • package.json
  • turbo.json
🚧 Files skipped from review as they are similar to previous changes (6)
  • package.json
  • apps/web/src/components/auth/magic-link-button.tsx
  • apps/web/src/components/home/hero.tsx
  • apps/web/src/components/auth/magic-link-sent.tsx
  • apps/web/src/utils/callback.ts
  • apps/web/src/routeTree.gen.ts

Comment thread apps/web/src/components/auth/magic-link.tsx
Comment thread apps/web/src/components/auth/sign-in.tsx Outdated
Comment thread apps/web/src/components/login-form.tsx
Comment thread apps/web/src/components/ui/orbiting-circles.tsx
Always mount AuthPrompts for magic-link errors, optional-chain rememberMe, and stop spreading container props onto every orbiting child.

Co-authored-by: Cursor <cursoragent@cursor.com>
@soorya-u
soorya-u merged commit ffe19ed into main Aug 2, 2026
9 checks passed
@soorya-u
soorya-u deleted the feat/auth-page-multi-provider-134 branch August 2, 2026 05:49
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.

Sign-in page: GitHub, Google, Magic Link, dev Email+Password

1 participant