From 13c4205dbbdc9c38041b8d6de7caa0d9fee4966b Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Tue, 13 Jan 2026 21:33:32 +0100 Subject: [PATCH] fix: use wrapper directory in release tarballs for mise compatibility mise auto-detects single-directory archives and extracts with strip_components=1. Using a 'pi/' wrapper directory ensures the internal structure is preserved. Reverts the code workaround (theme dir fallback) in favor of fixing the tarball. --- .github/workflows/build-binaries.yml | 5 +++-- packages/coding-agent/CHANGELOG.md | 2 +- packages/coding-agent/src/config.ts | 8 +------- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-binaries.yml b/.github/workflows/build-binaries.yml index 1d9ad98a..65c425f2 100644 --- a/.github/workflows/build-binaries.yml +++ b/.github/workflows/build-binaries.yml @@ -108,9 +108,10 @@ jobs: # Create archives cd binaries - # Unix platforms (tar.gz) + # Unix platforms (tar.gz) - use wrapper directory for mise compatibility + # mise auto-detects single-directory archives and strips one component for platform in darwin-arm64 darwin-x64 linux-x64 linux-arm64; do - tar -czf pi-$platform.tar.gz -C $platform . + mv $platform pi && tar -czf pi-$platform.tar.gz pi && mv pi $platform done # Windows (zip) diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index e513ebee..3c59ec35 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -20,7 +20,7 @@ - Fix API key resolution after model switches by using provider argument ([#691](https://github.com/badlogic/pi-mono/pull/691) by [@joshp123](https://github.com/joshp123)) - Fixed z.ai thinking/reasoning: thinking toggle now correctly enables/disables thinking for z.ai models ([#688](https://github.com/badlogic/pi-mono/issues/688)) - Fixed extension loading in compiled Bun binary: extensions with local file imports now work correctly. Updated `@mariozechner/jiti` to v2.6.5 which bundles babel for Bun binary compatibility. ([#681](https://github.com/badlogic/pi-mono/issues/681)) -- Fixed theme loading when installed via mise: fallback to root directory if `theme/` subdirectory doesn't exist (mise flattens tarball structure). ([#681](https://github.com/badlogic/pi-mono/issues/681)) +- Fixed theme loading when installed via mise: use wrapper directory in release tarballs for compatibility with mise's `strip_components=1` extraction. ([#681](https://github.com/badlogic/pi-mono/issues/681)) ## [0.45.3] - 2026-01-13 diff --git a/packages/coding-agent/src/config.ts b/packages/coding-agent/src/config.ts index d192da4e..b865350e 100644 --- a/packages/coding-agent/src/config.ts +++ b/packages/coding-agent/src/config.ts @@ -52,13 +52,7 @@ export function getPackageDir(): string { */ export function getThemesDir(): string { if (isBunBinary) { - const execDir = dirname(process.execPath); - const themeDir = join(execDir, "theme"); - // Fall back to root if theme/ doesn't exist (mise flattens directory structure) - if (existsSync(themeDir)) { - return themeDir; - } - return execDir; + return join(dirname(process.execPath), "theme"); } // Theme is in modes/interactive/theme/ relative to src/ or dist/ const packageDir = getPackageDir();