Fix to indicate ws disconnect on web app & save interrupted research

- A regression had stopped indicating to user that the websocket
connection had broken. Now the interrupt has some visual indication.

- Websocket disconnects from client didn't trigger the partial
research to be saved. Now we use an interrupt signal to save partial
research before closing task.
This commit is contained in:
Debanjum
2025-08-15 12:48:28 -07:00
parent 3eb8cce984
commit 59bfaf9698
2 changed files with 32 additions and 1 deletions

View File

@@ -260,6 +260,34 @@ export default function Chat() {
if (idleTimerRef.current) {
clearTimeout(idleTimerRef.current);
}
// Mark any in-progress streamed message as completed so UI updates (stop spinner, show send icon)
setMessages((prev) => {
if (!prev || prev.length === 0) return prev;
const newMessages = [...prev];
const last = newMessages[newMessages.length - 1];
if (last && !last.completed) {
last.completed = true;
}
return newMessages;
});
// Reset processing state so ChatInputArea send button reappears
setProcessQuerySignal(false);
setQueryToProcess("");
},
onError: (event) => {
console.error("WebSocket error", event);
// Perform same cleanup as onClose to avoid stuck UI
setMessages((prev) => {
if (!prev || prev.length === 0) return prev;
const newMessages = [...prev];
const last = newMessages[newMessages.length - 1];
if (last && !last.completed) {
last.completed = true;
}
return newMessages;
});
setProcessQuerySignal(false);
setQueryToProcess("");
},
});