From 11497dfb2d427bebefda250c49014c262382820d Mon Sep 17 00:00:00 2001 From: Sol Date: Sun, 12 Apr 2026 06:45:11 +0000 Subject: [PATCH 1/2] fix: skip Privy error screen when Steward auth is enabled When NEXT_PUBLIC_STEWARD_AUTH_ENABLED=true and Privy isn't configured, PrivyProvider passes children through instead of blocking with error. Also fix StewardProvider props in login page. Co-authored-by: wakesync --- app/login/page.tsx | 14 +++++++++++--- packages/lib/providers/PrivyProvider.tsx | 5 +++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/login/page.tsx b/app/login/page.tsx index 7a9717bf3..ac196af8e 100644 --- a/app/login/page.tsx +++ b/app/login/page.tsx @@ -3,14 +3,17 @@ import { BrandButton, Input } from "@elizaos/cloud-ui"; import { useLogin, useLoginWithEmail, useLoginWithOAuth, usePrivy } from "@privy-io/react-auth"; import { StewardLogin } from "@stwd/react"; +import { StewardProvider } from "@stwd/react"; +import { StewardClient } from "@stwd/sdk"; import { ArrowLeft, Chrome, Github, Loader2, Mail, Wallet } from "lucide-react"; import { useRouter, useSearchParams } from "next/navigation"; import { Suspense, useEffect, useRef, useState } from "react"; import { toast } from "sonner"; -import { StewardAuthProvider } from "@/packages/lib/providers/StewardProvider"; import LandingHeader from "@/packages/ui/src/components/layout/landing-header"; const STEWARD_AUTH_ENABLED = process.env.NEXT_PUBLIC_STEWARD_AUTH_ENABLED === "true"; +const STEWARD_AUTH_BASE_URL = process.env.NEXT_PUBLIC_STEWARD_AUTH_BASE_URL || "https://api.steward.fi"; +const STEWARD_TENANT_ID = process.env.NEXT_PUBLIC_STEWARD_TENANT_ID || undefined; // Discord SVG Icon Component const DiscordIcon = ({ className }: { className?: string }) => ( @@ -509,7 +512,12 @@ function LoginPageContent() { {/* Steward Auth Section (feature-flagged) */} {STEWARD_AUTH_ENABLED && !showCodeInput && (
- + - + {/* Divider between Steward and Privy options */}
diff --git a/packages/lib/providers/PrivyProvider.tsx b/packages/lib/providers/PrivyProvider.tsx index 6b3bd0094..23f47e1bc 100644 --- a/packages/lib/providers/PrivyProvider.tsx +++ b/packages/lib/providers/PrivyProvider.tsx @@ -189,6 +189,11 @@ export default function PrivyProvider({ children }: { children: React.ReactNode }, [hasValidAppId]); if (!hasValidAppId) { + // When Steward auth is enabled and Privy isn't configured, + // pass children through instead of blocking the whole app. + if (process.env.NEXT_PUBLIC_STEWARD_AUTH_ENABLED === "true") { + return <>{children}; + } return (
From 0cf6b968213a8ae21ad338c400865da4eee070ce Mon Sep 17 00:00:00 2001 From: Shaw Date: Sun, 12 Apr 2026 02:11:14 -0600 Subject: [PATCH 2/2] fix: restore Steward auth wrapper on login --- app/login/page.tsx | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/app/login/page.tsx b/app/login/page.tsx index ac196af8e..7a9717bf3 100644 --- a/app/login/page.tsx +++ b/app/login/page.tsx @@ -3,17 +3,14 @@ import { BrandButton, Input } from "@elizaos/cloud-ui"; import { useLogin, useLoginWithEmail, useLoginWithOAuth, usePrivy } from "@privy-io/react-auth"; import { StewardLogin } from "@stwd/react"; -import { StewardProvider } from "@stwd/react"; -import { StewardClient } from "@stwd/sdk"; import { ArrowLeft, Chrome, Github, Loader2, Mail, Wallet } from "lucide-react"; import { useRouter, useSearchParams } from "next/navigation"; import { Suspense, useEffect, useRef, useState } from "react"; import { toast } from "sonner"; +import { StewardAuthProvider } from "@/packages/lib/providers/StewardProvider"; import LandingHeader from "@/packages/ui/src/components/layout/landing-header"; const STEWARD_AUTH_ENABLED = process.env.NEXT_PUBLIC_STEWARD_AUTH_ENABLED === "true"; -const STEWARD_AUTH_BASE_URL = process.env.NEXT_PUBLIC_STEWARD_AUTH_BASE_URL || "https://api.steward.fi"; -const STEWARD_TENANT_ID = process.env.NEXT_PUBLIC_STEWARD_TENANT_ID || undefined; // Discord SVG Icon Component const DiscordIcon = ({ className }: { className?: string }) => ( @@ -512,12 +509,7 @@ function LoginPageContent() { {/* Steward Auth Section (feature-flagged) */} {STEWARD_AUTH_ENABLED && !showCodeInput && (
- + - + {/* Divider between Steward and Privy options */}