From c6bda753d725703f0df4b0509b6c7f4b8b30fed2 Mon Sep 17 00:00:00 2001 From: EtienneLescot Date: Thu, 10 Sep 2026 17:18:04 +0200 Subject: [PATCH 1/2] fix(skills): stop pinning @next on release branches by name build-skill-adapters.js resolved the adapter dist-tag from the branch name, so any push to release/** generated skills pinned to `npx --yes n8nac@next`. The committed mirrors carry the stable command, generated on main, so the CI guard "Verify committed generated skills are up to date" compared a @next build against stable files and failed on every push to a release branch since at least 2026-09-06. The same tree passes on main. The GITHUB_BASE_REF guard above only covered pull requests, not pushes. Drop the branch-name clause. The -rc/-next version check right above is the real prerelease signal: a release branch carries stable versions until its RC bump lands, and from that commit on the version check pins @next by itself. build:adapters:branch stays available when the next-channel payload is what you explicitly want. --- packages/skills/scripts/build-skill-adapters.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/skills/scripts/build-skill-adapters.js b/packages/skills/scripts/build-skill-adapters.js index 7addeaea..de0a6bb3 100644 --- a/packages/skills/scripts/build-skill-adapters.js +++ b/packages/skills/scripts/build-skill-adapters.js @@ -117,8 +117,13 @@ function resolveAdapterDistTag() { return 'next'; } + // The -rc/-next check above is the real prerelease signal. A release branch still + // carries stable versions until its RC bump lands, and its committed mirrors are + // main's stable payload, so pinning @next on the branch name alone made every push + // to release/** fail the committed-skills guard. Use build:adapters:branch when you + // explicitly want the next-channel payload. const branch = process.env.GITHUB_REF_NAME || process.env.BRANCH_NAME || readGitBranch(); - return (branch === 'next' || branch?.startsWith('release/')) ? 'next' : undefined; + return branch === 'next' ? 'next' : undefined; } function readPackageVersion(packagePath) { From b420171f12f74b36ef4692c1524effa4bab8ee7a Mon Sep 17 00:00:00 2001 From: EtienneLescot Date: Thu, 10 Sep 2026 17:26:17 +0200 Subject: [PATCH 2/2] fix(skills): align the test dist-tag resolver with the -rc rule The build resolver returns next for -rc versions; the copy in the test checked only -next, so on a release branch carrying -rc.N the two disagreed and the packaged-skills comparison would fail on a payload the build considers correct. Per review on PR #647. --- packages/skills/tests/ai-context-generator.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/skills/tests/ai-context-generator.test.ts b/packages/skills/tests/ai-context-generator.test.ts index 3a2b134b..6b9df860 100644 --- a/packages/skills/tests/ai-context-generator.test.ts +++ b/packages/skills/tests/ai-context-generator.test.ts @@ -376,7 +376,9 @@ function resolveAdapterDistTag(repoRoot: string): string | undefined { path.join(repoRoot, 'packages/skills/package.json'), ].map((packagePath) => JSON.parse(fs.readFileSync(packagePath, 'utf8')).version as string); - if (versions.some((version) => version.includes('-next'))) { + // ponytail: hand-copied from resolveAdapterDistTag in scripts/build-skill-adapters.js. + // It has already drifted twice; share one module if it drifts again. + if (versions.some((version) => version.includes('-next') || version.includes('-rc'))) { return 'next'; }