205112021b
Drei Etappen Chat-Fixes: Etappe 1 — Such-Scroll permanent springen weg: - invertedMessages raus aus dem useEffect-Deps; neue ARIA-Nachrichten triggern den Scroll-Effect nicht mehr. Aktueller Snapshot via Ref. - onScrollToIndexFailed: statt 3 cascading Retries (120/320/600ms) nur noch EINE Retry nach 300ms. Cascading-Retries waren der Endlos-Cascade-Bug (jeder Failed-Retry triggerte 3 weitere). Etappe 2 — AsyncStorage-Race + Stuck-Thinking: - Init-Load merged statt overwrite — Nachrichten die zwischen Mount und Load-Done reinkommen werden nicht mehr verschluckt. - Stuck-Thinking-Watchdog: 180s ohne agent_activity-Update → Auto-Reset auf idle + Timeout-Bubble. Gegen "App haengt auf 'ARIA denkt'". Etappe 3 — Delivery-Handshake (WhatsApp-Style): - Pro User-Bubble: clientMsgId + deliveryStatus (queued/sending/sent/delivered/failed). - Offline-Queue: Send waehrend disconnected → 'queued' → flush bei Reconnect. - Bridge sendet chat_ack zurueck → Bubble auf 'sent' (✓). - ARIA-Reply → alle vorigen User-Bubbles 'delivered' (✓✓). - ACK-Timeout 30s, bis zu 3 Retries, danach 'failed' (rotes Tap-fuer-Retry). - Bridge: LRU-Idempotenz (200 cmids) verhindert Doppelte beim Retry. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>