# Fix Bug

Strukturierter Workflow für Fehlerbehebung mit Bug-Tracking.

## Workflow

### 1. Bug in KNOWN_ISSUES.md finden
```bash
cat .claude/docs/KNOWN_ISSUES.md | grep -A 20 "BUG-XXX"
```

### 2. Status auf "In Bearbeitung"
```markdown
**Status:** 🟡 In Bearbeitung
```

### 3. Logs analysieren

**Docker Logs:**
```bash
docker logs -f dev-mitai-api | grep "ERROR\|Exception"
docker logs dev-mitai-api --tail 100
```

**Feature-Logs:**
```bash
tail -f backend/logs/feature-usage.log | jq .
```

### 4. Bug reproduzieren
- Schritte aus KNOWN_ISSUES.md nachstellen
- Fehler verifizieren
- Root Cause identifizieren (nicht nur Symptom!)

### 5. Fix implementieren
- Minimal invasive Änderung
- Keine "Verbesserungen" nebenbei
- Kommentiere komplexe Fixes

### 6. Testen
```bash
# Backend Syntax
python3 -m py_compile backend/[file].py

# Frontend Build
cd frontend && npm run build
```

### 7. Commit
```bash
git add [files]
git commit -m "fix: [BUG-XXX] Kurzbeschreibung

Root Cause: [Ursache]
Lösung: [Was geändert]
Tested: [Wie getestet]

Closes: BUG-XXX"
```

### 8. KNOWN_ISSUES.md aktualisieren
Nach Deploy:
- Status: ✅ Behoben (Commit `hash`)
- Ins Archiv verschieben

## Debugging-Checkliste

### Frontend-Bugs
- Browser Console (F12) → Fehler lesen
- Network Tab → API-Call prüfen
- Häufig:
  - 401: Token fehlt → api.js nutzen
  - undefined: Optional chaining `?.` verwenden
  - Weißer Screen: JS-Fehler in Console

### Backend-Bugs
- Docker Logs → Traceback analysieren
- Syntax: `python3 -m py_compile backend/[file].py`
- Häufig:
  - TypeError: Type-Konvertierung fehlt
  - 404: Router nicht registriert
  - 500: Unbehandelte Exception

### Häufige Fehler
- `session=Depends(require_auth)` in `Header()` → separater Parameter!
- `dayjs.week()` → Native ISO-Wochenberechnung
- `datetime.date` vs. `str` → Type-Check
- PostgreSQL Boolean: `true` nicht `1`

## Commit-Format
```
fix: [BUG-XXX] Kurze Beschreibung

Problem: TypeError in /api/nutrition/weekly
Root Cause: d['date'] ist datetime.date, nicht str
Lösung: Check if already datetime.date object
Tested: /nutrition Tab lädt ohne Error

Closes: BUG-XXX
```
