From e4c3cbc9d96a598b59f93d9a2fdc6ca1223f4fe5 Mon Sep 17 00:00:00 2001 From: shrimbly Date: Sat, 21 Feb 2026 22:16:19 +1300 Subject: [PATCH] fix: make saveAsFile atomic with rollback on failure Save the previous workflowId and workflowName before mutating state. If saveToFile() fails, restore the previous values so the workflow identity is unchanged. Co-Authored-By: Claude Opus 4.6 --- src/store/workflowStore.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/store/workflowStore.ts b/src/store/workflowStore.ts index 84b068aa..ed091d59 100644 --- a/src/store/workflowStore.ts +++ b/src/store/workflowStore.ts @@ -1843,7 +1843,7 @@ export const useWorkflowStore = create((set, get) => ({ return false; } - const { saveDirectoryPath } = get(); + const { saveDirectoryPath, workflowId: prevId, workflowName: prevName } = get(); if (!saveDirectoryPath) { return false; } @@ -1856,7 +1856,12 @@ export const useWorkflowStore = create((set, get) => ({ hasUnsavedChanges: true, }); - return await get().saveToFile(); + const success = await get().saveToFile(); + if (!success) { + // Rollback to previous identity on failure + set({ workflowId: prevId, workflowName: prevName }); + } + return success; }, initializeAutoSave: () => {