Found while reviewing
PR #352 changes the release contract from raw executables to .zip/.tar.gz archives, but the consumers that construct release URLs still implement the raw-binary contract.
In this repository
npm-shim/postinstall.js still constructs:
const ext = process.platform === "win32" ? ".exe" : "";
const asset = `tan-${target}${ext}`;
and writes the downloaded bytes directly as the executable. The branch's own shim test fails:
win32/x64 -> tan-x86_64-pc-windows-msvc.exe is not in the published asset table
The release workflow disables npm publishing, but leaving the code/contract inconsistent means it cannot be re-enabled and the release gate remains red.
Cross-repository consumer
The current alp-sdk-vscode origin/dev still:
- builds raw names (
tan-<triple> / .exe),
- downloads directly to
cachedBinaryPath,
- chmods/spawns that file,
- has no archive extraction/layout handling.
That directly conflicts with this repository's docs/release-contract.md, which says asset names must change only in lockstep with the extension's releaseAssetForTarget.
Impact
An archive-based tan release cannot be installed by either managed consumer. The npm shim receives a 404; if only its filename were changed, it would save archive bytes as tan. The extension behaves the same way unless its acquisition/cache layout is updated concurrently.
Acceptance criteria
- npm shim selects the archive asset, verifies its checksum, extracts the one-top-level
tan/ tree, and installs a launcher/cache layout atomically.
alp-sdk-vscode lands equivalent archive-aware download/extraction before its tan pin moves to this release.
- Cross-repository contract tests cover exact asset names and archive layout.
- The tan release is not cut until both acquisition paths are compatible.
Related: #349, #356, PR #352. A matching alp-sdk-vscode issue should track that repository's half.
Found while reviewing
PR #352 changes the release contract from raw executables to
.zip/.tar.gzarchives, but the consumers that construct release URLs still implement the raw-binary contract.In this repository
npm-shim/postinstall.jsstill constructs:and writes the downloaded bytes directly as the executable. The branch's own shim test fails:
The release workflow disables npm publishing, but leaving the code/contract inconsistent means it cannot be re-enabled and the release gate remains red.
Cross-repository consumer
The current
alp-sdk-vscodeorigin/devstill:tan-<triple>/.exe),cachedBinaryPath,That directly conflicts with this repository's
docs/release-contract.md, which says asset names must change only in lockstep with the extension'sreleaseAssetForTarget.Impact
An archive-based tan release cannot be installed by either managed consumer. The npm shim receives a 404; if only its filename were changed, it would save archive bytes as
tan. The extension behaves the same way unless its acquisition/cache layout is updated concurrently.Acceptance criteria
tan/tree, and installs a launcher/cache layout atomically.alp-sdk-vscodelands equivalent archive-aware download/extraction before its tan pin moves to this release.Related: #349, #356, PR #352. A matching
alp-sdk-vscodeissue should track that repository's half.