diff --git a/src/components/HistorySidebar/index.tsx b/src/components/HistorySidebar/index.tsx index 501df675..79cad102 100644 --- a/src/components/HistorySidebar/index.tsx +++ b/src/components/HistorySidebar/index.tsx @@ -146,6 +146,9 @@ export default function HistorySidebar() { const taskIdsList = project?.tasks.map( (task: HistoryTask) => task.task_id ) || [projectId]; + const taskQuestionsList = project?.tasks.map( + (task: HistoryTask) => task.question + ); // If no tasks to replay, create an empty project if (!taskIdsList || taskIdsList.length === 0) { @@ -165,7 +168,8 @@ export default function HistorySidebar() { question, historyId, taskIdsList, - project?.project_name + project?.project_name, + taskQuestionsList ); }; diff --git a/src/lib/replay.ts b/src/lib/replay.ts index 29e19cbf..d218388f 100644 --- a/src/lib/replay.ts +++ b/src/lib/replay.ts @@ -36,7 +36,8 @@ export const loadProjectFromHistory = async ( question: string, historyId: string, taskIdsList?: string[], - projectName?: string + projectName?: string, + taskQuestions?: string[] ) => { const taskIds = taskIdsList || [projectId]; await projectStore.loadProjectFromHistory( @@ -44,7 +45,8 @@ export const loadProjectFromHistory = async ( question, projectId, historyId, - projectName + projectName, + taskQuestions ); navigate({ pathname: '/' }); }; diff --git a/src/store/projectStore.ts b/src/store/projectStore.ts index a5b4ff24..bf14d835 100644 --- a/src/store/projectStore.ts +++ b/src/store/projectStore.ts @@ -96,7 +96,8 @@ interface ProjectStore { question: string, projectId: string, historyId?: string, - projectName?: string + projectName?: string, + taskQuestions?: string[] ) => Promise; // Project-level queued messages management @@ -635,7 +636,8 @@ const projectStore = create()((set, get) => ({ question: string, projectId: string, historyId?: string, - projectName?: string + projectName?: string, + taskQuestions?: string[] ) => { const { projects, removeProject, createProject, createChatStore } = get(); @@ -679,7 +681,8 @@ const projectStore = create()((set, get) => ({ const chatStore = project.chatStores[chatId]; if (chatStore) { try { - await chatStore.getState().replay(taskId, question, 0); + const taskQuestion = taskQuestions?.[index] || question; + await chatStore.getState().replay(taskId, taskQuestion, 0); console.log(`[ProjectStore] Loaded task ${taskId}`); } catch (error) { console.error(