diff options
| author | soryu <soryu@soryu.co> | 2026-01-16 18:46:22 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-01-17 05:38:07 +0000 |
| commit | 6b94b5895ed27e3aef052a1843fb3f334397d1b4 (patch) | |
| tree | a55ba3ba6b806efc60cf580e6202cf10666b5992 /makima/frontend/src/routes/mesh.tsx | |
| parent | 4de5b1857c7ac637b8826ce785e1db97cf0e02e3 (diff) | |
| download | soryu-6b94b5895ed27e3aef052a1843fb3f334397d1b4.tar.gz soryu-6b94b5895ed27e3aef052a1843fb3f334397d1b4.zip | |
Update continue task system and daemon IDs
Diffstat (limited to 'makima/frontend/src/routes/mesh.tsx')
| -rw-r--r-- | makima/frontend/src/routes/mesh.tsx | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/makima/frontend/src/routes/mesh.tsx b/makima/frontend/src/routes/mesh.tsx index 050381a..cc09bca 100644 --- a/makima/frontend/src/routes/mesh.tsx +++ b/makima/frontend/src/routes/mesh.tsx @@ -8,7 +8,7 @@ import { UnifiedMeshChatInput } from "../components/mesh/UnifiedMeshChatInput"; import { useTasks } from "../hooks/useTasks"; import { useTaskSubscription, type TaskUpdateEvent, type TaskOutputEvent } from "../hooks/useTaskSubscription"; import type { TaskWithSubtasks, MeshChatContext, ContractSummary, ContractWithRelations, DaemonDirectory } from "../lib/api"; -import { startTask as startTaskApi, stopTask as stopTaskApi, getTaskOutput, listContracts, getContract, getDaemonDirectories, continueTask as continueTaskApi } from "../lib/api"; +import { startTask as startTaskApi, stopTask as stopTaskApi, getTaskOutput, listContracts, getContract, getDaemonDirectories, continueTask as continueTaskApi, resumeSupervisor } from "../lib/api"; import { DirectoryInput } from "../components/mesh/DirectoryInput"; import { useAuth } from "../contexts/AuthContext"; import { useSupervisorQuestions } from "../contexts/SupervisorQuestionsContext"; @@ -387,16 +387,29 @@ export default function MeshPage() { const handleContinue = useCallback( async (taskId: string) => { try { - // Continue the task with conversation context from previous run - const result = await continueTaskApi(taskId); - console.log(`[Mesh] Task continued with ${result.contextEntries} context entries`); - setTaskDetail((prev) => prev ? { ...prev, ...result.task } : prev); + // Check if this is a supervisor task - use resumeSupervisor API instead + if (taskDetail?.isSupervisor && taskDetail?.contractId) { + const result = await resumeSupervisor(taskDetail.contractId, { + resumeMode: "continue", + }); + console.log(`[Mesh] Supervisor resumed, daemon: ${result.daemonId}`); + // Refresh task detail to get updated state + const updated = await fetchTask(taskId); + if (updated) { + setTaskDetail(updated); + } + } else { + // Continue regular task with conversation context from previous run + const result = await continueTaskApi(taskId); + console.log(`[Mesh] Task continued with ${result.contextEntries} context entries`); + setTaskDetail((prev) => prev ? { ...prev, ...result.task } : prev); + } } catch (e) { console.error("Failed to continue task:", e); alert(e instanceof Error ? e.message : "Failed to continue task"); } }, - [] + [taskDetail?.isSupervisor, taskDetail?.contractId, fetchTask] ); const handleSave = useCallback( |
