From 266070c023047e655cc0fcd0a4473c70265290f8 Mon Sep 17 00:00:00 2001 From: James Courson Date: Fri, 13 Mar 2026 14:49:39 -0400 Subject: [PATCH 1/2] fix: use globalThis for step registry to survive module duplication --- packages/core/src/private.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/core/src/private.ts b/packages/core/src/private.ts index 0eabc7b70f..e8686c3f6c 100644 --- a/packages/core/src/private.ts +++ b/packages/core/src/private.ts @@ -15,7 +15,16 @@ export type StepFunction< stepId?: string; }; -const registeredSteps = new Map(); +const RegisteredStepsKey = Symbol.for('@workflow/core//registeredSteps'); + +const globalSymbols: typeof globalThis & { + [RegisteredStepsKey]?: Map; +} = globalThis; + +const registeredSteps = (globalSymbols[RegisteredStepsKey] ??= new Map< + string, + StepFunction +>()); function getStepIdAliasCandidates(stepId: string): string[] { const parts = stepId.split('//'); From 91bb717fb11567fc9539b295a69e3e362eba0efb Mon Sep 17 00:00:00 2001 From: James Courson Date: Fri, 13 Mar 2026 15:01:42 -0400 Subject: [PATCH 2/2] add changeset --- .changeset/six-peas-make.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/six-peas-make.md diff --git a/.changeset/six-peas-make.md b/.changeset/six-peas-make.md new file mode 100644 index 0000000000..77579e013d --- /dev/null +++ b/.changeset/six-peas-make.md @@ -0,0 +1,5 @@ +--- +"@workflow/core": patch +--- + +Use globalThis-backed Map for step function registry to prevent module duplication from splitting the registry in Turbopack dev mode