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:
|
||||
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
|
||||
|
||||
def _get_all_messages(self) -> List[ChatMessage]:
|
||||
|
|
@ -805,7 +823,9 @@ class ClaudeChatInterface:
|
|||
|
||||
msg_id = elem.get_attribute("data-message-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(
|
||||
id=msg_id,
|
||||
|
|
|
|||
Loading…
Reference in New Issue