feat(react-auth): include productId in login/register request bodies
When productId is configured via createAuthProvider({ productId }),
it is now included in the login and register POST bodies alongside
email/password. Previously it was only injected for OAuth calls.
This is required by platform-service which validates productId on
all auth endpoints.
This commit is contained in:
parent
e996962b64
commit
79e704286f
@ -1,9 +1,9 @@
|
|||||||
Last refresh: 2026-03-12T19:01:41Z (2026-03-12 12:01:41 PDT)
|
Last refresh: 2026-03-18T23:05:43Z (2026-03-18 16:05:43 PDT)
|
||||||
Cascade conversations: 50 (370M)
|
Cascade conversations: 50 (385M)
|
||||||
Memories: 80
|
Memories: 83
|
||||||
Implicit context: 20
|
Implicit context: 20
|
||||||
Code tracker dirs: 136
|
Code tracker dirs: 99
|
||||||
File edit history: 2908 entries
|
File edit history: 3022 entries
|
||||||
Workspace storage: 29 workspaces
|
Workspace storage: 34 workspaces
|
||||||
Repo docs: 7 files across 2 repos
|
Repo docs: 7 files across 2 repos
|
||||||
Repo workflows: 42 files across 10 repos
|
Repo workflows: 42 files across 10 repos
|
||||||
|
|||||||
@ -7,18 +7,23 @@ description: Refresh the Windsurf chat history archive (re-scan all repos, updat
|
|||||||
Refreshes the centralized Windsurf chat history archive at `__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/`.
|
Refreshes the centralized Windsurf chat history archive at `__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/`.
|
||||||
Auto-discovers new repos, updates symlinks, and re-copies docs + workflows.
|
Auto-discovers new repos, updates symlinks, and re-copies docs + workflows.
|
||||||
|
|
||||||
## Covered Repos (All 8 workspaces)
|
## Covered Repos (All 13 workspaces)
|
||||||
|
|
||||||
| Repo | Product | Workflows | Docs |
|
| Repo | Product | Workflows | Docs |
|
||||||
| ----------------------------------- | ---------------- | --------- | ---- |
|
| ----------------------------------- | ------------------ | --------- | ---- |
|
||||||
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
| `learning_ai_common_plat` | Common Platform | ✅ | ✅ |
|
||||||
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
||||||
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
||||||
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
||||||
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
||||||
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
||||||
| `learning_ai_common_plat` | Common Platform | ✅ | — |
|
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
||||||
| `learning_agent_monitoring_fx` | Agent Monitoring | ✅ | — |
|
| `learning_ai_notes` | NoteLett | ✅ | — |
|
||||||
|
| `learning_ai_flowmonk` | FlowMonk | ✅ | — |
|
||||||
|
| `learning_ai_trails` | ActionTrail | ✅ | — |
|
||||||
|
| `learning_ai_smart_auth` | SmartAuth | ✅ | — |
|
||||||
|
| `learning_ai_auth_app` | ByteLyst Auth | ✅ | — |
|
||||||
|
| `learning_ai_productivity_web` | Productivity Tools | ✅ | — |
|
||||||
|
|
||||||
## Steps
|
## Steps
|
||||||
|
|
||||||
|
|||||||
@ -30,7 +30,7 @@ echo "✨ All repos pushed!"
|
|||||||
## What it does:
|
## What it does:
|
||||||
|
|
||||||
1. **Backup** — creates timestamped backup branches, cleans up old ones (7 days), skips duplicates
|
1. **Backup** — creates timestamped backup branches, cleans up old ones (7 days), skips duplicates
|
||||||
2. **Push** — pushes `main` to `origin/main` for all 7 repos
|
2. **Push** — pushes `main` to `origin/main` for all 13 repos
|
||||||
|
|
||||||
## Repositories:
|
## Repositories:
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
description: Push local main branch to origin for all 7 workspace repos
|
description: Push local main branch to origin for all 13 workspace repos
|
||||||
---
|
---
|
||||||
|
|
||||||
# Push Repos
|
# Push Repos
|
||||||
@ -18,7 +18,7 @@ done < ~/code/mygh/learning_ai_common_plat/.windsurf/workflows/repos.txt
|
|||||||
|
|
||||||
## What it does:
|
## What it does:
|
||||||
|
|
||||||
1. Iterates over all 7 workspace repos
|
1. Iterates over all 13 workspace repos
|
||||||
2. Runs `git push origin main` in each
|
2. Runs `git push origin main` in each
|
||||||
3. Fails fast if a repo has diverged from remote (resolve with rebase manually)
|
3. Fails fast if a repo has diverged from remote (resolve with rebase manually)
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
description: Pull latest from origin main across all 7 workspace repos
|
description: Pull latest from origin main across all 13 workspace repos
|
||||||
---
|
---
|
||||||
|
|
||||||
# Sync Repos
|
# Sync Repos
|
||||||
@ -18,7 +18,7 @@ done < ~/code/mygh/learning_ai_common_plat/.windsurf/workflows/repos.txt
|
|||||||
|
|
||||||
## What it does:
|
## What it does:
|
||||||
|
|
||||||
1. Iterates over all 7 workspace repos
|
1. Iterates over all 13 workspace repos
|
||||||
2. Runs `git pull --ff-only origin main` in each
|
2. Runs `git pull --ff-only origin main` in each
|
||||||
3. Fails fast if there are local divergent commits (use `git pull --rebase` manually in that case)
|
3. Fails fast if there are local divergent commits (use `git pull --rebase` manually in that case)
|
||||||
|
|
||||||
|
|||||||
@ -11,3 +11,7 @@ learning_ai_jarvis_jr
|
|||||||
learning_ai_peakpulse
|
learning_ai_peakpulse
|
||||||
learning_ai_notes
|
learning_ai_notes
|
||||||
learning_ai_flowmonk
|
learning_ai_flowmonk
|
||||||
|
learning_ai_trails
|
||||||
|
learning_ai_smart_auth
|
||||||
|
learning_ai_auth_app
|
||||||
|
learning_ai_productivity_web
|
||||||
|
|||||||
@ -45,6 +45,10 @@ All code across the ByteLyst workspace repos:
|
|||||||
- learning_ai_jarvis_jr (JarvisJr)
|
- learning_ai_jarvis_jr (JarvisJr)
|
||||||
- learning_ai_peakpulse (PeakPulse)
|
- learning_ai_peakpulse (PeakPulse)
|
||||||
- learning_ai_notes (NoteLett)
|
- learning_ai_notes (NoteLett)
|
||||||
|
- learning_ai_trails (ActionTrail)
|
||||||
|
- learning_ai_smart_auth (SmartAuth)
|
||||||
|
- learning_ai_auth_app (ByteLyst Auth)
|
||||||
|
- learning_ai_productivity_web (Productivity Tools)
|
||||||
|
|
||||||
## Domain Context
|
## Domain Context
|
||||||
|
|
||||||
@ -52,7 +56,7 @@ This is a multi-product ecosystem with shared platform services. Key architectur
|
|||||||
|
|
||||||
- **Platform services** (Fastify 5, TypeScript ESM) provide auth, telemetry, feature flags, etc.
|
- **Platform services** (Fastify 5, TypeScript ESM) provide auth, telemetry, feature flags, etc.
|
||||||
- **Shared packages** (@bytelyst/\*) eliminate duplication across products
|
- **Shared packages** (@bytelyst/\*) eliminate duplication across products
|
||||||
- **Product backends** handle domain-specific logic (port 4010-4017)
|
- **Product backends** handle domain-specific logic (port 4010-4018)
|
||||||
- **Web apps** use Next.js 16 + React 19
|
- **Web apps** use Next.js 16 + React 19
|
||||||
- **Mobile apps** use native platforms (SwiftUI, Jetpack Compose, React Native)
|
- **Mobile apps** use native platforms (SwiftUI, Jetpack Compose, React Native)
|
||||||
|
|
||||||
|
|||||||
@ -175,7 +175,11 @@ export function createAuthProvider<TUser extends BaseUser = BaseUser>(config: Au
|
|||||||
try {
|
try {
|
||||||
const { data, error: fetchError } = await api.safeFetch<unknown>(loginEndpoint, {
|
const { data, error: fetchError } = await api.safeFetch<unknown>(loginEndpoint, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: JSON.stringify({ email, password }),
|
body: JSON.stringify(
|
||||||
|
configProductId
|
||||||
|
? { email, password, productId: configProductId }
|
||||||
|
: { email, password }
|
||||||
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
if (data && !fetchError) {
|
if (data && !fetchError) {
|
||||||
@ -219,7 +223,11 @@ export function createAuthProvider<TUser extends BaseUser = BaseUser>(config: Au
|
|||||||
try {
|
try {
|
||||||
const { data, error: fetchError } = await api.safeFetch<unknown>(registerEndpoint, {
|
const { data, error: fetchError } = await api.safeFetch<unknown>(registerEndpoint, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: JSON.stringify({ email, password, displayName }),
|
body: JSON.stringify(
|
||||||
|
configProductId
|
||||||
|
? { email, password, displayName, productId: configProductId }
|
||||||
|
: { email, password, displayName }
|
||||||
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
if (data && !fetchError) {
|
if (data && !fetchError) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user