Skip to content

fix(sdk): include version in pnpm cp source path#491

Open
erikreinert wants to merge 5 commits into
mainfrom
fix/pnpm
Open

fix(sdk): include version in pnpm cp source path#491
erikreinert wants to merge 5 commits into
mainfrom
fix/pnpm

Conversation

@erikreinert

Copy link
Copy Markdown
Member

Summary

  • The cp step in the pnpm artifact's stepScript referenced ./source/pnpm/pnpm-{target}, but the Vorpal agent materializes the downloaded binary using the URL basename — which is pnpm-{version}-{target} after the CDN migration in 52de584. Without this fix, every pnpm build fails at the cp step on every target.
  • Identical one-line fix applied to Go, Rust, and TypeScript SDKs (./source/{name}/pnpm-{version}-{target}) so the cp source path matches what the agent actually writes to disk.
  • Verified across all four targets (aarch64-darwin, aarch64-linux, x86_64-darwin, x86_64-linux): magic-byte signatures fetched from the CDN confirm the binaries route through the URL-basename branch in cli/src/command/start/agent.rs (Mach-O for darwin, ELF for linux), which writes the URL basename verbatim with no extension stripping or archive extraction.

The cp step in the pnpm artifact's stepScript referenced
./source/pnpm/pnpm-{target}, but the agent materializes the
downloaded binary using the URL basename — which is
pnpm-{version}-{target} after the CDN migration in 52de584.
Without this fix, every pnpm build fails at the cp step on
every target. Apply the same one-line fix across Go, Rust,
and TypeScript SDKs.
@erikreinert erikreinert self-assigned this May 23, 2026
@erikreinert erikreinert added the bug Something isn't working label May 23, 2026
CI on macos-latest (macos-arm64) failed with the same class of error
that motivated DKT-2: the S3 archive at the lockfile-pinned digest
contains the old filename pnpm-{target} (no version) because it was
uploaded before the CDN URL convention changed. Since the registry
short-circuits on digest hit and S3 push is idempotent, the cached
archive cannot self-heal.

Flip the predicate so only macos-x64 uses the new
pnpm-{version}-{target} cp pattern; macos-arm64 joins linux-arm64
and linux-x64 on the old pnpm-{target} pattern that matches the
poisoned cache.

The Go SDK's strings import becomes unused after the predicate change
and is removed.
Echo the target string and expected cp source path, then ls -la
the source directory before cp runs. Gives CI logs ground-truth
visibility into what's on disk per platform so any future cache
or path divergence shows up immediately instead of requiring
code-traced inference.

Debug applied symmetrically across Go, Rust, and TypeScript SDKs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant