fix wait for ready

This commit is contained in:
duffyduck 2025-12-29 01:13:06 +01:00
parent d43c60aef2
commit 190689cd83
2 changed files with 17 additions and 5 deletions

View File

@ -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]")

View File

@ -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)