Fix: Click the reset button on the agent page shared externally, and the greeting in conversation mode should not be deleted. #10567 (#10571)

### What problem does this PR solve?

Fix: Click the reset button on the agent page shared externally, and the
greeting in conversation mode should not be deleted. #10567
### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
balibabu
2025-10-15 11:22:37 +08:00
committed by GitHub
parent 34c54cd459
commit e8bfda6020
3 changed files with 22 additions and 5 deletions

View File

@ -200,12 +200,14 @@ export const useSendAgentMessage = ({
beginParams,
isShared,
refetch,
isTaskMode: isTask,
}: {
url?: string;
addEventList?: (data: IEventList, messageId: string) => void;
beginParams?: any[];
isShared?: boolean;
refetch?: () => void;
isTaskMode?: boolean;
}) => {
const { id: agentId } = useParams();
const { handleInputChange, value, setValue } = useHandleMessageInputChange();
@ -217,7 +219,7 @@ export const useSendAgentMessage = ({
return answerList[0]?.message_id;
}, [answerList]);
const isTaskMode = useIsTaskMode();
const isTaskMode = useIsTaskMode(isTask);
const { findReferenceByMessageId } = useFindMessageReference(answerList);
const prologue = useGetBeginNodePrologue();
@ -230,6 +232,7 @@ export const useSendAgentMessage = ({
addNewestOneQuestion,
addNewestOneAnswer,
removeAllMessages,
removeAllMessagesExceptFirst,
scrollToBottom,
} = useSelectDerivedMessages();
const { addEventList: addEventListFun } = useContext(AgentChatLogContext);
@ -321,8 +324,18 @@ export const useSendAgentMessage = ({
stopOutputMessage();
resetAnswerList();
setSessionId(null);
if (isTaskMode) {
removeAllMessages();
}, [resetAnswerList, removeAllMessages, stopOutputMessage]);
} else {
removeAllMessagesExceptFirst();
}
}, [
stopOutputMessage,
resetAnswerList,
isTaskMode,
removeAllMessages,
removeAllMessagesExceptFirst,
]);
const handlePressEnter = useCallback(() => {
if (trim(value) === '') return;

View File

@ -27,13 +27,16 @@ export function useSelectBeginNodeDataInputs() {
);
}
export function useIsTaskMode() {
export function useIsTaskMode(isTask?: boolean) {
const getNode = useGraphStore((state) => state.getNode);
return useMemo(() => {
if (typeof isTask === 'boolean') {
return isTask;
}
const node = getNode(BeginId);
return node?.data?.form?.mode === AgentDialogueMode.Task;
}, [getNode]);
}, [getNode, isTask]);
}
export const useGetBeginNodeDataQuery = () => {

View File

@ -59,6 +59,7 @@ export const useSendNextSharedMessage = (
addEventList,
beginParams: params,
isShared: true,
isTaskMode,
});
const ok = useCallback(