Skip to content

Commit dc3c2b5

Browse files
committed
correctly stop streams when creating a new chat
1 parent bbf81de commit dc3c2b5

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

frontend/app/aipanel/aipanel.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ const AIPanelComponentInner = memo(({ className, onClose }: AIPanelProps) => {
205205
const telemetryEnabled = jotai.useAtomValue(getSettingsKeyAtom("telemetry:enabled")) ?? false;
206206
const isPanelVisible = jotai.useAtomValue(WorkspaceLayoutModel.getInstance().panelVisibleAtom);
207207

208-
const { messages, sendMessage, status, setMessages, error } = useChat({
208+
const { messages, sendMessage, status, setMessages, error, stop } = useChat({
209209
transport: new DefaultChatTransport({
210210
api: `${getWebServerEndpoint()}/api/post-chat-message`,
211211
prepareSendMessagesRequest: (opts) => {
@@ -232,7 +232,7 @@ const AIPanelComponentInner = memo(({ className, onClose }: AIPanelProps) => {
232232
},
233233
});
234234

235-
model.registerUseChatData(sendMessage, setMessages, status);
235+
model.registerUseChatData(sendMessage, setMessages, status, stop);
236236

237237
// console.log("AICHAT messages", messages);
238238

frontend/app/aipanel/waveai-model.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export class WaveAIModel {
3030
private useChatSendMessage: UseChatSendMessageType | null = null;
3131
private useChatSetMessages: UseChatSetMessagesType | null = null;
3232
private useChatStatus: ChatStatus = "ready";
33+
private useChatStop: (() => void) | null = null;
3334
// Used for injecting Wave-specific message data into DefaultChatTransport's prepareSendMessagesRequest
3435
realMessage: AIMessage | null = null;
3536

@@ -135,6 +136,7 @@ export class WaveAIModel {
135136
}
136137

137138
clearChat() {
139+
this.useChatStop?.();
138140
this.clearFiles();
139141
this.isChatEmpty = true;
140142
const newChatId = crypto.randomUUID();
@@ -165,10 +167,16 @@ export class WaveAIModel {
165167
this.scrollToBottomCallback = callback;
166168
}
167169

168-
registerUseChatData(sendMessage: UseChatSendMessageType, setMessages: UseChatSetMessagesType, status: ChatStatus) {
170+
registerUseChatData(
171+
sendMessage: UseChatSendMessageType,
172+
setMessages: UseChatSetMessagesType,
173+
status: ChatStatus,
174+
stop: () => void
175+
) {
169176
this.useChatSendMessage = sendMessage;
170177
this.useChatSetMessages = setMessages;
171178
this.useChatStatus = status;
179+
this.useChatStop = stop;
172180
}
173181

174182
scrollToBottom() {

0 commit comments

Comments
 (0)