- .gitignore: .claude/docs, rules, commands tracken; settings.local weiter ignorieren - DOCUMENTATION.md: verbindliche Ablage functional/technical/working/issues - .claude/README.md: Agent-Einstieg; GITEA_ISSUES_INDEX aus MCP (Stand 2026-04-08) - Arbeitspapiere von docs/ nach .claude/docs/working/ verschoben - docs/MEMBERSHIP_SYSTEM.md als Stub; kanonisch technical/MEMBERSHIP_SYSTEM.md - CLAUDE.md Pflichtlektüre und Links angepasst; docs/README.md vereinfacht Made-with: Cursor
2.1 KiB
2.1 KiB
Fix Bug
Strukturierter Workflow für Fehlerbehebung mit Bug-Tracking.
Workflow
1. Bug in KNOWN_ISSUES.md finden
cat .claude/docs/KNOWN_ISSUES.md | grep -A 20 "BUG-XXX"
2. Status auf "In Bearbeitung"
**Status:** 🟡 In Bearbeitung
3. Logs analysieren
Docker Logs:
docker logs -f dev-mitai-api | grep "ERROR\|Exception"
docker logs dev-mitai-api --tail 100
Feature-Logs:
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
# Backend Syntax
python3 -m py_compile backend/[file].py
# Frontend Build
cd frontend && npm run build
7. Commit
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)inHeader()→ separater Parameter!dayjs.week()→ Native ISO-Wochenberechnungdatetime.datevs.str→ Type-Check- PostgreSQL Boolean:
truenicht1
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