diff --git a/python_bridge/chat_audio_bridge.py b/python_bridge/chat_audio_bridge.py index 644f963..c717f51 100755 --- a/python_bridge/chat_audio_bridge.py +++ b/python_bridge/chat_audio_bridge.py @@ -540,9 +540,11 @@ Das ist wichtig damit die TTS-Ausgabe weiß wo dein Text beginnt. Beispiel: "Claude sagt: Oh, das ist interessant! Ich sehe einen Stuhl vor mir. [FORWARD]" ## WICHTIG: Bestätige mit [READY] -Wenn du diese Instruktionen verstanden hast, antworte mit dem Tag `[READY]` (exakt so, in eckigen Klammern!) am Ende deiner Nachricht. -**Das Format muss EXAKT `[READY]` sein** - nicht fett, nicht anders formatiert, sondern genau so: [READY] -Erst dann starten die automatischen TICKs mit Bildern!""" +Wenn du diese Instruktionen verstanden hast, MUSST du am Ende deiner Antwort [READY] schreiben. +NICHT "Startklar", NICHT "Bereit", sondern EXAKT die Zeichenfolge [READY] mit eckigen Klammern. +Ohne [READY] kann ich nicht starten! Beispiel-Antwort: +"Claude sagt: Verstanden, ich bin bereit! [READY]" +Erst wenn ich [READY] sehe, starten die TICKs mit Bildern!""" console.print("[cyan]→ Sende Instruktionen an Claude...[/cyan]") diff --git a/python_bridge/chat_web_interface.py b/python_bridge/chat_web_interface.py index f9a4e9e..91cc2c6 100644 --- a/python_bridge/chat_web_interface.py +++ b/python_bridge/chat_web_interface.py @@ -822,10 +822,11 @@ class ClaudeChatInterface: # Claude-Nachrichten hinzufügen # WICHTIG: Filtere User-Befehle die fälschlicherweise erkannt werden + # HINWEIS: [READY] ist KEINE User-Nachricht - das sendet CLAUDE! user_commands = [ '[TICK]', '[START]', '[FORWARD]', '[BACKWARD]', '[LEFT]', '[RIGHT]', '[STOP]', - '[LOOK_LEFT]', '[LOOK_RIGHT]', '[LOOK_UP]', '[LOOK_DOWN]', '[LOOK_CENTER]', - '[READY]' + '[LOOK_LEFT]', '[LOOK_RIGHT]', '[LOOK_UP]', '[LOOK_DOWN]', '[LOOK_CENTER]' + # [READY] ist NICHT in dieser Liste - Claude sendet es! ] for i, elem in enumerate(claude_elements): @@ -1048,6 +1049,15 @@ class ClaudeChatInterface: return True else: logger.debug(f"Neue Nachricht aber kein [READY]: {last_msg.text[:50] if last_msg else 'None'}...") + # Aktualisiere initial_count damit wir auf die NÄCHSTE warten + initial_count = current_count + else: + # FALLBACK: Auch wenn keine NEUE Nachricht, prüfe ob letzte [READY] hat + # Das hilft wenn Claude schon vor dem Senden geantwortet hat + last_msg = self.get_last_assistant_message() + if last_msg and '[READY]' in last_msg.text.upper(): + logger.info(f"[READY] in bestehender Claude-Nachricht gefunden!") + return True # Kurz warten bevor nächster Check time.sleep(1)