fix(diagnostic+app): Chat-UI bubblig, mehrzeilig + persistente RVS + STT-Logs
Diagnostic-UI: - chat-msg ist jetzt eine richtige Bubble (border-radius 14px, Schatten, flex-Layout statt margin-Hack, Tail-Radius zur Sender-Seite hin). - Eingabefelder (haupt + Vollbild) jetzt textarea mit Auto-Resize. Enter sendet, Shift+Enter macht neue Zeile. - white-space: pre-wrap behaelt Zeilenumbrueche aus dem Text bei. Diagnostic-Server: - sendToRVS_raw nutzt jetzt die persistente rvsWs statt fuer jedes Send eine frische Verbindung aufzubauen. Der frische-WS-Pfad hatte Race- Probleme (WS schloss bevor RVS broadcasten konnte → User-Nachrichten von Diagnostic kamen nicht in der App an). Frische WS bleibt als Fallback wenn die persistente gerade tot ist. App: - console.log am Anfang des chat-handlers + im STT-Result-Handler mit findIndex-Result und Placeholder-Count. Bei nicht-erkanntem STT-Text liefert `adb logcat -s ReactNativeJS:V` jetzt direkt den Befund: kommt das Event ueberhaupt an, findet er die Placeholder? Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+14
-1
@@ -716,11 +716,24 @@ function sendToRVS_withResponse(sendType, sendPayload, expectType, clientWs) {
|
||||
|
||||
function sendToRVS_raw(msgObj) {
|
||||
if (!RVS_HOST || !RVS_TOKEN) return;
|
||||
const payload = JSON.stringify(msgObj);
|
||||
// Persistente Connection bevorzugen — die ist garantiert connected
|
||||
// und wird vom RVS direkt an alle anderen Clients (App, Bridge) broadcastet.
|
||||
// Frische Connections hatten Race-Probleme: die WS war nach dem send manchmal
|
||||
// schon zu, bevor RVS broadcasten konnte → App-Nachrichten verloren.
|
||||
if (rvsWs && rvsWs.readyState === WebSocket.OPEN) {
|
||||
try {
|
||||
rvsWs.send(payload);
|
||||
return;
|
||||
} catch (err) {
|
||||
log("warn", "rvs", `persistente Verbindung send failed (${err.message}) — Fallback frische WS`);
|
||||
}
|
||||
}
|
||||
const proto = RVS_TLS === "true" ? "wss" : "ws";
|
||||
const url = `${proto}://${RVS_HOST}:${RVS_PORT}?token=${RVS_TOKEN}`;
|
||||
const freshWs = new WebSocket(url);
|
||||
freshWs.on("open", () => {
|
||||
freshWs.send(JSON.stringify(msgObj));
|
||||
freshWs.send(payload);
|
||||
setTimeout(() => { try { freshWs.close(); } catch (_) {} }, 5000);
|
||||
});
|
||||
freshWs.on("error", () => {});
|
||||
|
||||
Reference in New Issue
Block a user