From 338864a8e19603bacf33e3bc1b2e97e66e0ea96c Mon Sep 17 00:00:00 2001 From: shad Date: Sun, 14 Jun 2026 14:44:51 +0400 Subject: [PATCH] fix(wizard): unique names on createStep/View/Version to avoid (tenant_id,name,kind) collisions --- src/lib/wizardApi.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/lib/wizardApi.ts b/src/lib/wizardApi.ts index 54928cb..209bfa7 100644 --- a/src/lib/wizardApi.ts +++ b/src/lib/wizardApi.ts @@ -122,7 +122,8 @@ export const wizardApi = { ops: { createStep(node: { display_name: string; dispatch_kind: string; agent_capability?: string; description?: string }): CreateOp { - const name = node.display_name.toLowerCase().replace(/[^a-z0-9]+/g, "_").slice(0, 40) || "step"; + const slug = node.display_name.toLowerCase().replace(/[^a-z0-9]+/g, "_").slice(0, 30) || "step"; + const name = `${slug}_${Date.now().toString(36)}${Math.random().toString(36).slice(2, 6)}`; return { op: "create", coll: "flow", @@ -139,7 +140,8 @@ export const wizardApi = { }; }, createView(node: { display_name: string }): CreateOp { - const name = `${node.display_name.toLowerCase().replace(/[^a-z0-9]+/g, "_").slice(0, 40) || "view"}_view`; + const slug = node.display_name.toLowerCase().replace(/[^a-z0-9]+/g, "_").slice(0, 30) || "view"; + const name = `${slug}_view_${Date.now().toString(36)}${Math.random().toString(36).slice(2, 6)}`; return { op: "create", coll: "view", @@ -162,7 +164,8 @@ export const wizardApi = { }; }, createVersion(parentDisplayName: string): CreateOp { - const name = `${parentDisplayName.toLowerCase().replace(/[^a-z0-9]+/g, "_").slice(0, 40) || "process"}_v1`; + const slug = parentDisplayName.toLowerCase().replace(/[^a-z0-9]+/g, "_").slice(0, 30) || "process"; + const name = `${slug}_v1_${Date.now().toString(36)}${Math.random().toString(36).slice(2, 6)}`; return { op: "create", coll: "version",