Allow @ in workflow names to support scoped packages#990
Conversation
🦋 Changeset detectedLatest commit: 9679dff The changes in this PR will be included in the next version bump. This PR includes changesets to release 14 packages
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 |
🧪 E2E Test Results❌ Some tests failed Summary
❌ Failed Tests🌍 Community Worlds (42 failed)mongodb (1 failed):
turso (41 failed):
Details by Category✅ ▲ Vercel Production
✅ 💻 Local Development
✅ 📦 Local Production
✅ 🐘 Local Postgres
✅ 🪟 Windows
❌ 🌍 Community Worlds
✅ 📋 Other
|
📊 Benchmark Results
workflow with no steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Nitro | Next.js (Turbopack) workflow with 1 step💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) | Nitro workflow with 10 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Nitro | Next.js (Turbopack) | Express workflow with 25 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Nitro | Next.js (Turbopack) | Express workflow with 50 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Nitro | Next.js (Turbopack) | Express Promise.all with 10 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) | Nitro Promise.all with 25 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Nitro | Next.js (Turbopack) Promise.all with 50 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Nitro | Express | Next.js (Turbopack) Promise.race with 10 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) | Nitro | Express Promise.race with 25 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Nitro | Next.js (Turbopack) Promise.race with 50 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) | Nitro | Express Stream Benchmarks (includes TTFB metrics)workflow with stream💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) | Nitro SummaryFastest Framework by WorldWinner determined by most benchmark wins
Fastest World by FrameworkWinner determined by most benchmark wins
Column Definitions
Worlds:
|
There was a problem hiding this comment.
Pull request overview
This PR intends to allow @ in workflow names so they can align with scoped npm package naming (e.g., @scope/pkg), but the diff provided only adds a Changesets entry and does not include the corresponding runtime validation change.
Changes:
- Added a patch changeset for
@workflow/coredescribing support for@in workflow names.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
pranaygp
left a comment
There was a problem hiding this comment.
Good change overall — the regex update, error message, tests, and step-handler refactoring all look correct. A couple of minor nits below.
|
Note: Step names have the same raw-interpolation issue that this PR fixes for workflow names. At `__wkf_step_${queueItem.stepName}`There's no Lower priority since step names come from compiler-generated function names rather than npm package names, but worth addressing for completeness. |
5cb6def to
9679dff
Compare
pranaygp
left a comment
There was a problem hiding this comment.
Looks good — the regex update, error message, tests, and step-handler refactoring are all solid. The JSDoc comment has been updated too. Approving.

Allow
@in workflow names to support scoped packagesWhat changed?
Modified the workflow core package to allow the
@character in workflow names, enabling support for scoped npm packages (e.g.,@workflow/core).How to test?
Create a workflow with a name that includes the
@character, such as@my-org/workflow-name, and verify that it works correctly without validation errors.Why make this change?
This change enables users to name their workflows after scoped npm packages, which follow the
@scope/package-nameconvention. Previously, the@character was likely disallowed in workflow names, preventing users from aligning workflow names with their scoped package names.