Remove step function identifier transform out of swc-plugin and into useStep() runtime function - #337

Merged
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function
Nov 15, 2025
Merged

Remove step function identifier transform out of swc-plugin and into useStep() runtime function#337
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Nov 13, 2025

Copy link
Copy Markdown
Member

Improved step function serialization by moving the function name symbol definition from the SWC plugin to the runtime.

What changed?

  • Modified createUseStep in packages/core/src/step.ts to accept a stepFunctionName parameter and apply both the name property and the WORKFLOW_STEP_FUNCTION_NAME symbol directly to the step function at creation time
  • Removed the code in the SWC plugin that was previously responsible for adding the WORKFLOW_STEP_FUNCTION_NAME symbol to step functions
  • Updated all test outputs to reflect the removal of the redundant symbol definition code

How to test?

  1. Run the existing test suite to ensure all tests pass
  2. Create a workflow with step functions and verify that:
    • Step functions maintain their original function names
    • Step functions have the WORKFLOW_STEP_FUNCTION_NAME symbol properly attached
    • Serialization and deserialization of step functions works correctly

Why make this change?

This change improves the architecture by:

  1. Moving the responsibility for defining step function metadata to the runtime where it belongs
  2. Ensuring step functions maintain their original names, which helps with debugging and error messages
  3. Reducing redundancy by defining the symbol in one place instead of having the SWC plugin generate it for each function
  4. Making the code more maintainable by centralizing the step function creation logic

@changeset-bot

changeset-botBot commented Nov 13, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e8fe109

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
NameType
@workflow/swc-pluginPatch
@workflow/corePatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/web-sharedPatch
workflowPatch
@workflow/world-testingPatch
@workflow/nuxtPatch
@workflow/aiPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Nov 13, 2025

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-hono-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nitro-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nuxt-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-vite-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workflow-docsReadyReadyPreviewCommentNov 15, 2025 6:14am

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The useStep function calls are missing the second required argument after a recent API change. The function now requires both stepName and stepFunctionName parameters, but the builtin response handlers only provided the step name.

View Details
📝 Patch Details
diff --git a/packages/core/src/workflow.ts b/packages/core/src/workflow.ts
index f27f445..195b56e 100644
--- a/packages/core/src/workflow.ts+++ b/packages/core/src/workflow.ts@@ -339,9 +339,10 @@ export async function runWorkflow(
}
vmGlobalThis.Request = Request;
- const resJson = useStep<[any], any>('__builtin_response_json');- const resText = useStep<[any], string>('__builtin_response_text');+ const resJson = useStep<[any], any>('__builtin_response_json', '__builtin_response_json');+ const resText = useStep<[any], string>('__builtin_response_text', '__builtin_response_text');
const resArrayBuffer = useStep<[any], ArrayBuffer>(
+ '__builtin_response_array_buffer',
'__builtin_response_array_buffer'
);
class Response implements globalThis.Response {

Analysis

TypeScript compilation failure due to missing arguments in useStep calls

What fails: TypeScript compiler fails on packages/core/src/workflow.ts lines 342-344 due to missing second argument in useStep function calls

How to reproduce:

pnpm turbo run build --filter=@workflow/core

Result:

src/workflow.ts(342,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(343,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(344,28): error TS2554: Expected 2 arguments, but got 1.
Fix on Vercel

@TooTallNate
TooTallNateforce-pushed the swc-plugin-remove-outer-step-fn-wrapper branch from 66efe7e to a132ba4CompareNovember 13, 2025 23:35
@TooTallNate
TooTallNateforce-pushed the 11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function branch from 85998cc to fcfc799CompareNovember 13, 2025 23:35
Base automatically changed from swc-plugin-remove-outer-step-fn-wrapper to mainNovember 14, 2025 23:42
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@ijjk@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Remove step function identifier transform out of swc-plugin and into useStep() runtime function - #337

Merged
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function
Nov 15, 2025
Merged

Remove step function identifier transform out of swc-plugin and into useStep() runtime function#337
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Nov 13, 2025

Copy link
Copy Markdown
Member

Improved step function serialization by moving the function name symbol definition from the SWC plugin to the runtime.

What changed?

  • Modified createUseStep in packages/core/src/step.ts to accept a stepFunctionName parameter and apply both the name property and the WORKFLOW_STEP_FUNCTION_NAME symbol directly to the step function at creation time
  • Removed the code in the SWC plugin that was previously responsible for adding the WORKFLOW_STEP_FUNCTION_NAME symbol to step functions
  • Updated all test outputs to reflect the removal of the redundant symbol definition code

How to test?

  1. Run the existing test suite to ensure all tests pass
  2. Create a workflow with step functions and verify that:
    • Step functions maintain their original function names
    • Step functions have the WORKFLOW_STEP_FUNCTION_NAME symbol properly attached
    • Serialization and deserialization of step functions works correctly

Why make this change?

This change improves the architecture by:

  1. Moving the responsibility for defining step function metadata to the runtime where it belongs
  2. Ensuring step functions maintain their original names, which helps with debugging and error messages
  3. Reducing redundancy by defining the symbol in one place instead of having the SWC plugin generate it for each function
  4. Making the code more maintainable by centralizing the step function creation logic

@changeset-bot

changeset-botBot commented Nov 13, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e8fe109

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
NameType
@workflow/swc-pluginPatch
@workflow/corePatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/web-sharedPatch
workflowPatch
@workflow/world-testingPatch
@workflow/nuxtPatch
@workflow/aiPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Nov 13, 2025

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-hono-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nitro-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nuxt-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-vite-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workflow-docsReadyReadyPreviewCommentNov 15, 2025 6:14am

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The useStep function calls are missing the second required argument after a recent API change. The function now requires both stepName and stepFunctionName parameters, but the builtin response handlers only provided the step name.

View Details
📝 Patch Details
diff --git a/packages/core/src/workflow.ts b/packages/core/src/workflow.ts
index f27f445..195b56e 100644
--- a/packages/core/src/workflow.ts+++ b/packages/core/src/workflow.ts@@ -339,9 +339,10 @@ export async function runWorkflow(
}
vmGlobalThis.Request = Request;
- const resJson = useStep<[any], any>('__builtin_response_json');- const resText = useStep<[any], string>('__builtin_response_text');+ const resJson = useStep<[any], any>('__builtin_response_json', '__builtin_response_json');+ const resText = useStep<[any], string>('__builtin_response_text', '__builtin_response_text');
const resArrayBuffer = useStep<[any], ArrayBuffer>(
+ '__builtin_response_array_buffer',
'__builtin_response_array_buffer'
);
class Response implements globalThis.Response {

Analysis

TypeScript compilation failure due to missing arguments in useStep calls

What fails: TypeScript compiler fails on packages/core/src/workflow.ts lines 342-344 due to missing second argument in useStep function calls

How to reproduce:

pnpm turbo run build --filter=@workflow/core

Result:

src/workflow.ts(342,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(343,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(344,28): error TS2554: Expected 2 arguments, but got 1.
Fix on Vercel

@TooTallNate
TooTallNateforce-pushed the swc-plugin-remove-outer-step-fn-wrapper branch from 66efe7e to a132ba4CompareNovember 13, 2025 23:35
@TooTallNate
TooTallNateforce-pushed the 11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function branch from 85998cc to fcfc799CompareNovember 13, 2025 23:35
Base automatically changed from swc-plugin-remove-outer-step-fn-wrapper to mainNovember 14, 2025 23:42
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@ijjk@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove step function identifier transform out of swc-plugin and into useStep() runtime function - #337

Merged
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function
Nov 15, 2025
Merged

Remove step function identifier transform out of swc-plugin and into useStep() runtime function#337
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Nov 13, 2025

Copy link
Copy Markdown
Member

Improved step function serialization by moving the function name symbol definition from the SWC plugin to the runtime.

What changed?

  • Modified createUseStep in packages/core/src/step.ts to accept a stepFunctionName parameter and apply both the name property and the WORKFLOW_STEP_FUNCTION_NAME symbol directly to the step function at creation time
  • Removed the code in the SWC plugin that was previously responsible for adding the WORKFLOW_STEP_FUNCTION_NAME symbol to step functions
  • Updated all test outputs to reflect the removal of the redundant symbol definition code

How to test?

  1. Run the existing test suite to ensure all tests pass
  2. Create a workflow with step functions and verify that:
    • Step functions maintain their original function names
    • Step functions have the WORKFLOW_STEP_FUNCTION_NAME symbol properly attached
    • Serialization and deserialization of step functions works correctly

Why make this change?

This change improves the architecture by:

  1. Moving the responsibility for defining step function metadata to the runtime where it belongs
  2. Ensuring step functions maintain their original names, which helps with debugging and error messages
  3. Reducing redundancy by defining the symbol in one place instead of having the SWC plugin generate it for each function
  4. Making the code more maintainable by centralizing the step function creation logic

@changeset-bot

changeset-botBot commented Nov 13, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e8fe109

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
NameType
@workflow/swc-pluginPatch
@workflow/corePatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/web-sharedPatch
workflowPatch
@workflow/world-testingPatch
@workflow/nuxtPatch
@workflow/aiPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Nov 13, 2025

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-hono-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nitro-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nuxt-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-vite-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workflow-docsReadyReadyPreviewCommentNov 15, 2025 6:14am

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The useStep function calls are missing the second required argument after a recent API change. The function now requires both stepName and stepFunctionName parameters, but the builtin response handlers only provided the step name.

View Details
📝 Patch Details
diff --git a/packages/core/src/workflow.ts b/packages/core/src/workflow.ts
index f27f445..195b56e 100644
--- a/packages/core/src/workflow.ts+++ b/packages/core/src/workflow.ts@@ -339,9 +339,10 @@ export async function runWorkflow(
}
vmGlobalThis.Request = Request;
- const resJson = useStep<[any], any>('__builtin_response_json');- const resText = useStep<[any], string>('__builtin_response_text');+ const resJson = useStep<[any], any>('__builtin_response_json', '__builtin_response_json');+ const resText = useStep<[any], string>('__builtin_response_text', '__builtin_response_text');
const resArrayBuffer = useStep<[any], ArrayBuffer>(
+ '__builtin_response_array_buffer',
'__builtin_response_array_buffer'
);
class Response implements globalThis.Response {

Analysis

TypeScript compilation failure due to missing arguments in useStep calls

What fails: TypeScript compiler fails on packages/core/src/workflow.ts lines 342-344 due to missing second argument in useStep function calls

How to reproduce:

pnpm turbo run build --filter=@workflow/core

Result:

src/workflow.ts(342,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(343,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(344,28): error TS2554: Expected 2 arguments, but got 1.
Fix on Vercel

@TooTallNate
TooTallNateforce-pushed the swc-plugin-remove-outer-step-fn-wrapper branch from 66efe7e to a132ba4CompareNovember 13, 2025 23:35
@TooTallNate
TooTallNateforce-pushed the 11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function branch from 85998cc to fcfc799CompareNovember 13, 2025 23:35
Base automatically changed from swc-plugin-remove-outer-step-fn-wrapper to mainNovember 14, 2025 23:42
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@ijjk@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove step function identifier transform out of swc-plugin and into useStep() runtime function - #337

Merged
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function
Nov 15, 2025
Merged

Remove step function identifier transform out of swc-plugin and into useStep() runtime function#337
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Nov 13, 2025

Copy link
Copy Markdown
Member

Improved step function serialization by moving the function name symbol definition from the SWC plugin to the runtime.

What changed?

  • Modified createUseStep in packages/core/src/step.ts to accept a stepFunctionName parameter and apply both the name property and the WORKFLOW_STEP_FUNCTION_NAME symbol directly to the step function at creation time
  • Removed the code in the SWC plugin that was previously responsible for adding the WORKFLOW_STEP_FUNCTION_NAME symbol to step functions
  • Updated all test outputs to reflect the removal of the redundant symbol definition code

How to test?

  1. Run the existing test suite to ensure all tests pass
  2. Create a workflow with step functions and verify that:
    • Step functions maintain their original function names
    • Step functions have the WORKFLOW_STEP_FUNCTION_NAME symbol properly attached
    • Serialization and deserialization of step functions works correctly

Why make this change?

This change improves the architecture by:

  1. Moving the responsibility for defining step function metadata to the runtime where it belongs
  2. Ensuring step functions maintain their original names, which helps with debugging and error messages
  3. Reducing redundancy by defining the symbol in one place instead of having the SWC plugin generate it for each function
  4. Making the code more maintainable by centralizing the step function creation logic

@changeset-bot

changeset-botBot commented Nov 13, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e8fe109

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
NameType
@workflow/swc-pluginPatch
@workflow/corePatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/web-sharedPatch
workflowPatch
@workflow/world-testingPatch
@workflow/nuxtPatch
@workflow/aiPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Nov 13, 2025

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-hono-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nitro-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nuxt-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-vite-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workflow-docsReadyReadyPreviewCommentNov 15, 2025 6:14am

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The useStep function calls are missing the second required argument after a recent API change. The function now requires both stepName and stepFunctionName parameters, but the builtin response handlers only provided the step name.

View Details
📝 Patch Details
diff --git a/packages/core/src/workflow.ts b/packages/core/src/workflow.ts
index f27f445..195b56e 100644
--- a/packages/core/src/workflow.ts+++ b/packages/core/src/workflow.ts@@ -339,9 +339,10 @@ export async function runWorkflow(
}
vmGlobalThis.Request = Request;
- const resJson = useStep<[any], any>('__builtin_response_json');- const resText = useStep<[any], string>('__builtin_response_text');+ const resJson = useStep<[any], any>('__builtin_response_json', '__builtin_response_json');+ const resText = useStep<[any], string>('__builtin_response_text', '__builtin_response_text');
const resArrayBuffer = useStep<[any], ArrayBuffer>(
+ '__builtin_response_array_buffer',
'__builtin_response_array_buffer'
);
class Response implements globalThis.Response {

Analysis

TypeScript compilation failure due to missing arguments in useStep calls

What fails: TypeScript compiler fails on packages/core/src/workflow.ts lines 342-344 due to missing second argument in useStep function calls

How to reproduce:

pnpm turbo run build --filter=@workflow/core

Result:

src/workflow.ts(342,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(343,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(344,28): error TS2554: Expected 2 arguments, but got 1.
Fix on Vercel

@TooTallNate
TooTallNateforce-pushed the swc-plugin-remove-outer-step-fn-wrapper branch from 66efe7e to a132ba4CompareNovember 13, 2025 23:35
@TooTallNate
TooTallNateforce-pushed the 11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function branch from 85998cc to fcfc799CompareNovember 13, 2025 23:35
Base automatically changed from swc-plugin-remove-outer-step-fn-wrapper to mainNovember 14, 2025 23:42
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@ijjk@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Remove step function identifier transform out of swc-plugin and into useStep() runtime function - #337

Merged
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function
Nov 15, 2025
Merged

Remove step function identifier transform out of swc-plugin and into useStep() runtime function#337
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Nov 13, 2025

Copy link
Copy Markdown
Member

Improved step function serialization by moving the function name symbol definition from the SWC plugin to the runtime.

What changed?

  • Modified createUseStep in packages/core/src/step.ts to accept a stepFunctionName parameter and apply both the name property and the WORKFLOW_STEP_FUNCTION_NAME symbol directly to the step function at creation time
  • Removed the code in the SWC plugin that was previously responsible for adding the WORKFLOW_STEP_FUNCTION_NAME symbol to step functions
  • Updated all test outputs to reflect the removal of the redundant symbol definition code

How to test?

  1. Run the existing test suite to ensure all tests pass
  2. Create a workflow with step functions and verify that:
    • Step functions maintain their original function names
    • Step functions have the WORKFLOW_STEP_FUNCTION_NAME symbol properly attached
    • Serialization and deserialization of step functions works correctly

Why make this change?

This change improves the architecture by:

  1. Moving the responsibility for defining step function metadata to the runtime where it belongs
  2. Ensuring step functions maintain their original names, which helps with debugging and error messages
  3. Reducing redundancy by defining the symbol in one place instead of having the SWC plugin generate it for each function
  4. Making the code more maintainable by centralizing the step function creation logic

@changeset-bot

changeset-botBot commented Nov 13, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e8fe109

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
NameType
@workflow/swc-pluginPatch
@workflow/corePatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/web-sharedPatch
workflowPatch
@workflow/world-testingPatch
@workflow/nuxtPatch
@workflow/aiPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Nov 13, 2025

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-hono-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nitro-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nuxt-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-vite-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workflow-docsReadyReadyPreviewCommentNov 15, 2025 6:14am

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The useStep function calls are missing the second required argument after a recent API change. The function now requires both stepName and stepFunctionName parameters, but the builtin response handlers only provided the step name.

View Details
📝 Patch Details
diff --git a/packages/core/src/workflow.ts b/packages/core/src/workflow.ts
index f27f445..195b56e 100644
--- a/packages/core/src/workflow.ts+++ b/packages/core/src/workflow.ts@@ -339,9 +339,10 @@ export async function runWorkflow(
}
vmGlobalThis.Request = Request;
- const resJson = useStep<[any], any>('__builtin_response_json');- const resText = useStep<[any], string>('__builtin_response_text');+ const resJson = useStep<[any], any>('__builtin_response_json', '__builtin_response_json');+ const resText = useStep<[any], string>('__builtin_response_text', '__builtin_response_text');
const resArrayBuffer = useStep<[any], ArrayBuffer>(
+ '__builtin_response_array_buffer',
'__builtin_response_array_buffer'
);
class Response implements globalThis.Response {

Analysis

TypeScript compilation failure due to missing arguments in useStep calls

What fails: TypeScript compiler fails on packages/core/src/workflow.ts lines 342-344 due to missing second argument in useStep function calls

How to reproduce:

pnpm turbo run build --filter=@workflow/core

Result:

src/workflow.ts(342,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(343,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(344,28): error TS2554: Expected 2 arguments, but got 1.
Fix on Vercel

@TooTallNate
TooTallNateforce-pushed the swc-plugin-remove-outer-step-fn-wrapper branch from 66efe7e to a132ba4CompareNovember 13, 2025 23:35
@TooTallNate
TooTallNateforce-pushed the 11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function branch from 85998cc to fcfc799CompareNovember 13, 2025 23:35
Base automatically changed from swc-plugin-remove-outer-step-fn-wrapper to mainNovember 14, 2025 23:42
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@ijjk@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove step function identifier transform out of swc-plugin and into useStep() runtime function - #337

Merged
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function
Nov 15, 2025
Merged

Remove step function identifier transform out of swc-plugin and into useStep() runtime function#337
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Nov 13, 2025

Copy link
Copy Markdown
Member

Improved step function serialization by moving the function name symbol definition from the SWC plugin to the runtime.

What changed?

  • Modified createUseStep in packages/core/src/step.ts to accept a stepFunctionName parameter and apply both the name property and the WORKFLOW_STEP_FUNCTION_NAME symbol directly to the step function at creation time
  • Removed the code in the SWC plugin that was previously responsible for adding the WORKFLOW_STEP_FUNCTION_NAME symbol to step functions
  • Updated all test outputs to reflect the removal of the redundant symbol definition code

How to test?

  1. Run the existing test suite to ensure all tests pass
  2. Create a workflow with step functions and verify that:
    • Step functions maintain their original function names
    • Step functions have the WORKFLOW_STEP_FUNCTION_NAME symbol properly attached
    • Serialization and deserialization of step functions works correctly

Why make this change?

This change improves the architecture by:

  1. Moving the responsibility for defining step function metadata to the runtime where it belongs
  2. Ensuring step functions maintain their original names, which helps with debugging and error messages
  3. Reducing redundancy by defining the symbol in one place instead of having the SWC plugin generate it for each function
  4. Making the code more maintainable by centralizing the step function creation logic

@changeset-bot

changeset-botBot commented Nov 13, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e8fe109

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
NameType
@workflow/swc-pluginPatch
@workflow/corePatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/web-sharedPatch
workflowPatch
@workflow/world-testingPatch
@workflow/nuxtPatch
@workflow/aiPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Nov 13, 2025

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-hono-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nitro-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nuxt-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-vite-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workflow-docsReadyReadyPreviewCommentNov 15, 2025 6:14am

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The useStep function calls are missing the second required argument after a recent API change. The function now requires both stepName and stepFunctionName parameters, but the builtin response handlers only provided the step name.

View Details
📝 Patch Details
diff --git a/packages/core/src/workflow.ts b/packages/core/src/workflow.ts
index f27f445..195b56e 100644
--- a/packages/core/src/workflow.ts+++ b/packages/core/src/workflow.ts@@ -339,9 +339,10 @@ export async function runWorkflow(
}
vmGlobalThis.Request = Request;
- const resJson = useStep<[any], any>('__builtin_response_json');- const resText = useStep<[any], string>('__builtin_response_text');+ const resJson = useStep<[any], any>('__builtin_response_json', '__builtin_response_json');+ const resText = useStep<[any], string>('__builtin_response_text', '__builtin_response_text');
const resArrayBuffer = useStep<[any], ArrayBuffer>(
+ '__builtin_response_array_buffer',
'__builtin_response_array_buffer'
);
class Response implements globalThis.Response {

Analysis

TypeScript compilation failure due to missing arguments in useStep calls

What fails: TypeScript compiler fails on packages/core/src/workflow.ts lines 342-344 due to missing second argument in useStep function calls

How to reproduce:

pnpm turbo run build --filter=@workflow/core

Result:

src/workflow.ts(342,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(343,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(344,28): error TS2554: Expected 2 arguments, but got 1.
Fix on Vercel

@TooTallNate
TooTallNateforce-pushed the swc-plugin-remove-outer-step-fn-wrapper branch from 66efe7e to a132ba4CompareNovember 13, 2025 23:35
@TooTallNate
TooTallNateforce-pushed the 11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function branch from 85998cc to fcfc799CompareNovember 13, 2025 23:35
Base automatically changed from swc-plugin-remove-outer-step-fn-wrapper to mainNovember 14, 2025 23:42
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@ijjk@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove step function identifier transform out of swc-plugin and into useStep() runtime function - #337

Merged
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function
Nov 15, 2025
Merged

Remove step function identifier transform out of swc-plugin and into useStep() runtime function#337
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Nov 13, 2025

Copy link
Copy Markdown
Member

Improved step function serialization by moving the function name symbol definition from the SWC plugin to the runtime.

What changed?

  • Modified createUseStep in packages/core/src/step.ts to accept a stepFunctionName parameter and apply both the name property and the WORKFLOW_STEP_FUNCTION_NAME symbol directly to the step function at creation time
  • Removed the code in the SWC plugin that was previously responsible for adding the WORKFLOW_STEP_FUNCTION_NAME symbol to step functions
  • Updated all test outputs to reflect the removal of the redundant symbol definition code

How to test?

  1. Run the existing test suite to ensure all tests pass
  2. Create a workflow with step functions and verify that:
    • Step functions maintain their original function names
    • Step functions have the WORKFLOW_STEP_FUNCTION_NAME symbol properly attached
    • Serialization and deserialization of step functions works correctly

Why make this change?

This change improves the architecture by:

  1. Moving the responsibility for defining step function metadata to the runtime where it belongs
  2. Ensuring step functions maintain their original names, which helps with debugging and error messages
  3. Reducing redundancy by defining the symbol in one place instead of having the SWC plugin generate it for each function
  4. Making the code more maintainable by centralizing the step function creation logic

@changeset-bot

changeset-botBot commented Nov 13, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e8fe109

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
NameType
@workflow/swc-pluginPatch
@workflow/corePatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/web-sharedPatch
workflowPatch
@workflow/world-testingPatch
@workflow/nuxtPatch
@workflow/aiPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Nov 13, 2025

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-hono-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nitro-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nuxt-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-vite-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workflow-docsReadyReadyPreviewCommentNov 15, 2025 6:14am

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The useStep function calls are missing the second required argument after a recent API change. The function now requires both stepName and stepFunctionName parameters, but the builtin response handlers only provided the step name.

View Details
📝 Patch Details
diff --git a/packages/core/src/workflow.ts b/packages/core/src/workflow.ts
index f27f445..195b56e 100644
--- a/packages/core/src/workflow.ts+++ b/packages/core/src/workflow.ts@@ -339,9 +339,10 @@ export async function runWorkflow(
}
vmGlobalThis.Request = Request;
- const resJson = useStep<[any], any>('__builtin_response_json');- const resText = useStep<[any], string>('__builtin_response_text');+ const resJson = useStep<[any], any>('__builtin_response_json', '__builtin_response_json');+ const resText = useStep<[any], string>('__builtin_response_text', '__builtin_response_text');
const resArrayBuffer = useStep<[any], ArrayBuffer>(
+ '__builtin_response_array_buffer',
'__builtin_response_array_buffer'
);
class Response implements globalThis.Response {

Analysis

TypeScript compilation failure due to missing arguments in useStep calls

What fails: TypeScript compiler fails on packages/core/src/workflow.ts lines 342-344 due to missing second argument in useStep function calls

How to reproduce:

pnpm turbo run build --filter=@workflow/core

Result:

src/workflow.ts(342,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(343,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(344,28): error TS2554: Expected 2 arguments, but got 1.
Fix on Vercel

@TooTallNate
TooTallNateforce-pushed the swc-plugin-remove-outer-step-fn-wrapper branch from 66efe7e to a132ba4CompareNovember 13, 2025 23:35
@TooTallNate
TooTallNateforce-pushed the 11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function branch from 85998cc to fcfc799CompareNovember 13, 2025 23:35
Base automatically changed from swc-plugin-remove-outer-step-fn-wrapper to mainNovember 14, 2025 23:42
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@ijjk@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Remove step function identifier transform out of swc-plugin and into useStep() runtime function - #337

Merged
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function
Nov 15, 2025
Merged

Remove step function identifier transform out of swc-plugin and into useStep() runtime function#337
TooTallNate merged 5 commits into
mainfrom
11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Nov 13, 2025

Copy link
Copy Markdown
Member

Improved step function serialization by moving the function name symbol definition from the SWC plugin to the runtime.

What changed?

  • Modified createUseStep in packages/core/src/step.ts to accept a stepFunctionName parameter and apply both the name property and the WORKFLOW_STEP_FUNCTION_NAME symbol directly to the step function at creation time
  • Removed the code in the SWC plugin that was previously responsible for adding the WORKFLOW_STEP_FUNCTION_NAME symbol to step functions
  • Updated all test outputs to reflect the removal of the redundant symbol definition code

How to test?

  1. Run the existing test suite to ensure all tests pass
  2. Create a workflow with step functions and verify that:
    • Step functions maintain their original function names
    • Step functions have the WORKFLOW_STEP_FUNCTION_NAME symbol properly attached
    • Serialization and deserialization of step functions works correctly

Why make this change?

This change improves the architecture by:

  1. Moving the responsibility for defining step function metadata to the runtime where it belongs
  2. Ensuring step functions maintain their original names, which helps with debugging and error messages
  3. Reducing redundancy by defining the symbol in one place instead of having the SWC plugin generate it for each function
  4. Making the code more maintainable by centralizing the step function creation logic

@changeset-bot

changeset-botBot commented Nov 13, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e8fe109

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
NameType
@workflow/swc-pluginPatch
@workflow/corePatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/web-sharedPatch
workflowPatch
@workflow/world-testingPatch
@workflow/nuxtPatch
@workflow/aiPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Nov 13, 2025

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 15, 2025 6:14am
example-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-hono-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nitro-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-nuxt-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workbench-vite-workflowReadyReadyPreviewCommentNov 15, 2025 6:14am
workflow-docsReadyReadyPreviewCommentNov 15, 2025 6:14am

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The useStep function calls are missing the second required argument after a recent API change. The function now requires both stepName and stepFunctionName parameters, but the builtin response handlers only provided the step name.

View Details
📝 Patch Details
diff --git a/packages/core/src/workflow.ts b/packages/core/src/workflow.ts
index f27f445..195b56e 100644
--- a/packages/core/src/workflow.ts+++ b/packages/core/src/workflow.ts@@ -339,9 +339,10 @@ export async function runWorkflow(
}
vmGlobalThis.Request = Request;
- const resJson = useStep<[any], any>('__builtin_response_json');- const resText = useStep<[any], string>('__builtin_response_text');+ const resJson = useStep<[any], any>('__builtin_response_json', '__builtin_response_json');+ const resText = useStep<[any], string>('__builtin_response_text', '__builtin_response_text');
const resArrayBuffer = useStep<[any], ArrayBuffer>(
+ '__builtin_response_array_buffer',
'__builtin_response_array_buffer'
);
class Response implements globalThis.Response {

Analysis

TypeScript compilation failure due to missing arguments in useStep calls

What fails: TypeScript compiler fails on packages/core/src/workflow.ts lines 342-344 due to missing second argument in useStep function calls

How to reproduce:

pnpm turbo run build --filter=@workflow/core

Result:

src/workflow.ts(342,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(343,21): error TS2554: Expected 2 arguments, but got 1.
src/workflow.ts(344,28): error TS2554: Expected 2 arguments, but got 1.
Fix on Vercel

@TooTallNate
TooTallNateforce-pushed the swc-plugin-remove-outer-step-fn-wrapper branch from 66efe7e to a132ba4CompareNovember 13, 2025 23:35
@TooTallNate
TooTallNateforce-pushed the 11-13-remove_step_function_identifier_transform_out_of_swc-plugin_and_into_usestep_runtime_function branch from 85998cc to fcfc799CompareNovember 13, 2025 23:35
Base automatically changed from swc-plugin-remove-outer-step-fn-wrapper to mainNovember 14, 2025 23:42
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@ijjk@VaguelySerious