From e5f86f25f2ec0ad9f3fbf9897ec6a8d627ef6261 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Fri, 17 Apr 2026 00:38:34 +0200 Subject: [PATCH] fix(coding-agent): honor PI_PACKAGE_DIR for bun asset paths closes #3074 --- packages/coding-agent/CHANGELOG.md | 1 + packages/coding-agent/src/config.ts | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index b2bc5ff4..55788e32 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixed - Fixed missing root exports for `RpcClient` and RPC protocol types from `@mariozechner/pi-coding-agent`, so ESM consumers can import them from the main package entrypoint ([#3275](https://github.com/badlogic/pi-mono/issues/3275)) +- Fixed Bun binary asset path resolution to honor `PI_PACKAGE_DIR` for built-in themes, HTML export templates, and interactive bundled assets ([#3074](https://github.com/badlogic/pi-mono/issues/3074)) ## [0.67.6] - 2026-04-16 diff --git a/packages/coding-agent/src/config.ts b/packages/coding-agent/src/config.ts index 4ed14a02..cc663d76 100644 --- a/packages/coding-agent/src/config.ts +++ b/packages/coding-agent/src/config.ts @@ -110,7 +110,7 @@ export function getPackageDir(): string { */ export function getThemesDir(): string { if (isBunBinary) { - return join(dirname(process.execPath), "theme"); + return join(getPackageDir(), "theme"); } // Theme is in modes/interactive/theme/ relative to src/ or dist/ const packageDir = getPackageDir(); @@ -126,7 +126,7 @@ export function getThemesDir(): string { */ export function getExportTemplateDir(): string { if (isBunBinary) { - return join(dirname(process.execPath), "export-html"); + return join(getPackageDir(), "export-html"); } const packageDir = getPackageDir(); const srcOrDist = existsSync(join(packageDir, "src")) ? "src" : "dist"; @@ -166,7 +166,7 @@ export function getChangelogPath(): string { */ export function getInteractiveAssetsDir(): string { if (isBunBinary) { - return join(dirname(process.execPath), "assets"); + return join(getPackageDir(), "assets"); } const packageDir = getPackageDir(); const srcOrDist = existsSync(join(packageDir, "src")) ? "src" : "dist";