From 2811e62e0d4060a0cfca5bd0fac376f17bce7b9d Mon Sep 17 00:00:00 2001 From: shrimbly Date: Fri, 9 Jan 2026 20:43:48 +1300 Subject: [PATCH] feat(03-03): add workflow migration logic for legacy nodes - Migrate nanoBanana nodes without selectedModel on workflow load - Derive selectedModel from legacy model field (nano-banana, nano-banana-pro) - Set provider to gemini and appropriate displayName for migrated nodes --- src/store/workflowStore.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/store/workflowStore.ts b/src/store/workflowStore.ts index 7438d598..22781c3d 100644 --- a/src/store/workflowStore.ts +++ b/src/store/workflowStore.ts @@ -1835,6 +1835,28 @@ export const useWorkflowStore = create((set, get) => ({ }, 0); groupIdCounter = maxGroupId; + // Migrate legacy nanoBanana nodes: derive selectedModel from model field if missing + workflow.nodes = workflow.nodes.map((node) => { + if (node.type === "nanoBanana") { + const data = node.data as NanoBananaNodeData; + if (data.model && !data.selectedModel) { + const displayName = data.model === "nano-banana" ? "Nano Banana" : "Nano Banana Pro"; + return { + ...node, + data: { + ...data, + selectedModel: { + provider: "gemini" as ProviderType, + modelId: data.model, + displayName, + }, + }, + }; + } + } + return node; + }) as WorkflowNode[]; + // Look up saved config from localStorage (only if workflow has an ID) const configs = loadSaveConfigs(); const savedConfig = workflow.id ? configs[workflow.id] : null;