Add NEXT_PUBLIC_GARY_SKIP_AUTH dev/demo bypass
Lets us inspect the app without going through Supabase login during
development and on demo deploys. Frontend-only.
When NEXT_PUBLIC_GARY_SKIP_AUTH=true:
- AuthContext initializes with a fake demo user
({ id: "00000000-...-000", email: "demo@gary.local" }) via lazy
useState, so isAuthenticated is true immediately.
- The Supabase session check + auth-state-change subscription are
skipped (the useEffect bails out after a one-time console.warn).
- signOut becomes a no-op so the demo session stays stable.
- A slim amber "Dev auth bypass enabled" banner renders at the top
of the (pages) layout via the new DevAuthBanner component.
- The flag is exposed as `isAuthBypassed` on the auth context so
any consumer can branch on it later.
When the flag is unset or "false":
- useState initializers return null/true, identical to today.
- The effect's bypass branch is dead and the original Supabase
logic runs unchanged. Login/signup, signOut, and the redirect
gate in (pages)/layout.tsx are untouched.
Documents the variable in frontend/.env.local.example as
commented-out so normal setups stay on real auth.
No backend changes, no schema changes, no auth contract changes.
Backend calls made while the bypass is on will 401 because no
real Supabase session exists - that's intentional and noted in
the console warning.
https://claude.ai/code/session_019pRkhcGDRKQWHjzAnV5yCL
| Repository | foolish-bandit/gary |
|---|---|
| Author | Claude <noreply@anthropic.com> |
| Authored | |
| Parents | 3c80d724 |
| Stats | 4 files changed , +62 , -3 |
| Part of | NEXT_PUBLIC_GARY_SKIP_AUTH dev/demo bypass |
Capture this commit into my fork
Download a Markdown prompt that tells Claude how to port this
exact commit into your working tree. Run it via
claude -p < capture-commit-0b9ad4db.md
from inside the repo you want the change in.