mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-02 21:19:12 +00:00
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:
@@ -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("");
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user