codeam-cli 2.36.4 → 2.36.5

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,12 @@ 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.36.4] — 2026-06-11
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Retry bd setup on transient spawn ENOENT (postinstall race)
12
+
7
13
  ## [2.36.3] — 2026-06-11
8
14
 
9
15
  ### 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.36.4",
501
+ version: "2.36.5",
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",
@@ -5900,7 +5900,7 @@ function readAnonId() {
5900
5900
  }
5901
5901
  function superProperties() {
5902
5902
  return {
5903
- cliVersion: true ? "2.36.4" : "0.0.0-dev",
5903
+ cliVersion: true ? "2.36.5" : "0.0.0-dev",
5904
5904
  nodeVersion: process.version,
5905
5905
  platform: process.platform,
5906
5906
  arch: process.arch,
@@ -17463,6 +17463,9 @@ function _defaultSpawn(binaryPath, args2, opts) {
17463
17463
  proc.on("close", (code) => resolve7({ code: code ?? -1, stdout, stderr }));
17464
17464
  });
17465
17465
  }
17466
+ var _adapterSeam = {
17467
+ sleep: (ms) => new Promise((r) => setTimeout(r, ms))
17468
+ };
17466
17469
  var BdAdapter = class {
17467
17470
  constructor(opts = {}) {
17468
17471
  this.opts = opts;
@@ -17513,7 +17516,13 @@ var BdAdapter = class {
17513
17516
  "beads",
17514
17517
  `bd ${args2.join(" ")} (cwd=${this.opts.cwd ?? process.cwd()}, shared-server)`
17515
17518
  );
17516
- return _spawnSeam.run(binary, args2, { cwd: this.opts.cwd, env });
17519
+ let res = await _spawnSeam.run(binary, args2, { cwd: this.opts.cwd, env });
17520
+ for (let attempt = 1; attempt <= 3 && res.code === -1 && res.stderr.includes("ENOENT"); attempt++) {
17521
+ log.info("beads", `bd ${args2[0]} spawn ENOENT (transient binary) \u2014 retry ${attempt}/3`);
17522
+ await _adapterSeam.sleep(750 * attempt);
17523
+ res = await _spawnSeam.run(binary, args2, { cwd: this.opts.cwd, env });
17524
+ }
17525
+ return res;
17517
17526
  }
17518
17527
  /**
17519
17528
  * `bd ready --json` → typed issue array. `bd list --json` shares the shape,
@@ -17993,8 +18002,6 @@ var _provisionSeam = {
17993
18002
  installDolt,
17994
18003
  /** No-sudo fallback: extract the dolt tarball/zip into a user-writable dir. */
17995
18004
  installDoltToDir,
17996
- /** Async sleep — behind the seam so the spawn-retry backoff is instant in tests. */
17997
- sleep: (ms) => new Promise((r) => setTimeout(r, ms)),
17998
18005
  // Probe dolt on PATH AND auto-prepend a known install dir if found off-PATH
17999
18006
  // (codespace: official install.sh drops dolt in /usr/local/bin, which the
18000
18007
  // bundled-node CLI's PATH can omit — mirrors the bd-on-PATH symlink fix).
@@ -18194,15 +18201,7 @@ async function setupAgents(bd, agents) {
18194
18201
  continue;
18195
18202
  }
18196
18203
  log.info("beads", `wiring agent natively: bd setup ${recipe} --global`);
18197
- let setup = await bd.run(["setup", recipe, "--global"]);
18198
- for (let attempt = 1; setup.code === -1 && attempt <= 2; attempt++) {
18199
- log.info(
18200
- "beads",
18201
- `bd setup ${recipe} --global spawn failed (transient: ${setup.stderr.slice(0, 80)}) \u2014 retry ${attempt}/2`
18202
- );
18203
- await _provisionSeam.sleep(1500);
18204
- setup = await bd.run(["setup", recipe, "--global"]);
18205
- }
18204
+ const setup = await bd.run(["setup", recipe, "--global"]);
18206
18205
  if (setup.code === 0) {
18207
18206
  wired.push(recipe);
18208
18207
  } else {
@@ -26501,7 +26500,7 @@ function checkChokidar() {
26501
26500
  }
26502
26501
  async function doctor(args2 = []) {
26503
26502
  const json = args2.includes("--json");
26504
- const cliVersion = true ? "2.36.4" : "0.0.0-dev";
26503
+ const cliVersion = true ? "2.36.5" : "0.0.0-dev";
26505
26504
  const apiBase = resolveApiBaseUrl();
26506
26505
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
26507
26506
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -26700,7 +26699,7 @@ async function completion(args2) {
26700
26699
  // src/commands/version.ts
26701
26700
  var import_picocolors13 = __toESM(require("picocolors"));
26702
26701
  function version2() {
26703
- const v = true ? "2.36.4" : "unknown";
26702
+ const v = true ? "2.36.5" : "unknown";
26704
26703
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
26705
26704
  }
26706
26705
 
@@ -26986,7 +26985,7 @@ function checkForUpdates() {
26986
26985
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
26987
26986
  if (process.env.CI) return;
26988
26987
  if (!process.stdout.isTTY) return;
26989
- const current = true ? "2.36.4" : null;
26988
+ const current = true ? "2.36.5" : null;
26990
26989
  if (!current) return;
26991
26990
  const cache = readCache();
26992
26991
  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.36.4",
3
+ "version": "2.36.5",
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",