Move inactive projects out of active workspace: - bauntown (community website) - maerchenzauber (AI story generation) - memoro (voice memo app) - news (news aggregation) - nutriphi (nutrition tracking) - reader (reading app) - uload (URL shortener) - wisekeep (AI wisdom extraction) Update CLAUDE.md documentation: - Add presi to active projects - Document archived projects section - Update workspace configuration Archived apps can be re-activated by moving back to apps/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
7.8 KiB
M<EFBFBD>rchenzauber - ToDos & Dokumentation
<<3C> Bildmodell-Auswahl Feature (10.09.2025)
Was wurde implementiert
Backend-<2D>nderungen
-
Datenbank-Schema
- Neue Tabelle
user_settingsmit Spalteimage_modelerstellt - RLS-Policies f<>r sichere User-spezifische Einstellungen implementiert
- Migration-Script:
apps/backend/migrations/001_create_user_settings_table.sql
- Neue Tabelle
-
Model-Konfiguration (
apps/backend/src/core/models/image-models.ts)- Drei Bildgenerierungsmodelle definiert:
- FLUX Schnell: Schnelle Generierung (1-2 Sek, 1 Credit)
- FLUX Pro 1.1: Premium-Qualit<69>t (10-15 Sek, 3 Credits)
- Stable Diffusion XL: Standard-Qualit<69>t (5-10 Sek, 2 Credits)
- Vollst<EFBFBD>ndige Replicate Model-IDs mit Versionen integriert
- Drei Bildgenerierungsmodelle definiert:
-
Settings Service (
apps/backend/src/core/services/settings.service.ts)getUserImageModel(userId): Abrufen des User-spezifischen ModellssetUserImageModel(userId, modelId): Setzen eines neuen ModellsgetAvailableImageModels(): Liste aller verf<72>gbaren ModellegetImageModelInfo(modelId): Detailinformationen zu einem Modell- Caching der User-Einstellungen f<>r Performance
-
Image Service Updates (
apps/backend/src/core/services/image-supabase.service.ts)generateImageWithReplicate()nutzt jetzt User-spezifisches Modell- User-ID wird durch alle Bildgenerierungsfunktionen durchgereicht
- Fallback auf Standard-Modell (SDXL) wenn keine User-Einstellung vorhanden
-
Character Controller Updates (
apps/backend/src/character/character.controller.ts)- Alle
generateImage()Aufrufe erweitert um User-ID Parameter - Drei Varianten aktualisiert: createCharacter, createCharacterFromImage, createCharacterSpecial
- Alle
-
Story Service Updates (
apps/backend/src/story/services/story-creation.service.ts)generateIllustrationForPage()nutzt User-ID f<>r Modellauswahl- Konsistente Modellnutzung f<>r alle Illustrationen einer Story
-
API Endpoints (
apps/backend/src/settings/settings.controller.ts)GET /settings/image-models: Verf<72>gbare Modelle mit MetadatenGET /settings/user/image-model: Aktuelles User-Modell abrufenPUT /settings/user/image-model: User-Modell <20>ndern- DTO f<>r Modell-Updates:
apps/backend/src/settings/dto/image-model.dto.ts
Frontend-<2D>nderungen
-
Neue Settings-Seite (
apps/mobile/app/(tabs)/(settings)/image-model.tsx)- <EFBFBD>bersichtliche Card-basierte Modellauswahl
- Visual Feedback f<>r ausgew<65>hltes Modell
- Badges f<>r Geschwindigkeit und Credit-Kosten
- Informative Beschreibungen f<>r jedes Modell
- Loading- und Saving-States
- Error Handling mit User-Feedback
-
Settings Integration (
apps/mobile/app/settings.tsx)- Neuer Button "Bildgenerierung" in den Haupteinstellungen
- Navigation zur Modellauswahl-Seite
-
UI Features
- Responsive Design f<>r verschiedene Bildschirmgr<67><72>en
- Farbcodierte Badges (Schnell/Premium/Standard)
- Checkmark-Icon f<>r ausgew<65>hltes Modell
- Info-Box mit Erkl<6B>rung zur Modellauswahl
=' Was muss noch gemacht werden
Sofort erforderlich (vor Go-Live)
-
Datenbank-Migration ausf<73>hren <20> KRITISCH
# In Supabase Dashboard oder via psql: psql "postgresql://postgres.[project-id]:[password]@db.dyywxrmonxoiojsjmymc.supabase.co:5432/postgres" \i apps/backend/migrations/001_create_user_settings_table.sql -
Backend neu starten
cd apps/backend npm run dev # oder npm run start:prod f<>r Produktion -
Testing
- Modellauswahl in der App testen
- Story-Generierung mit verschiedenen Modellen testen
- Character-Erstellung mit verschiedenen Modellen testen
- Persistenz der Einstellungen pr<70>fen
N<EFBFBD>chste Schritte (Nice-to-have)
-
Performance & Monitoring
- Logging f<>r Modell-Performance (Generierungszeiten)
- Erfolgs-/Fehlerquoten pro Modell tracken
- Analytics f<>r Modell-Pr<50>ferenzen der User
-
User Experience
- Modell-Empfehlungen basierend auf Use-Case
- Vorschau-Bilder f<>r jedes Modell
- A/B Testing f<>r optimale Default-Einstellung
-
Admin Features
- Admin-Dashboard f<>r Modell-Statistiken
- Modelle dynamisch aktivieren/deaktivieren
- Credit-Preise anpassen per Admin-Interface
-
Erweiterte Features
- Verschiedene Modelle f<>r Characters vs. Stories
- User-Feedback zur Bildqualit<69>t erfassen
- Automatisches Fallback bei Modell-Ausfall
- Batch-Generierung mit mehreren Modellen (f<>r Vergleich)
=<3D> Technische Details
Modell-Spezifikationen
| Modell | Replicate ID | Geschwindigkeit | Credits | Use-Case |
|---|---|---|---|---|
| FLUX Schnell | black-forest-labs/flux-schnell:5599ed30... |
1-2s | 1 | Tests, Prototypen |
| FLUX Pro 1.1 | black-forest-labs/flux-1.1-pro:8f06b9d3... |
10-15s | 3 | Finale Stories |
| SDXL | stability-ai/sdxl:39ed52f2... |
5-10s | 2 | Standard |
Datenbank-Schema
CREATE TABLE user_settings (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id TEXT NOT NULL UNIQUE,
image_model TEXT DEFAULT 'sdxl' CHECK (image_model IN ('flux-schnell', 'flux-pro', 'sdxl')),
created_at TIMESTAMPTZ DEFAULT NOW() NOT NULL,
updated_at TIMESTAMPTZ DEFAULT NOW() NOT NULL
);
= Bekannte Issues & Fixes
-
Import-Pfad-Fehler (GEL<45>ST)
- Problem:
ColorsImport-Pfad war falsch - L<EFBFBD>sung: Pfad von
../../../src/constants/Colorszu../../../constants/Colorskorrigiert
- Problem:
-
TypeScript Strict Mode
- Linter hat
!zu required properties hinzugef<65>gt - DTOs nutzen jetzt strict mode compliance
- Linter hat
=<3D> Testing Checklist
-
Backend API Tests
# Modelle abrufen curl http://localhost:3002/settings/image-models -H "Authorization: Bearer TOKEN" # User-Modell <20>ndern curl -X PUT http://localhost:3002/settings/user/image-model \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{"model": "flux-schnell"}' -
Frontend Tests
- Settings <20>ffnen <20> Bildgenerierung
- Modell ausw<73>hlen und speichern
- App neu starten und pr<70>fen ob Auswahl persistiert
- Neue Story/Character erstellen
-
Datenbank Tests
-- User-Settings pr<70>fen SELECT * FROM user_settings; -- Modell-Verteilung SELECT image_model, COUNT(*) FROM user_settings GROUP BY image_model;
=<3D> Dokumentation
- Vollst<EFBFBD>ndige Implementation-Dokumentation:
/IMAGE_MODEL_SELECTION_README.md - API-Dokumentation in den jeweiligen Controller-Dateien
- Frontend-Komponenten sind self-documenting mit TypeScript-Interfaces
=<3D> Deployment Checklist
- Datenbank-Migration ausf<73>hren
- Environment-Variable
MAERCHENZAUBER_REPLICATE_API_KEYpr<70>fen - Backend deployen
- Mobile App builden und deployen
- Feature-Flag aktivieren (falls vorhanden)
- Monitoring aktivieren
- User-Kommunikation <20>ber neues Feature
=<3D> Weitere TODOs (nicht related zu Bildmodell-Feature)
High Priority
- Story-Logbook vollst<73>ndig implementieren
- Character-Konsistenz in Stories verbessern
- 10 Bilder pro Story generieren (aktuell nur 3)
Medium Priority
- Mana Core Credit-System Integration vervollst<73>ndigen
- Mehrsprachigkeit (DE/EN) konsistent umsetzen
- Performance-Optimierungen f<>r gro<72>e Story-Collections
Low Priority
- Onboarding-Flow <20>berarbeiten
- Push-Notifications implementieren
- Social-Sharing Features
Letzte Aktualisierung: 10.09.2025 - Till Schneider