codeam-cli 2.39.18 → 2.39.20

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,18 @@ 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.19] — 2026-06-15
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Capture a larger preview dev-server log so the real failure surfaces
12
+
13
+ ## [2.39.18] — 2026-06-14
14
+
15
+ ### Added
16
+
17
+ - **cli:** Send X-Plugin-Auth-Token on conversation-history writes (SEC crit1 #819) — v2.39.18
18
+
7
19
  ## [2.39.16] — 2026-06-14
8
20
 
9
21
  ### Added
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.18",
501
+ version: "2.39.20",
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.18" : "0.0.0-dev",
5911
+ cliVersion: true ? "2.39.20" : "0.0.0-dev",
5912
5912
  nodeVersion: process.version,
5913
5913
  platform: process.platform,
5914
5914
  arch: process.arch,
@@ -14763,6 +14763,14 @@ var AcpClient = class {
14763
14763
  log.warn("acpClient", `adapter exited unexpectedly code=${code} signal=${signal}`);
14764
14764
  this.opts.onUnexpectedExit?.(code, signal);
14765
14765
  });
14766
+ child.on("error", (err) => {
14767
+ if (this.stopping) return;
14768
+ const code = err.code ?? err.message;
14769
+ const hint = err.code === "ENOEXEC" ? " \u2014 the agent binary looks like the wrong architecture or a non-executable script" : err.code === "ENOENT" ? ` \u2014 '${adapter.command}' was not found on PATH` : err.code === "EACCES" ? ` \u2014 '${adapter.command}' is not executable` : "";
14770
+ log.error("acpClient", `adapter spawn failed: ${code}${hint}`);
14771
+ this.opts.onStderr?.(`Failed to launch ${adapter.command}: ${code}${hint}`);
14772
+ this.opts.onUnexpectedExit?.(null, null);
14773
+ });
14766
14774
  if (!child.stdin || !child.stdout) {
14767
14775
  throw new Error("Spawned ACP adapter is missing stdio handles");
14768
14776
  }
@@ -19734,7 +19742,7 @@ var previewStartH = (ctx, _cmd, parsed) => {
19734
19742
  const outcome = await waitForDevServerReady(devServer, readyRe, {
19735
19743
  timeoutMs: 12e4,
19736
19744
  onChunk: (s) => {
19737
- outputTail = (outputTail + s).slice(-4e3);
19745
+ outputTail = (outputTail + s).slice(-16e3);
19738
19746
  if (!expoUrl && detection.framework === "Expo") {
19739
19747
  expoUrl = parseExpoUrl(s);
19740
19748
  }
@@ -19750,7 +19758,7 @@ var previewStartH = (ctx, _cmd, parsed) => {
19750
19758
  payload: {
19751
19759
  stage: "spawn",
19752
19760
  message: `The dev server exited (code ${outcome.code}) before it was ready. It may need a database or other services.`,
19753
- stderrTail: outputTail.slice(-2e3)
19761
+ stderrTail: outputTail.slice(-8e3)
19754
19762
  }
19755
19763
  });
19756
19764
  return;
@@ -19768,7 +19776,7 @@ var previewStartH = (ctx, _cmd, parsed) => {
19768
19776
  payload: {
19769
19777
  stage: "ready_timeout",
19770
19778
  message: "The dev server didn't become ready in time. It may be stuck waiting on a database or other service.",
19771
- stderrTail: outputTail.slice(-2e3)
19779
+ stderrTail: outputTail.slice(-8e3)
19772
19780
  }
19773
19781
  });
19774
19782
  return;
@@ -27056,7 +27064,7 @@ function checkChokidar() {
27056
27064
  }
27057
27065
  async function doctor(args2 = []) {
27058
27066
  const json = args2.includes("--json");
27059
- const cliVersion = true ? "2.39.18" : "0.0.0-dev";
27067
+ const cliVersion = true ? "2.39.20" : "0.0.0-dev";
27060
27068
  const apiBase = resolveApiBaseUrl();
27061
27069
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
27062
27070
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -27255,7 +27263,7 @@ async function completion(args2) {
27255
27263
  // src/commands/version.ts
27256
27264
  var import_picocolors13 = __toESM(require("picocolors"));
27257
27265
  function version2() {
27258
- const v = true ? "2.39.18" : "unknown";
27266
+ const v = true ? "2.39.20" : "unknown";
27259
27267
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
27260
27268
  }
27261
27269
 
@@ -27541,7 +27549,7 @@ function checkForUpdates() {
27541
27549
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
27542
27550
  if (process.env.CI) return;
27543
27551
  if (!process.stdout.isTTY) return;
27544
- const current = true ? "2.39.18" : null;
27552
+ const current = true ? "2.39.20" : null;
27545
27553
  if (!current) return;
27546
27554
  const cache = readCache();
27547
27555
  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.18",
3
+ "version": "2.39.20",
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",
@@ -1,33 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
-
4
- // src/postinstall.ts
5
- var c = {
6
- reset: "\x1B[0m",
7
- bold: "\x1B[1m",
8
- dim: "\x1B[2m",
9
- green: "\x1B[32m",
10
- cyan: "\x1B[36m",
11
- violet: "\x1B[35m",
12
- white: "\x1B[97m"
13
- };
14
- var lines = [
15
- "",
16
- ` ${c.violet}${c.bold}codeam-cli${c.reset} ${c.dim}\u2014 Claude Code remote control${c.reset}`,
17
- "",
18
- ` ${c.dim}1.${c.reset} Pair your phone:`,
19
- ` ${c.cyan}codeam pair${c.reset}`,
20
- "",
21
- ` ${c.dim}2.${c.reset} Launch Claude Code with mobile control:`,
22
- ` ${c.cyan}codeam${c.reset}`,
23
- "",
24
- ` ${c.dim}Other commands:${c.reset}`,
25
- ` ${c.white}codeam sessions${c.reset} ${c.dim}list paired devices${c.reset}`,
26
- ` ${c.white}codeam status${c.reset} ${c.dim}show connection info${c.reset}`,
27
- ` ${c.white}codeam logout${c.reset} ${c.dim}remove all sessions${c.reset}`,
28
- "",
29
- ` ${c.dim}Requires Claude Code:${c.reset} ${c.green}npm install -g @anthropic-ai/claude-code${c.reset}`,
30
- ` ${c.dim}Mobile app:${c.reset} ${c.green}https://www.codeagent-mobile.com${c.reset}`,
31
- ""
32
- ];
33
- process.stdout.write(lines.join("\n") + "\n");