From e170991222205993ef1051b72fc28a9d4d85aa3c Mon Sep 17 00:00:00 2001 From: duffyduck Date: Fri, 24 Apr 2026 14:16:08 +0200 Subject: [PATCH] fix: _send_to_rvs gibt Success-Bool zurueck, _stt_remote bricht bei Send-Fehler sofort ab statt in den 45s-Timeout zu laufen. Co-Authored-By: Claude Opus 4.7 (1M context) --- bridge/aria_bridge.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/bridge/aria_bridge.py b/bridge/aria_bridge.py index 4d5d4f0..8219ba8 100644 --- a/bridge/aria_bridge.py +++ b/bridge/aria_bridge.py @@ -1452,7 +1452,7 @@ class ARIABridge: model = getattr(self.stt_engine, "model_size", "small") logger.info("[rvs] stt_request → whisper-bridge (id=%s, model=%s, %dKB)", request_id[:8], model, len(audio_b64) // 1365) - await self._send_to_rvs({ + ok = await self._send_to_rvs({ "type": "stt_request", "payload": { "requestId": request_id, @@ -1463,6 +1463,9 @@ class ARIABridge: }, "timestamp": int(loop.time() * 1000), }) + if not ok: + logger.warning("[rvs] stt_request konnte nicht gesendet werden — skip Remote") + return None return await asyncio.wait_for(future, timeout=self._STT_REMOTE_TIMEOUT_S) except asyncio.TimeoutError: logger.warning("[rvs] Remote-STT Timeout (%.0fs)", self._STT_REMOTE_TIMEOUT_S) @@ -1519,10 +1522,13 @@ class ARIABridge: except OSError: pass - async def _send_to_rvs(self, message: dict) -> None: - """Sendet eine Nachricht an die App (via RVS) mit Verbindungs-Check.""" + async def _send_to_rvs(self, message: dict) -> bool: + """Sendet eine Nachricht an die App (via RVS) mit Verbindungs-Check. + + Rueckgabe: True wenn erfolgreich gesendet, False wenn Verbindung tot. + """ if self.ws_rvs is None: - return + return False # Ping-Check: Verbindung wirklich aktiv? try: @@ -1536,12 +1542,14 @@ class ARIABridge: pass self.ws_rvs = None # Reconnect wird vom connect_to_rvs Loop uebernommen - return + return False try: await self.ws_rvs.send(json.dumps(message)) + return True except Exception: logger.warning("[rvs] Sendefehler — RVS nicht erreichbar") + return False # ── Log-Streaming an die App ─────────────────────────────