Skip to content

Commit dcd403c

Browse files
committed
fix: missing onMessageProcessed or occur multi times
1 parent 19ac5be commit dcd403c

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

packages/plugins/robot/src/composables/core/useConversation.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export interface ConversationAdapterOptions {
1111
statusManager: {
1212
isProcessing: () => boolean
1313
setProcessing: () => void
14+
resetProcessing: () => void
1415
}
1516
}
1617

@@ -43,7 +44,8 @@ export function useConversationAdapter(options: ConversationAdapterOptions) {
4344
const contextMessages = toRaw(messages.value.slice(0, -1))
4445
await onFinishRequest(finishReason ?? 'unknown', messages.value, contextMessages, messageState)
4546
const lastMessage = messages.value.at(-1)
46-
if (lastMessage) {
47+
if (lastMessage && finishReason === 'stop' && !lastMessage.tool_calls && statusManager.isProcessing()) {
48+
statusManager.resetProcessing()
4749
await onMessageProcessed(finishReason ?? 'unknown', lastMessage.content ?? '', messages.value, {})
4850
}
4951
}

packages/plugins/robot/src/composables/features/useToolCalls.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ export interface ToolCallHandlerConfig {
7777
statusManager?: {
7878
isProcessing: () => boolean
7979
setProcessing: () => void
80+
resetProcessing: () => void
8081
}
8182
}
8283

packages/plugins/robot/src/composables/useChat.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ const handleFinishRequest = async (
110110

111111
if (finishReason === 'aborted' || messageState?.status === STATUS.ABORTED) {
112112
messageState.status = STATUS.ABORTED
113+
} else if (finishReason === 'stop' && !lastMessage.tool_calls) {
114+
messageState.status = STATUS.FINISHED
115+
chatStatus.value = CHAT_STATUS.FINISHED
116+
await await onMessageProcessed(finishReason, lastMessage.content ?? '', messages.value, {})
113117
}
114118
}
115119

@@ -146,6 +150,9 @@ const {
146150
isProcessing: () => chatStatus.value === CHAT_STATUS.PROCESSING,
147151
setProcessing: () => {
148152
chatStatus.value = CHAT_STATUS.PROCESSING
153+
},
154+
resetProcessing: () => {
155+
chatStatus.value = CHAT_STATUS.FINISHED
149156
}
150157
}
151158
})
@@ -173,6 +180,9 @@ const handleToolCall = createToolCallHandler({
173180
isProcessing: () => chatStatus.value === CHAT_STATUS.PROCESSING,
174181
setProcessing: () => {
175182
chatStatus.value = CHAT_STATUS.PROCESSING
183+
},
184+
resetProcessing: () => {
185+
chatStatus.value = CHAT_STATUS.FINISHED
176186
}
177187
}
178188
})

0 commit comments

Comments
 (0)