improve regeneration state

This commit is contained in:
pablodanswer 2025-01-28 11:42:11 -08:00 committed by Evan Lohn
parent f842e15d64
commit 568f927b9b

View File

@ -115,11 +115,12 @@ import {
CHROME_MESSAGE,
SUBMIT_MESSAGE_TYPES,
} from "@/lib/extension/constants";
import AssistantModal from "../assistants/mine/AssistantModal";
import { getSourceMetadata } from "@/lib/sources";
import { UserSettingsModal } from "./modal/UserSettingsModal";
import { AlignStartVertical } from "lucide-react";
import { AgenticMessage } from "./message/AgenticMessage";
import AssistantModal from "../assistants/mine/AssistantModal";
const TEMP_USER_MESSAGE_ID = -1;
const TEMP_ASSISTANT_MESSAGE_ID = -2;
@ -730,10 +731,20 @@ export function ChatPage({
newState: RegenerationState | null,
sessionId?: string | null
) => {
const newRegenerationState = new Map(regenerationState);
newRegenerationState.set(
sessionId !== undefined && sessionId != null
? sessionId
: currentSessionId(),
newState
);
setRegenerationState((prevState) => {
const newRegenerationState = new Map(prevState);
newRegenerationState.set(
sessionId !== undefined ? sessionId : currentSessionId(),
sessionId !== undefined && sessionId != null
? sessionId
: currentSessionId(),
newState
);
return newRegenerationState;
@ -747,6 +758,7 @@ export function ChatPage({
const currentRegenerationState = (): RegenerationState | null => {
return regenerationState.get(currentSessionId()) || null;
};
const [canContinue, setCanContinue] = useState<Map<string | null, boolean>>(
new Map([[null, false]])
);
@ -1172,12 +1184,12 @@ export function ChatPage({
const messageToResend = messageHistory.find(
(message) => message.messageId === messageIdToResend
);
updateRegenerationState(
regenerationRequest
? { regenerating: true, finalMessageIndex: messageIdToResend || 0 }
: null
);
if (messageIdToResend) {
updateRegenerationState(
{ regenerating: true, finalMessageIndex: messageIdToResend },
currentSessionId()
);
}
const messageMap = currentMessageMap(completeMessageDetail);
const messageToResendParent =
messageToResend?.parentMessageId !== null &&
@ -2494,6 +2506,15 @@ export function ChatPage({
const messageMap = currentMessageMap(
completeMessageDetail
);
if (
currentRegenerationState()?.finalMessageIndex &&
currentRegenerationState()?.finalMessageIndex! <
message.messageId
) {
return <></>;
}
const messageReactComponentKey = `${i}-${currentSessionId()}`;
const parentMessage = message.parentMessageId
? messageMap.get(message.parentMessageId)
@ -2515,7 +2536,13 @@ export function ChatPage({
>
<HumanMessage
stopGenerating={stopGenerating}
content={message.message}
content={
message.message +
`final message index is ${
currentRegenerationState()
?.finalMessageIndex
}`
}
files={message.files}
messageId={message.messageId}
onEdit={(editedContent) => {