diff --git a/diagnostic/index.html b/diagnostic/index.html
index b0f671d..91e43e4 100644
--- a/diagnostic/index.html
+++ b/diagnostic/index.html
@@ -1751,7 +1751,11 @@
}
if (msg.type === 'chat_final') {
- addChat('received', msg.text || '', 'chat:final');
+ // KEINE Bubble mehr rendern: ARIA-Antworten kommen ausschliesslich via
+ // rvs_chat (traegt projectId → landet im richtigen Kontext). chat_final
+ // stammt vom Gateway-Watch und hat KEINE projectId — wuerde also eine
+ // untagged Duplikat-Bubble im Hauptchat erzeugen. Nur noch als
+ // Aktivitaets-/Trace-Ende-Signal relevant (das macht der Server).
return;
}
if (msg.type === 'file_from_aria') {
diff --git a/diagnostic/server.js b/diagnostic/server.js
index e99f3cc..69d3915 100644
--- a/diagnostic/server.js
+++ b/diagnostic/server.js
@@ -660,11 +660,11 @@ function handleGatewayMessage(msg) {
broadcast({ type: "agent_activity", activity: "idle" });
pendingMessageTime = 0; // Watchdog: Antwort erhalten
updateAgentActivity();
- // Antwort in Backup-Log schreiben
- try {
- const entry = JSON.stringify({ ts: Date.now(), role: "assistant", text: text.slice(0, 2000), session: activeSessionKey }) + "\n";
- fs.appendFileSync("/shared/config/chat_backup.jsonl", entry);
- } catch {}
+ // KEIN chat_backup-Write mehr hier: die Bridge (_process_core_response)
+ // ist der massgebliche Writer und schreibt den Assistant-Eintrag MIT
+ // project_id. Dieser Gateway-Watch-Pfad kennt die project_id nicht —
+ // ein Write hier erzeugte ein untagged Duplikat, das beim Reload im
+ // Hauptchat auftaucht (statt im Projekt).
return;
}