codeam-cli 2.39.34 → 2.39.36

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
@@ -4,6 +4,23 @@ All notable changes to `codeam-cli` are documented here.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.39.35] — 2026-06-18
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Preview pre-flight installs with npm --legacy-peer-deps (not pnpm)
12
+
13
+ ### Tests
14
+
15
+ - **cli:** Integration regression for ACP reply-doubling (notification → mapper → runner)
16
+
17
+ ## [2.39.34] — 2026-06-18
18
+
19
+ ### Fixed
20
+
21
+ - **cli:** Collapse all turn text onto one chunk so the reply can't double
22
+ - **cli:** Backfill $HOME so Beads provisioning works on detached self-hosted boxes
23
+
7
24
  ## [2.39.32] — 2026-06-18
8
25
 
9
26
  ### Fixed
package/dist/index.js CHANGED
@@ -498,7 +498,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
498
498
  // package.json
499
499
  var package_default = {
500
500
  name: "codeam-cli",
501
- version: "2.39.34",
501
+ version: "2.39.36",
502
502
  description: "Workflow-continuity bridge for AI coding agents. Wrap Claude Code or Codex in a PTY and supervise, approve, and redirect the session from any device \u2014 async. The terminal companion for CodeAgent Mobile.",
503
503
  type: "commonjs",
504
504
  main: "dist/index.js",
@@ -5908,7 +5908,7 @@ function readAnonId() {
5908
5908
  }
5909
5909
  function superProperties() {
5910
5910
  return {
5911
- cliVersion: true ? "2.39.34" : "0.0.0-dev",
5911
+ cliVersion: true ? "2.39.36" : "0.0.0-dev",
5912
5912
  nodeVersion: process.version,
5913
5913
  platform: process.platform,
5914
5914
  arch: process.arch,
@@ -16965,16 +16965,10 @@ var import_path7 = __toESM(require("path"));
16965
16965
  function detectMissingNodeDeps(cwd) {
16966
16966
  if (!import_fs3.default.existsSync(import_path7.default.join(cwd, "package.json"))) return null;
16967
16967
  if (import_fs3.default.existsSync(import_path7.default.join(cwd, "node_modules"))) return null;
16968
- if (import_fs3.default.existsSync(import_path7.default.join(cwd, "pnpm-lock.yaml"))) {
16969
- return { cmd: "pnpm", args: ["install"] };
16970
- }
16971
16968
  if (import_fs3.default.existsSync(import_path7.default.join(cwd, "yarn.lock"))) {
16972
16969
  return { cmd: "yarn", args: ["install"] };
16973
16970
  }
16974
- if (import_fs3.default.existsSync(import_path7.default.join(cwd, "bun.lockb")) || import_fs3.default.existsSync(import_path7.default.join(cwd, "bun.lock"))) {
16975
- return { cmd: "bun", args: ["install"] };
16976
- }
16977
- return { cmd: "npm", args: ["install"] };
16971
+ return { cmd: "npm", args: ["install", "--legacy-peer-deps"] };
16978
16972
  }
16979
16973
  function isJsInstallCommand(cmd, args2) {
16980
16974
  const known = ["npm", "pnpm", "yarn", "bun"];
@@ -18918,6 +18912,21 @@ async function waitForDevServerReady(devServer, readyRe, opts = {
18918
18912
  return { kind: "timeout" };
18919
18913
  }
18920
18914
  function normalizeDetectionForSpawn(detection, cwd) {
18915
+ if (detection.command === "pnpm" || detection.command === "bun") {
18916
+ const raw = detection.args ?? [];
18917
+ const verb = raw[0];
18918
+ if (verb && !["exec", "dlx", "x"].includes(verb)) {
18919
+ const rest = verb === "run" ? raw.slice(1) : raw;
18920
+ const [script, ...extra] = rest;
18921
+ if (script && !script.startsWith("-")) {
18922
+ return {
18923
+ ...detection,
18924
+ command: "npm",
18925
+ args: extra.length ? ["run", script, "--", ...extra] : ["run", script]
18926
+ };
18927
+ }
18928
+ }
18929
+ }
18921
18930
  if (detection.command !== "npx") return detection;
18922
18931
  const args2 = detection.args ?? [];
18923
18932
  if (args2.length === 0) return detection;
@@ -27178,7 +27187,7 @@ function checkChokidar() {
27178
27187
  }
27179
27188
  async function doctor(args2 = []) {
27180
27189
  const json = args2.includes("--json");
27181
- const cliVersion = true ? "2.39.34" : "0.0.0-dev";
27190
+ const cliVersion = true ? "2.39.36" : "0.0.0-dev";
27182
27191
  const apiBase2 = resolveApiBaseUrl();
27183
27192
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
27184
27193
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -27377,7 +27386,7 @@ async function completion(args2) {
27377
27386
  // src/commands/version.ts
27378
27387
  var import_picocolors13 = __toESM(require("picocolors"));
27379
27388
  function version2() {
27380
- const v = true ? "2.39.34" : "unknown";
27389
+ const v = true ? "2.39.36" : "unknown";
27381
27390
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
27382
27391
  }
27383
27392
 
@@ -27663,7 +27672,7 @@ function checkForUpdates() {
27663
27672
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
27664
27673
  if (process.env.CI) return;
27665
27674
  if (!process.stdout.isTTY) return;
27666
- const current = true ? "2.39.34" : null;
27675
+ const current = true ? "2.39.36" : null;
27667
27676
  if (!current) return;
27668
27677
  const cache = readCache();
27669
27678
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.39.34",
3
+ "version": "2.39.36",
4
4
  "description": "Workflow-continuity bridge for AI coding agents. Wrap Claude Code or Codex in a PTY and supervise, approve, and redirect the session from any device — async. The terminal companion for CodeAgent Mobile.",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",