codeam-cli 2.60.32 → 2.60.33

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.60.32] — 2026-07-10
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Retry ACP adapter start on a module-load crash (ERR_MODULE_NOT_FOUND)
12
+
7
13
  ## [2.60.31] — 2026-07-10
8
14
 
9
15
  ### Tests
package/dist/index.js CHANGED
@@ -5689,7 +5689,7 @@ function readAnonId() {
5689
5689
  }
5690
5690
  function superProperties() {
5691
5691
  return {
5692
- cliVersion: true ? "2.60.32" : "0.0.0-dev",
5692
+ cliVersion: true ? "2.60.33" : "0.0.0-dev",
5693
5693
  nodeVersion: process.version,
5694
5694
  platform: process.platform,
5695
5695
  arch: process.arch,
@@ -5870,7 +5870,7 @@ var os4 = __toESM(require("os"));
5870
5870
  // package.json
5871
5871
  var package_default = {
5872
5872
  name: "codeam-cli",
5873
- version: "2.60.32",
5873
+ version: "2.60.33",
5874
5874
  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.",
5875
5875
  type: "commonjs",
5876
5876
  main: "dist/index.js",
@@ -6963,7 +6963,7 @@ var CommandRelayService = class {
6963
6963
  // fresh + clear the "CLI update available" banner after a self-update
6964
6964
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
6965
6965
  // pair/reconnect). Older backends ignore the extra field.
6966
- ..."2.60.32" ? { ideVersion: "2.60.32" } : {}
6966
+ ..."2.60.33" ? { ideVersion: "2.60.33" } : {}
6967
6967
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
6968
6968
  }
6969
6969
  /**
@@ -17197,7 +17197,7 @@ async function autoUpgradeBeforeCriticalCommand() {
17197
17197
  if (process.env.NODE_ENV === "test") return;
17198
17198
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
17199
17199
  if (process.env.CI) return;
17200
- const current = true ? "2.60.32" : null;
17200
+ const current = true ? "2.60.33" : null;
17201
17201
  if (!current) return;
17202
17202
  const cache = readCache();
17203
17203
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -17214,7 +17214,7 @@ function checkForUpdates() {
17214
17214
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
17215
17215
  if (process.env.CI) return;
17216
17216
  if (!process.stdout.isTTY) return;
17217
- const current = true ? "2.60.32" : null;
17217
+ const current = true ? "2.60.33" : null;
17218
17218
  if (!current) return;
17219
17219
  const cache = readCache();
17220
17220
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -17234,7 +17234,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
17234
17234
  var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
17235
17235
  var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
17236
17236
  function currentCliVersion() {
17237
- return true ? "2.60.32" : null;
17237
+ return true ? "2.60.33" : null;
17238
17238
  }
17239
17239
  function runCmd(cmd, args2, timeoutMs) {
17240
17240
  return new Promise((resolve7) => {
@@ -31322,7 +31322,7 @@ function toEpochMs(ts) {
31322
31322
  var fs62 = __toESM(require("fs"));
31323
31323
  var os48 = __toESM(require("os"));
31324
31324
  var path66 = __toESM(require("path"));
31325
- function ensureClaudeOnboarded() {
31325
+ function ensureClaudeOnboarded(cwd) {
31326
31326
  try {
31327
31327
  const file = path66.join(os48.homedir(), ".claude.json");
31328
31328
  let config = {};
@@ -31330,17 +31330,33 @@ function ensureClaudeOnboarded() {
31330
31330
  config = JSON.parse(fs62.readFileSync(file, "utf8"));
31331
31331
  } catch {
31332
31332
  }
31333
- if (config.hasCompletedOnboarding === true && typeof config.theme === "string") {
31334
- return;
31333
+ let changed = false;
31334
+ if (config.hasCompletedOnboarding !== true || typeof config.theme !== "string") {
31335
+ config.hasCompletedOnboarding = true;
31336
+ config.theme = typeof config.theme === "string" ? config.theme : "dark";
31337
+ if (typeof config.lastOnboardingVersion !== "string") {
31338
+ config.lastOnboardingVersion = "2.1.177";
31339
+ }
31340
+ changed = true;
31335
31341
  }
31336
- config.hasCompletedOnboarding = true;
31337
- config.theme = typeof config.theme === "string" ? config.theme : "dark";
31338
- if (typeof config.lastOnboardingVersion !== "string") {
31339
- config.lastOnboardingVersion = "2.1.177";
31342
+ if (cwd) {
31343
+ const projects = config.projects && typeof config.projects === "object" ? config.projects : {};
31344
+ const entry = projects[cwd] && typeof projects[cwd] === "object" ? projects[cwd] : {};
31345
+ if (entry.hasTrustDialogAccepted !== true || entry.hasCompletedProjectOnboarding !== true) {
31346
+ entry.hasTrustDialogAccepted = true;
31347
+ entry.hasCompletedProjectOnboarding = true;
31348
+ projects[cwd] = entry;
31349
+ config.projects = projects;
31350
+ changed = true;
31351
+ }
31340
31352
  }
31353
+ if (!changed) return;
31341
31354
  fs62.mkdirSync(path66.dirname(file), { recursive: true });
31342
31355
  fs62.writeFileSync(file, JSON.stringify(config, null, 2));
31343
- log.info("claude", "pre-completed Claude onboarding (skip first-run theme picker)");
31356
+ log.info(
31357
+ "claude",
31358
+ `pre-completed Claude onboarding${cwd ? ` + trusted workspace ${cwd}` : ""}`
31359
+ );
31344
31360
  } catch (err) {
31345
31361
  log.warn("claude", `ensureClaudeOnboarded failed (non-fatal): ${err.message}`);
31346
31362
  }
@@ -31425,7 +31441,7 @@ async function start(requestedAgent) {
31425
31441
  process.once("exit", () => {
31426
31442
  localHeadroomReporter?.stop();
31427
31443
  });
31428
- if (process.env.CODESPACES === "true") ensureClaudeOnboarded();
31444
+ if (!isLocalSession()) ensureClaudeOnboarded(cwd);
31429
31445
  let beads = null;
31430
31446
  const getBeads = () => beads;
31431
31447
  const beadsReady = provisionBeadsForStart({
@@ -34227,7 +34243,7 @@ function checkChokidar() {
34227
34243
  }
34228
34244
  async function doctor(args2 = []) {
34229
34245
  const json = args2.includes("--json");
34230
- const cliVersion = true ? "2.60.32" : "0.0.0-dev";
34246
+ const cliVersion = true ? "2.60.33" : "0.0.0-dev";
34231
34247
  const apiBase2 = resolveApiBaseUrl();
34232
34248
  const diagnosticId = (0, import_node_crypto12.randomUUID)();
34233
34249
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -34426,7 +34442,7 @@ async function completion(args2) {
34426
34442
  // src/commands/version.ts
34427
34443
  var import_picocolors15 = __toESM(require("picocolors"));
34428
34444
  function version2() {
34429
- const v = true ? "2.60.32" : "unknown";
34445
+ const v = true ? "2.60.33" : "unknown";
34430
34446
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
34431
34447
  }
34432
34448
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.60.32",
3
+ "version": "2.60.33",
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",