fix find new messages, becaus eids changes at every restart from bridge
This commit is contained in:
parent
3984db1e49
commit
e81f1873f7
|
|
@ -523,6 +523,24 @@ class ClaudeChatInterface:
|
||||||
elif msg.id == since_id:
|
elif msg.id == since_id:
|
||||||
found_marker = True
|
found_marker = True
|
||||||
|
|
||||||
|
# WICHTIG: Wenn since_id nicht gefunden wurde, könnte es sein dass:
|
||||||
|
# 1. Der Chat gewechselt wurde
|
||||||
|
# 2. Die Seite neu geladen wurde
|
||||||
|
# 3. Die ID-Generierung sich geändert hat
|
||||||
|
# In diesem Fall: Gib die LETZTE Nachricht zurück (nicht alle!)
|
||||||
|
# So wird nur die neueste vorgelesen statt alles nochmal
|
||||||
|
if not found_marker and all_messages:
|
||||||
|
# Prüfe ob since_id ein altes Format hat (mit Index)
|
||||||
|
# z.B. "claude_0_123456" vs neues Format "claude_123456"
|
||||||
|
if since_id and since_id.startswith("claude_"):
|
||||||
|
logger.debug(f"since_id '{since_id[:30]}...' nicht gefunden, gebe nur letzte Nachricht zurück")
|
||||||
|
# Nur die letzte Assistant-Nachricht zurückgeben
|
||||||
|
for msg in reversed(all_messages):
|
||||||
|
if msg.is_from_assistant:
|
||||||
|
return [msg]
|
||||||
|
# Wenn keine Assistant-Nachricht, gib leere Liste zurück
|
||||||
|
return []
|
||||||
|
|
||||||
return new_messages
|
return new_messages
|
||||||
|
|
||||||
def _get_all_messages(self) -> List[ChatMessage]:
|
def _get_all_messages(self) -> List[ChatMessage]:
|
||||||
|
|
@ -805,7 +823,9 @@ class ClaudeChatInterface:
|
||||||
|
|
||||||
msg_id = elem.get_attribute("data-message-id")
|
msg_id = elem.get_attribute("data-message-id")
|
||||||
if not msg_id:
|
if not msg_id:
|
||||||
msg_id = f"claude_{i}_{hash(text[:100])}"
|
# WICHTIG: ID nur aus Text-Hash generieren, NICHT aus Index!
|
||||||
|
# So bleibt die ID stabil auch wenn sich die Reihenfolge ändert
|
||||||
|
msg_id = f"claude_{hash(text[:200])}"
|
||||||
|
|
||||||
messages.append(ChatMessage(
|
messages.append(ChatMessage(
|
||||||
id=msg_id,
|
id=msg_id,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue