From 95941afd5f30add2f2f39a5030a500bfb17ca436 Mon Sep 17 00:00:00 2001 From: ualtinok <94532+ualtinok@users.noreply.github.com> Date: Wed, 21 Oct 2026 21:58:44 +0200 Subject: [PATCH] mason: install packed copy-count smoke with npm --omit=peer The one-copy check for @cortexkit/claustrum-client and subc-client ran 'bun install --production --omit peer', which still resolves Pi's peer tree (pi-ai -> AWS SDK). A freshly published AWS package whose own dependencies were not yet on npm broke the 2.2.2 release CI there. Users install with npm, and npm --omit=peer installs no AWS packages, so this step now runs npm install --omit=peer --omit=dev --ignore-scripts --no-audit --no-fund from the same packed tarballs, with Core forced to its packed tarball through overrides. The rest of the smoke stays on Bun. --- .../scripts/smoke-tui-pack-install.ts | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/opencode/scripts/smoke-tui-pack-install.ts b/packages/opencode/scripts/smoke-tui-pack-install.ts index 80e70d45..f329ce5d 100644 --- a/packages/opencode/scripts/smoke-tui-pack-install.ts +++ b/packages/opencode/scripts/smoke-tui-pack-install.ts @@ -590,6 +590,14 @@ try { // A fresh install of the packed OpenCode and Pi packages must hold one copy // of each shared CortexKit client. Two copies mean two error classes and two // connections, and setup's instanceof checks stop recognizing Core's errors. + // + // This install uses npm, the way users install these packages, not Bun. + // `bun install --omit peer` still resolves peer dependency trees, so Pi's + // peer dependencies (pi-ai, and the AWS SDK it depends on) made this step + // depend on the registry being consistent: a freshly published AWS package + // whose own dependencies were not yet published failed the whole install. + // npm with --omit=peer installs none of those peers. Core is forced to the + // packed tarball through overrides so no copy comes from the registry. const piPackStdout = run( 'npm', ['pack', '--json', '--pack-destination', tempRoot], @@ -616,7 +624,18 @@ try { 2, ), ) - run('bun', ['install', '--production', '--omit', 'peer'], copiesRoot) + run( + 'npm', + [ + 'install', + '--omit=peer', + '--omit=dev', + '--ignore-scripts', + '--no-audit', + '--no-fund', + ], + copiesRoot, + ) const installedFiles = await readdir(join(copiesRoot, 'node_modules'), { recursive: true, })