fix: preserve investigation execution history by round
This commit is contained in:
@@ -50,6 +50,7 @@ import { FeaturePopover } from "./components/feature-popover";
|
||||
import { ScheduledConditionFeed } from "./components/scheduled-condition-feed";
|
||||
import { TaskConversationReview } from "./components/task-conversation-review";
|
||||
import type { InvestigationDiscussion } from "./api/investigation-report";
|
||||
import { fetchOperationalTaskRuns, type TaskExecutionHistoryTarget } from "./api/operational-task-client";
|
||||
import { WorkbenchAgentPanels } from "./components/workbench-agent-panels";
|
||||
import { OperationalTimeline } from "./operational-timeline/operational-timeline";
|
||||
import {
|
||||
@@ -1013,6 +1014,29 @@ function MapWorkbenchContent({
|
||||
openAgentPanelForViewport();
|
||||
}
|
||||
|
||||
async function handleViewTaskExecutionHistory(
|
||||
taskId: string,
|
||||
target: TaskExecutionHistoryTarget,
|
||||
knownRunId?: string
|
||||
) {
|
||||
mapController.clearScadaAnalysis();
|
||||
let runId = knownRunId;
|
||||
if (!runId) {
|
||||
const runs = await fetchOperationalTaskRuns(taskId, getAccessToken);
|
||||
runId = runs.find((run) => (target.executionGeneration == null
|
||||
|| run.generation === target.executionGeneration)
|
||||
&& run.agent_session_id === target.sessionId)?.run_id;
|
||||
}
|
||||
if (!runId) {
|
||||
throw new Error(target.executionGeneration == null
|
||||
? "所选历史报告没有匹配的执行记录。"
|
||||
: `第 ${target.executionGeneration} 轮调查没有匹配的执行记录。`);
|
||||
}
|
||||
await agent.openTaskExecutionHistory(taskId, runId, target.sessionId);
|
||||
readingWorkspace?.close();
|
||||
openAgentPanelForViewport();
|
||||
}
|
||||
|
||||
async function handleDeleteAgentHistorySession(sessionId: string) {
|
||||
const clearsActiveAnalysis = sessionId === agent.sessionId;
|
||||
const deleted = await agent.deleteHistorySession(sessionId);
|
||||
@@ -1240,14 +1264,15 @@ function MapWorkbenchContent({
|
||||
promptSuggestionsLoading: promptSuggestions.loading,
|
||||
promptSuggestionsUnavailable: promptSuggestions.unavailable,
|
||||
activeSessionId: agent.sessionId,
|
||||
qaOnly: agent.sessionPurpose === "task_collaboration",
|
||||
qaOnly: agent.sessionPurpose === "task_collaboration" || agent.sessionPurpose === "task_execution",
|
||||
executionHistory: agent.sessionPurpose === "task_execution",
|
||||
statusLabel: agent.statusLabel,
|
||||
connectionStatus: agent.connectionStatus,
|
||||
streaming: agent.streaming,
|
||||
inputDelivery: agent.inputDelivery,
|
||||
onInputDeliveryChange: agent.setInputDelivery,
|
||||
pendingInputs: agent.pendingInputs,
|
||||
interactionRequests: agent.interactionRequests,
|
||||
interactionRequests: agent.sessionPurpose === "task_execution" ? undefined : agent.interactionRequests,
|
||||
onPendingInputDeliveryChange: agent.updateInputDelivery,
|
||||
onPendingInputEdit: (id) => agent.withdrawInput(id, true),
|
||||
onPendingInputCancel: (id) => agent.withdrawInput(id, false),
|
||||
@@ -1542,6 +1567,7 @@ function MapWorkbenchContent({
|
||||
onLoadHistorySession={handleLoadAgentHistorySession}
|
||||
onSubmitPrompt={agent.submitPrompt}
|
||||
onOpenTaskCollaboration={handleOpenTaskCollaboration}
|
||||
onViewTaskExecutionHistory={handleViewTaskExecutionHistory}
|
||||
onTaskDecision={operationalTasks.decideAction}
|
||||
onTaskExecute={operationalTasks.executeAction}
|
||||
onTaskDraftUpdate={operationalTasks.updateWorkOrderDraft}
|
||||
@@ -1699,6 +1725,7 @@ function MapWorkbenchContent({
|
||||
onLoadHistorySession={handleLoadAgentHistorySession}
|
||||
onSubmitPrompt={agent.submitPrompt}
|
||||
onOpenTaskCollaboration={handleOpenTaskCollaboration}
|
||||
onViewTaskExecutionHistory={handleViewTaskExecutionHistory}
|
||||
onTaskDecision={operationalTasks.decideAction}
|
||||
onTaskExecute={operationalTasks.executeAction}
|
||||
onTaskDraftUpdate={operationalTasks.updateWorkOrderDraft}
|
||||
|
||||
Reference in New Issue
Block a user