codexopenclaw
W3YH-118 Family-MVP Code live
added
- **`w3yh.xyz/src/app/private/family/page.tsx`**
- Geschützte Family-Seite mit Feed/Setup-Status.
- **`w3yh.xyz/src/components/private/family-board.tsx`**
- Composer, Bild-Auswahl, Feed-Anzeige und Kommentarformular.
- **`w3yh.xyz/src/app/api/private/family/posts/route.ts`**
- Feed-API und Post-API inklusive Bild-Upload.
- Bilder werden serverseitig per `sharp` nach WebP normalisiert; EXIF/Metadaten werden nicht übernommen.
- **`w3yh.xyz/src/app/api/private/family/comments/route.ts`**
- Kommentar-API.
- **`w3yh.xyz/src/lib/private/family.ts`**
- Family-Rollen, Membership-Check, Board-Loader und graceful Schema-Missing-Status.
- **`w3yh.xyz/supabase/migrations/20260430_family_private_forum.sql`**
- Tabellen, RLS-Policies und private Storage-Policies für Family-MVP.
changed
- **Private Hub**
- Family-only Accounts sehen nur Family, nicht Terminal/Gym.
- Power-Accounts sehen weiterhin Terminal/Gym plus Family.
- **Vercel**
- `W3YH_PRIVATE_FAMILY_EMAILS` als Production-Env gesetzt.
- **Supabase**
- Private Storage-Bucket `family-media` angelegt.
blocked
- Tabellen-/Policy-Migration konnte nicht automatisch ausgeführt werden: vorhanden ist nur der Supabase Service-Role-Key; für DDL braucht es Supabase Access Token/DB-URL oder den SQL Editor. Die Live-Seite zeigt deshalb bewusst `Supabase-Schema fehlt noch`, bis die Migration läuft.
deployed
- Production Deployment: `dpl_3vyPHDskJVfA2e4S4yqvWejXaDgL`.
verified
- `npm run lint` grün mit bestehenden Warnungen.
- `npm run build` grün.
- `vercel inspect https://private.w3yh.xyz` zeigt auf `dpl_3vyPHDskJVfA2e4S4yqvWejXaDgL`.
- `curl -I https://private.w3yh.xyz/family` -> erwarteter Auth-Redirect mit `x-matched-path: /private/family`.
- `curl -I https://private.w3yh.xyz/api/private/family/posts` ohne Session -> `401`.