Problem: 'bad substitution' bei crew_doctor
→ ${!var} funktioniert nur in bash, nicht in zsh
Lösung:
- if BASH_VERSION → ${!loaded_check_var}
- elif ZSH_VERSION → ${(P)loaded_check_var}
Jetzt funktioniert crew_doctor in beiden Shells! ✅🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Problem: export -f funktioniert nicht in zsh, nur in bash
→ crew_doctor und crew_syntax wurden nicht geladen in zsh
Lösung:
- Prüfe BASH_VERSION
- export -f nur in bash
- In zsh sind Funktionen automatisch verfügbar
Jetzt funktioniert waldwaechter.sh in beiden Shells:
✅ bash (export -f wird verwendet)
✅ zsh (Funktionen direkt verfügbar)
macOS Standard ist zsh → kritischer Fix!
🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
"Systeme die sich selbst überprüfen" - Selbstdiagnose implementiert!
✅ crew_doctor - System-Diagnose:
📋 waldwaechter.sh Version Check (erkennt veraltete Versionen!)
📂 CRUMB_LOGS_DIR Pfad-Validierung
🌲 Alle 17 Waldwächter Scripts vorhanden?
🔧 Dependencies Check (jq, bc, curl)
📊 Token-Logging in allen Scripts?
🔑 API Key konfiguriert?
→ Warnt wenn "source lib/waldwaechter.sh" nötig ist!
→ Löst das Problem von vorhin automatisch
✅ crew_syntax - Syntax Check:
🔍 bash -n für alle Scripts
📝 lib/waldwaechter.sh + 17 Character Scripts
📋 Alle Mission Scripts
📊 Detaillierte Fehler-Ausgabe bei Problemen
🔧 Technische Details:
- Version-Marker via mtime (modification time)
- Export WALDWAECHTER_LOADED_${mtime}=1
- crew_doctor erkennt ob Version aktuell ist
- LC-independent (stat -f macOS, stat -c Linux)
🔍 OZMAI-Prinzip: "Ich schau drauf, nicht drüber hinweg"
→ Präventive Diagnose statt reaktive Fehlersuche
Neue Befehle in crew_help dokumentiert.
🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Problem: Deutsche Locale (Komma als Dezimaltrenner) vs.
JSON/bc output (Punkt als Dezimaltrenner) → printf Fehler
✅ Lösung:
- LC_NUMERIC=C für gesamte crew_tokens Funktion
- Konsistente Zahlenformatierung (Punkt als Dezimaltrenner)
- Keine printf "invalid number" Fehler mehr
📊 Ergebnis:
- Alle 12 aktiven Waldwächter korrekt angezeigt
- Token-Zahlen akkurat: 20021 Tokens total
- Kosten transparent: ~$0.017558
- "Was kostet die Frage eines Kindes?" → Jetzt mit Antwort! ✓
🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Bug gefunden: Schnecki zeigte 671 Tokens, aber crew_tokens zeigte 0.
Grund: Die 4 Crew-Befehle existierten noch nicht!
✅ Implementiert:
1. **crew_tokens** - Token-Tracking funktioniert jetzt!
- Liest alle logs/*/token_log.json
- Summiert total_tokens und cost
- Zeigt Pro-Character und Gesamt-Übersicht
- "Was kostet die Frage eines Kindes?" ✓
2. **crew_status** - Status aller 17 Waldwächter
- Zeigt welche Waldwächter genutzt wurden
- Wann zuletzt verwendet
- ✅ aktiv / ⚪ noch nicht genutzt
3. **crew_memory** - Log-basierte Suche
- Durchsucht alle history.json Dateien
- crew_memory "LED" findet alle Erwähnungen
- Ehrlich: "Log-basiertes Gedächtnis"
4. **crew_help** - Übersicht aller Befehle
- Alle 17 Waldwächter aufgelistet
- Nach Teams gruppiert
- Beispiele enthalten
📊 Token-Transparenz jetzt funktionsfähig!
OZMAI würde nicken. 🔍🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>