diff --git a/packages/cli/package.json b/packages/cli/package.json index 3b82ebf69..f732bb16f 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@openrouter/spawn", - "version": "0.26.2", + "version": "0.26.3", "type": "module", "bin": { "spawn": "cli.js" diff --git a/packages/cli/src/shared/orchestrate.ts b/packages/cli/src/shared/orchestrate.ts index aaeaa9fea..949d6c5a2 100644 --- a/packages/cli/src/shared/orchestrate.ts +++ b/packages/cli/src/shared/orchestrate.ts @@ -551,7 +551,14 @@ async function postInstall( } // Spawn CLI + skill injection (recursive spawn) - if (enabledSteps?.has("spawn") && cloud.cloudName !== "local") { + // The "spawn" step is defaultOn when --beta recursive is active, so it should + // run when no explicit steps are selected (!enabledSteps) AND the beta flag is set. + const betaFeaturesPost = new Set((process.env.SPAWN_BETA ?? "").split(",").filter(Boolean)); + if ( + cloud.cloudName !== "local" && + betaFeaturesPost.has("recursive") && + (!enabledSteps || enabledSteps.has("spawn")) + ) { await installSpawnCli(cloud.runner); await delegateCloudCredentials(cloud.runner, cloud.cloudName); await injectSpawnSkill(cloud.runner, agentName);