Adds api/app/auth/oauth_providers.py with GoogleOAuthProvider (httpx-based,
no authlib needed) and generate_pkce_pair(). New routes:
GET /auth/oauth/{provider}/authorize and POST /auth/oauth/{provider}/callback
with state/PKCE validation and three-way user resolution (existing OAuth link,
email auto-link, new social-only user). Updates settings.py with
GOOGLE_AUTH_CLIENT_ID/SECRET and OAUTH_REDIRECT_URI.
Also includes Step 1 backend changes (already marked complete in plan):
oauth_accounts table migration, nullable password_hash, avatar_url on User.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Create customization.md for theming and CSS variable usage.
- Add evals.json for testing shadcn/ui component prompts and expectations.
- Introduce mcp.md for MCP server setup and configuration.
- Document API differences between base and radix in base-vs-radix.md.
- Establish component composition rules in composition.md.
- Define forms and input handling guidelines in forms.md.
- Set icon usage standards in icons.md.
- Outline styling and customization best practices in styling.md.
- Update skills-lock.json to include shadcn source information.