From 3564df78d36604102fa1c2f79570f434b5375f13 Mon Sep 17 00:00:00 2001 From: David Kaya Date: Mon, 6 Apr 2026 23:41:00 +0200 Subject: [PATCH] fix: always replace builtin workflows with canonical definitions The merge logic was preserving stale persisted versions of builtin workflows, only overlaying orchestrationMode. This meant edge fixes (like the handoff loop marking) never reached users who already had the old version saved. Builtin workflows are now fully replaced on load so fixes propagate automatically. Custom (non-builtin) workflows are preserved as-is. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/main/persistence/workspaceRepository.ts | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/main/persistence/workspaceRepository.ts b/src/main/persistence/workspaceRepository.ts index b39178e..a4ec336 100644 --- a/src/main/persistence/workspaceRepository.ts +++ b/src/main/persistence/workspaceRepository.ts @@ -41,28 +41,12 @@ import { readJsonFile, writeJsonFile } from '@main/persistence/jsonStore'; function mergeBuiltinWorkflows(existingWorkflows: WorkflowDefinition[]): WorkflowDefinition[] { const builtinWorkflows = createBuiltinWorkflows(nowIso()); const builtinIds = new Set(builtinWorkflows.map((workflow) => workflow.id)); - const existingMap = new Map(existingWorkflows.map((workflow) => [workflow.id, workflow])); - - const mergedBuiltins = builtinWorkflows.map((builtin) => { - const existing = existingMap.get(builtin.id); - if (!existing) { - return builtin; - } - - return normalizeWorkflowDefinition({ - ...existing, - settings: { - ...existing.settings, - orchestrationMode: builtin.settings.orchestrationMode, - }, - }); - }); const customWorkflows = existingWorkflows .filter((workflow) => !builtinIds.has(workflow.id)) .map(normalizeWorkflowDefinition); - return [...mergedBuiltins, ...customWorkflows]; + return [...builtinWorkflows, ...customWorkflows]; } function mergeWorkflowTemplates(existingTemplates: WorkflowTemplateDefinition[]): WorkflowTemplateDefinition[] {