revert /reply to previous behavior (replacing session history) when full conversation provided (#6058)

This commit is contained in:
tlongwell-block
2025-12-18 12:55:30 -05:00
committed by GitHub
parent 1b059af169
commit d629fecc23
4 changed files with 36 additions and 27 deletions
+7 -3
View File
@@ -2715,15 +2715,16 @@
"ChatRequest": {
"type": "object",
"required": [
"messages",
"user_message",
"session_id"
],
"properties": {
"messages": {
"conversation_so_far": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Message"
}
},
"nullable": true
},
"recipe_name": {
"type": "string",
@@ -2735,6 +2736,9 @@
},
"session_id": {
"type": "string"
},
"user_message": {
"$ref": "#/components/schemas/Message"
}
}
},
+2 -1
View File
@@ -59,10 +59,11 @@ export type CallToolResponse = {
};
export type ChatRequest = {
messages: Array<Message>;
conversation_so_far?: Array<Message> | null;
recipe_name?: string | null;
recipe_version?: string | null;
session_id: string;
user_message: Message;
};
export type CheckProviderRequest = {
+6 -5
View File
@@ -292,12 +292,13 @@ export function useChatStream({
window.dispatchEvent(new CustomEvent('session-created'));
}
// Build message list: add new message if provided, otherwise continue with existing
const newMessage = hasNewMessage
? createUserMessage(userMessage)
: messagesRef.current[messagesRef.current.length - 1];
const currentMessages = hasNewMessage
? [...messagesRef.current, createUserMessage(userMessage)]
? [...messagesRef.current, newMessage]
: [...messagesRef.current];
// Update UI with new message before streaming
if (hasNewMessage) {
updateMessages(currentMessages);
}
@@ -310,7 +311,7 @@ export function useChatStream({
const { stream } = await reply({
body: {
session_id: sessionId,
messages: currentMessages,
user_message: newMessage,
},
throwOnError: true,
signal: abortControllerRef.current.signal,
@@ -356,7 +357,7 @@ export function useChatStream({
const { stream } = await reply({
body: {
session_id: sessionId,
messages: currentMessages,
user_message: responseMessage,
},
throwOnError: true,
signal: abortControllerRef.current.signal,