diff --git a/android/src/screens/ChatScreen.tsx b/android/src/screens/ChatScreen.tsx index d51ba29..a54d88d 100644 --- a/android/src/screens/ChatScreen.tsx +++ b/android/src/screens/ChatScreen.tsx @@ -1172,6 +1172,21 @@ const ChatScreen: React.FC = () => { }); // ARIA hat geantwortet → Watchdog clearen, falls noch armiert clearStuckWatchdog(); + // Thinking-Indikator fuer DIESEN Kontext raeumen. Die Antwort ist der + // definitive Beweis, dass der Turn fertig ist — unabhaengig davon, ob + // das agent_activity 'idle' der Bridge ankam (es kann mit abweichender + // projectId gesendet oder wegdedupt worden sein → "ARIA denkt" blieb + // sonst haengen). Zusaetzlich global raeumen, falls der sichtbare + // Kontext ueber den Legacy-Indikator lief. + { + const ansPid = ((message.payload as any).projectId as string) || ''; + setAgentActivityByCtx(prev => + prev[ansPid] && prev[ansPid].activity !== 'idle' + ? { ...prev, [ansPid]: { activity: 'idle', tool: '' } } + : prev); + setAgentActivity(cur => + cur.activity === 'idle' ? cur : { activity: 'idle', tool: '' }); + } // ALLE noch laufenden ACK-Timer clearen — Bridge hat unsere Messages // ja offensichtlich verarbeitet (sonst keine ARIA-Antwort). Wenn // ein ACK aus Netzgruenden verloren ging, soll der Retry nicht diff --git a/bridge/aria_bridge.py b/bridge/aria_bridge.py index 901af76..4812c80 100644 --- a/bridge/aria_bridge.py +++ b/bridge/aria_bridge.py @@ -1786,6 +1786,14 @@ class ARIABridge: "timestamp": int(asyncio.get_event_loop().time() * 1000), }) + # Das 'thinking' oben ging mit der REQUEST-projectId raus, das 'idle' in + # _process_core_response aber mit der TURN-projectId (Brain kann den Turn + # umgeroutet haben, z.B. Voice-Sticky). Weichen sie ab, bekaeme der + # Request-Kontext nie sein idle → "ARIA denkt" bliebe dort haengen. + # Darum hier zusaetzlich fuer die Request-projectId ein idle. + if (project_id or "") != (turn_project_id or ""): + await self._emit_activity("idle", "", project_id=project_id) + if data.get("distilling"): logger.info("[brain] Destillat laeuft im Hintergrund")