@oh-my-pi/pi-coding-agent 11.14.0 → 11.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [11.14.1] - 2026-02-12
6
+ ### Changed
7
+
8
+ - Improved Bun binary detection to check `Bun.env.PI_COMPILED` environment variable
9
+ - Enhanced Bun package manager update to install specific version instead of latest
10
+ - Added post-update verification for Bun installations to warn if expected version was not installed
11
+
12
+ ### Fixed
13
+
14
+ - Fixed Bun update process to properly handle version pinning and report installation mismatches
15
+
5
16
  ## [11.14.0] - 2026-02-12
6
17
  ### Added
7
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oh-my-pi/pi-coding-agent",
3
- "version": "11.14.0",
3
+ "version": "11.14.2",
4
4
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "ompConfig": {
@@ -84,12 +84,12 @@
84
84
  },
85
85
  "dependencies": {
86
86
  "@mozilla/readability": "0.6.0",
87
- "@oh-my-pi/omp-stats": "11.14.0",
88
- "@oh-my-pi/pi-agent-core": "11.14.0",
89
- "@oh-my-pi/pi-ai": "11.14.0",
90
- "@oh-my-pi/pi-natives": "11.14.0",
91
- "@oh-my-pi/pi-tui": "11.14.0",
92
- "@oh-my-pi/pi-utils": "11.14.0",
87
+ "@oh-my-pi/omp-stats": "11.14.2",
88
+ "@oh-my-pi/pi-agent-core": "11.14.2",
89
+ "@oh-my-pi/pi-ai": "11.14.2",
90
+ "@oh-my-pi/pi-natives": "11.14.2",
91
+ "@oh-my-pi/pi-tui": "11.14.2",
92
+ "@oh-my-pi/pi-utils": "11.14.2",
93
93
  "@sinclair/typebox": "^0.34.48",
94
94
  "@xterm/headless": "^6.0.0",
95
95
  "ajv": "^8.17.1",
@@ -17,7 +17,10 @@ import { theme } from "../modes/theme/theme";
17
17
  * Detect if we're running as a Bun compiled binary.
18
18
  */
19
19
  const isBunBinary =
20
- import.meta.url.includes("$bunfs") || import.meta.url.includes("~BUN") || import.meta.url.includes("%7EBUN");
20
+ Bun.env.PI_COMPILED ||
21
+ import.meta.url.includes("$bunfs") ||
22
+ import.meta.url.includes("~BUN") ||
23
+ import.meta.url.includes("%7EBUN");
21
24
 
22
25
  const REPO = "can1357/oh-my-pi";
23
26
  const PACKAGE = "@oh-my-pi/pi-coding-agent";
@@ -155,15 +158,33 @@ function getNativeAddonName(): string {
155
158
  /**
156
159
  * Update via bun package manager.
157
160
  */
158
- async function updateViaBun(): Promise<void> {
161
+ async function updateViaBun(expectedVersion: string): Promise<void> {
159
162
  console.log(chalk.dim("Updating via bun..."));
160
-
161
163
  try {
162
- execSync(`bun update --latest -g ${PACKAGE}`, { stdio: "inherit" });
163
- console.log(chalk.green(`\n${theme.status.success} Update complete`));
164
+ execSync(`bun install -g ${PACKAGE}@${expectedVersion}`, { stdio: "inherit" });
164
165
  } catch (error) {
165
- throw new Error("bun update failed", { cause: error });
166
+ throw new Error("bun install failed", { cause: error });
167
+ }
168
+
169
+ // Verify the update actually took effect
170
+ try {
171
+ const result = spawnSync("bun", ["pm", "ls", "-g"], { encoding: "utf-8", stdio: "pipe" });
172
+ const output = result.stdout || "";
173
+ const match = output.match(new RegExp(`${PACKAGE.replace("/", "\\/")}@(\\S+)`));
174
+ if (match) {
175
+ const installedVersion = match[1];
176
+ if (compareVersions(installedVersion, expectedVersion) < 0) {
177
+ console.log(
178
+ chalk.yellow(`\nWarning: bun reports ${installedVersion} installed, expected ${expectedVersion}`),
179
+ );
180
+ console.log(chalk.yellow(`Try: bun install -g ${PACKAGE}@latest`));
181
+ return;
182
+ }
183
+ }
184
+ } catch {
185
+ // Verification is best-effort, don't fail the update
166
186
  }
187
+ console.log(chalk.green(`\n${theme.status.success} Update complete`));
167
188
  }
168
189
 
169
190
  /**
@@ -280,7 +301,7 @@ export async function runUpdateCommand(opts: { force: boolean; check: boolean })
280
301
  // Choose update method
281
302
  try {
282
303
  if (!isBunBinary && hasBun()) {
283
- await updateViaBun();
304
+ await updateViaBun(release.version);
284
305
  } else {
285
306
  await updateViaBinary(release);
286
307
  }