diff --git a/.github/workflows/openclaw-release-publish.yml b/.github/workflows/openclaw-release-publish.yml index ad74cfb0a917..67609299ccb4 100644 --- a/.github/workflows/openclaw-release-publish.yml +++ b/.github/workflows/openclaw-release-publish.yml @@ -619,6 +619,9 @@ jobs: --config.side-effects-cache=true ) pnpm "${install_args[@]}" || pnpm "${install_args[@]}" + # Node resolves --import tsx from the process cwd. Point that root at + # the trusted harness install instead of the frozen target checkout. + ln -s .release-harness/node_modules node_modules - name: Resolve ClawHub release plan id: clawhub_plan diff --git a/test/scripts/package-acceptance-workflow.test.ts b/test/scripts/package-acceptance-workflow.test.ts index 386ed85f5f0c..91cae796b61d 100644 --- a/test/scripts/package-acceptance-workflow.test.ts +++ b/test/scripts/package-acceptance-workflow.test.ts @@ -3952,6 +3952,9 @@ describe("package artifact reuse", () => { expect(releaseNodeSetup.with?.["install-deps"]).toBe("false"); expect(trustedReleaseToolingInstall.run).toContain("--dir .release-harness"); expect(trustedReleaseToolingInstall.run).toContain("--frozen-lockfile"); + expect(trustedReleaseToolingInstall.run).toContain( + "ln -s .release-harness/node_modules node_modules", + ); expect(fastPretagScript).toContain( "node --import tsx scripts/plugin-release-pretag-pack-check.ts", );