debug(stt): Toasts in App + Bridge-Log fuer STT-Broadcast-Erfolg
Da kein adb-Zugriff: visuelle Debug-Pfade direkt in der App + im Diagnostic-Bridge-Tab. App: zwei Toasts beim Empfang eines stt-events - "STT empfangen: ..." sobald das chat-event mit sender=stt reinkommt - "Bubble #X ersetzt" oder "keine Placeholder → neue Bubble" Bridge: explizites Info-Log "STT-Text an RVS broadcastet (sender=stt)" nach erfolgreichem _send_to_rvs, "NICHT broadcastet" wenn die Methode False lieferte (Ping fehlgeschlagen / Verbindung tot). Naechster Test: - Sprachnachricht aufnehmen - Toast erscheint? → STT-Event kommt in App an, Bug ist im findIndex - Toast erscheint nicht? → Diagnostic Bridge-Tab pruefen ob das Log "STT-Text an RVS broadcastet" steht Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -292,14 +292,27 @@ const ChatScreen: React.FC = () => {
|
|||||||
// den gleichen Text bekommen (Bug: zweite Antwort ueberschreibt erste).
|
// den gleichen Text bekommen (Bug: zweite Antwort ueberschreibt erste).
|
||||||
if (sender === 'stt') {
|
if (sender === 'stt') {
|
||||||
const sttText = (message.payload.text as string) || '';
|
const sttText = (message.payload.text as string) || '';
|
||||||
|
// Debug-Toast: visualisiert dass das STT-Event in der App angekommen ist.
|
||||||
|
// Wenn dieser Toast NICHT erscheint, kommt das Event nicht durch (Bridge
|
||||||
|
// oder RVS broadcastet es nicht), und der Bug liegt server-side.
|
||||||
|
ToastAndroid.show(`STT empfangen: "${sttText.slice(0, 40)}"`, ToastAndroid.SHORT);
|
||||||
if (sttText) {
|
if (sttText) {
|
||||||
setMessages(prev => {
|
setMessages(prev => {
|
||||||
const idx = prev.findIndex(m =>
|
const idx = prev.findIndex(m =>
|
||||||
m.sender === 'user' && m.text.includes('Spracheingabe wird verarbeitet')
|
m.sender === 'user' && m.text.includes('Spracheingabe wird verarbeitet')
|
||||||
);
|
);
|
||||||
|
const placeholderCount = prev.filter(m =>
|
||||||
|
m.sender === 'user' && m.text.includes('Spracheingabe wird verarbeitet')
|
||||||
|
).length;
|
||||||
console.log('[Chat] STT-Result: idx=%d text="%s" placeholders=%d',
|
console.log('[Chat] STT-Result: idx=%d text="%s" placeholders=%d',
|
||||||
idx, sttText.slice(0, 60),
|
idx, sttText.slice(0, 60), placeholderCount);
|
||||||
prev.filter(m => m.sender === 'user' && m.text.includes('Spracheingabe wird verarbeitet')).length);
|
// Zweiter Toast: zeigt ob die Placeholder gefunden wurde.
|
||||||
|
ToastAndroid.show(
|
||||||
|
idx < 0
|
||||||
|
? `STT: keine Placeholder (${placeholderCount}) \u2192 neue Bubble`
|
||||||
|
: `STT: Bubble #${idx} ersetzt`,
|
||||||
|
ToastAndroid.SHORT,
|
||||||
|
);
|
||||||
const newText = `\uD83C\uDFA4 ${sttText}`;
|
const newText = `\uD83C\uDFA4 ${sttText}`;
|
||||||
if (idx < 0) {
|
if (idx < 0) {
|
||||||
// Defensiv: wenn keine Placeholder im State (z.B. weil sie nie
|
// Defensiv: wenn keine Placeholder im State (z.B. weil sie nie
|
||||||
|
|||||||
@@ -1576,7 +1576,7 @@ class ARIABridge:
|
|||||||
# STT-Text an RVS senden (fuer Anzeige in App + Diagnostic)
|
# STT-Text an RVS senden (fuer Anzeige in App + Diagnostic)
|
||||||
# sender="stt" damit Bridge es ignoriert (kein Loop)
|
# sender="stt" damit Bridge es ignoriert (kein Loop)
|
||||||
try:
|
try:
|
||||||
await self._send_to_rvs({
|
ok = await self._send_to_rvs({
|
||||||
"type": "chat",
|
"type": "chat",
|
||||||
"payload": {
|
"payload": {
|
||||||
"text": text,
|
"text": text,
|
||||||
@@ -1584,6 +1584,10 @@ class ARIABridge:
|
|||||||
},
|
},
|
||||||
"timestamp": int(asyncio.get_event_loop().time() * 1000),
|
"timestamp": int(asyncio.get_event_loop().time() * 1000),
|
||||||
})
|
})
|
||||||
|
if ok:
|
||||||
|
logger.info("[rvs] STT-Text an RVS broadcastet (sender=stt)")
|
||||||
|
else:
|
||||||
|
logger.warning("[rvs] STT-Text NICHT broadcastet — _send_to_rvs lieferte False")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning("[rvs] STT-Text konnte nicht an RVS gesendet werden: %s", e)
|
logger.warning("[rvs] STT-Text konnte nicht an RVS gesendet werden: %s", e)
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user