Skip to content

Commit 5bb7e68

Browse files
committed
fix duplicate messages, tool results are not immediately shown
1 parent 0644206 commit 5bb7e68

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/providers/BaseModelProvider.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ export class BaseModelProvider {
123123
}),
124124
)
125125
.invoke([
126-
...messages.slice(1), // exclude system message
126+
...messages, // exclude system message
127127
new HumanMessage(
128128
"Generate a concise title for this conversation — ideally under 30 characters and preferably two words.",
129129
),
@@ -192,7 +192,9 @@ export class BaseModelProvider {
192192
depth + 1,
193193
);
194194

195-
fullMessages.push(...updatedMessages);
195+
// Only push the new messages that were added during recursion
196+
const newMessages = updatedMessages.slice(fullMessages.length);
197+
fullMessages.push(...newMessages);
196198
}
197199
} catch (error) {
198200
if (streaming) {
@@ -291,8 +293,8 @@ export class BaseModelProvider {
291293
};
292294
}
293295

294-
toolMessages.push(toolMessage);
295296
await callbacks.onToolMessage?.(toolMessage, outputToolContext);
297+
toolMessages.push(toolMessage);
296298
}
297299

298300
return toolMessages;

src/store.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,8 @@ export const useProviderStore = defineStore("providers", {
182182
return accepted;
183183
},
184184
onToolMessage: (message, context) => {
185+
this.messages.push(message);
186+
185187
if (context.name === "run_query" && context.status === "success") {
186188
if (localStorage.getItem(STORAGE_KEYS.HAS_OPENED_TABLE_RESULT)) {
187189
return;
@@ -194,7 +196,6 @@ export const useProviderStore = defineStore("providers", {
194196
}
195197
}
196198

197-
this.messages.push(message);
198199
},
199200
onError: (error) => {
200201
if (!isAbortError(error)) {

0 commit comments

Comments
 (0)