From 7910ce5d369602054982ec1e8b674d1c63ec52c6 Mon Sep 17 00:00:00 2001 From: Luke Parker <10430890+Hona@users.noreply.github.com> Date: Wed, 11 Mar 2026 23:34:58 +1000 Subject: [PATCH] fix: guard Npm.which() against infinite loop when .bin is empty (#16961) --- packages/opencode/src/npm/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/npm/index.ts b/packages/opencode/src/npm/index.ts index a67ce35b9a..544a675da7 100644 --- a/packages/opencode/src/npm/index.ts +++ b/packages/opencode/src/npm/index.ts @@ -151,7 +151,9 @@ export namespace Npm { const files = await readdir(dir).catch(() => []) if (!files.length) { await add(pkg) - return which(pkg) + const retry = await readdir(dir).catch(() => []) + if (!retry.length) throw new Error(`No binary found for package "${pkg}" after install`) + return path.join(dir, retry[0]) } return path.join(dir, files[0]) }