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).
|
||||
if (sender === 'stt') {
|
||||
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) {
|
||||
setMessages(prev => {
|
||||
const idx = prev.findIndex(m =>
|
||||
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',
|
||||
idx, sttText.slice(0, 60),
|
||||
prev.filter(m => m.sender === 'user' && m.text.includes('Spracheingabe wird verarbeitet')).length);
|
||||
idx, sttText.slice(0, 60), placeholderCount);
|
||||
// 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}`;
|
||||
if (idx < 0) {
|
||||
// Defensiv: wenn keine Placeholder im State (z.B. weil sie nie
|
||||
|
||||
Reference in New Issue
Block a user