From 780e7655c96e3e4f962841fd30f46d67041d28d6 Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Tue, 10 Feb 2026 20:10:06 -0800 Subject: [PATCH 1/2] Fix projectConfig.projectId containing project name instead of ID --- packages/cli/src/lib/inspect/env.ts | 6 +++++- packages/cli/src/lib/inspect/web.ts | 3 ++- packages/core/src/runtime/world.ts | 1 + packages/web/app/server/workflow-server-actions.server.ts | 5 +++++ packages/world-vercel/src/utils.ts | 3 +++ 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/lib/inspect/env.ts b/packages/cli/src/lib/inspect/env.ts index c4137dfbe2..c78d5a3344 100644 --- a/packages/cli/src/lib/inspect/env.ts +++ b/packages/cli/src/lib/inspect/env.ts @@ -40,6 +40,7 @@ export const getEnvVars = (): Record => { WORKFLOW_VERCEL_ENV: env.WORKFLOW_VERCEL_ENV || '', WORKFLOW_VERCEL_AUTH_TOKEN: env.WORKFLOW_VERCEL_AUTH_TOKEN || '', WORKFLOW_VERCEL_PROJECT: env.WORKFLOW_VERCEL_PROJECT || '', + WORKFLOW_VERCEL_PROJECT_NAME: env.WORKFLOW_VERCEL_PROJECT_NAME || '', WORKFLOW_VERCEL_TEAM: env.WORKFLOW_VERCEL_TEAM || '', WORKFLOW_LOCAL_UI: env.WORKFLOW_LOCAL_UI || '', PORT: env.PORT || '', @@ -189,7 +190,10 @@ export const inferVercelEnvVars = async () => { const inferredProject = await inferVercelProjectAndTeam(); if (inferredProject) { const { projectId, projectName, teamId } = inferredProject; - envVars.WORKFLOW_VERCEL_PROJECT = projectName || projectId; + // WORKFLOW_VERCEL_PROJECT is the real project ID (e.g., prj_xxx) + envVars.WORKFLOW_VERCEL_PROJECT = projectId; + // WORKFLOW_VERCEL_PROJECT_NAME is the project slug (e.g., my-app) + envVars.WORKFLOW_VERCEL_PROJECT_NAME = projectName || projectId; envVars.WORKFLOW_VERCEL_TEAM = teamId; writeEnvVars(envVars); } else { diff --git a/packages/cli/src/lib/inspect/web.ts b/packages/cli/src/lib/inspect/web.ts index 34cb77d2db..8915beeb25 100644 --- a/packages/cli/src/lib/inspect/web.ts +++ b/packages/cli/src/lib/inspect/web.ts @@ -98,7 +98,8 @@ export async function launchWebUI( envVars.WORKFLOW_TARGET_WORLD ); const teamSlug = envVars.WORKFLOW_VERCEL_TEAM; - const projectName = envVars.WORKFLOW_VERCEL_PROJECT; + const projectName = + envVars.WORKFLOW_VERCEL_PROJECT_NAME || envVars.WORKFLOW_VERCEL_PROJECT; // Check if user wants local UI via flag or environment variable const useLocalUi = flags.localUi; diff --git a/packages/core/src/runtime/world.ts b/packages/core/src/runtime/world.ts index 1da089e729..8e14940d76 100644 --- a/packages/core/src/runtime/world.ts +++ b/packages/core/src/runtime/world.ts @@ -36,6 +36,7 @@ export const createWorld = (): World => { projectConfig: { environment: process.env.WORKFLOW_VERCEL_ENV, projectId: process.env.WORKFLOW_VERCEL_PROJECT, + projectName: process.env.WORKFLOW_VERCEL_PROJECT_NAME, teamId: process.env.WORKFLOW_VERCEL_TEAM, }, }); diff --git a/packages/web/app/server/workflow-server-actions.server.ts b/packages/web/app/server/workflow-server-actions.server.ts index 3e9709b3dd..5f46202a92 100644 --- a/packages/web/app/server/workflow-server-actions.server.ts +++ b/packages/web/app/server/workflow-server-actions.server.ts @@ -205,6 +205,7 @@ const WORLD_ENV_ALLOWLIST_BY_TARGET_WORLD: Record = { 'WORKFLOW_VERCEL_ENV', 'WORKFLOW_VERCEL_TEAM', 'WORKFLOW_VERCEL_PROJECT', + 'WORKFLOW_VERCEL_PROJECT_NAME', 'WORKFLOW_VERCEL_AUTH_TOKEN', ], '@workflow/world-vercel': [ @@ -212,6 +213,7 @@ const WORLD_ENV_ALLOWLIST_BY_TARGET_WORLD: Record = { 'WORKFLOW_VERCEL_ENV', 'WORKFLOW_VERCEL_TEAM', 'WORKFLOW_VERCEL_PROJECT', + 'WORKFLOW_VERCEL_PROJECT_NAME', 'WORKFLOW_VERCEL_AUTH_TOKEN', ], @@ -432,6 +434,9 @@ async function getWorldFromEnv(userEnvMap: EnvMap): Promise { projectId: userEnvMap.WORKFLOW_VERCEL_PROJECT || process.env.WORKFLOW_VERCEL_PROJECT, + projectName: + userEnvMap.WORKFLOW_VERCEL_PROJECT_NAME || + process.env.WORKFLOW_VERCEL_PROJECT_NAME, teamId: userEnvMap.WORKFLOW_VERCEL_TEAM || process.env.WORKFLOW_VERCEL_TEAM, }, diff --git a/packages/world-vercel/src/utils.ts b/packages/world-vercel/src/utils.ts index d1ad41b47a..5dbe0b6988 100644 --- a/packages/world-vercel/src/utils.ts +++ b/packages/world-vercel/src/utils.ts @@ -34,7 +34,10 @@ export interface APIConfig { token?: string; headers?: RequestInit['headers']; projectConfig?: { + /** The real Vercel project ID (e.g., prj_xxx) */ projectId?: string; + /** The project name/slug (e.g., my-app), used for dashboard URLs */ + projectName?: string; teamId?: string; environment?: string; }; From 7c48db771e227304165765a28aaf6d5e47607947 Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Sat, 14 Feb 2026 02:38:31 -0800 Subject: [PATCH 2/2] add changeset --- .changeset/fix-project-config.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .changeset/fix-project-config.md diff --git a/.changeset/fix-project-config.md b/.changeset/fix-project-config.md new file mode 100644 index 0000000000..ef67206cd5 --- /dev/null +++ b/.changeset/fix-project-config.md @@ -0,0 +1,8 @@ +--- +"@workflow/cli": patch +"@workflow/core": patch +"@workflow/web": patch +"@workflow/world-vercel": patch +--- + +Fix `projectConfig.projectId` to contain the real project ID instead of the project name