codeam-cli 2.26.9 → 2.26.11

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.26.10] — 2026-06-03
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Cloudflared DNS probe is best-effort, no longer fails the preview (#243)
12
+
13
+ ## [2.26.9] — 2026-06-03
14
+
15
+ ### Added
16
+
17
+ - **cli:** Conversation push carries agentId for per-agent body cache (#242)
18
+
7
19
  ## [2.26.8] — 2026-06-03
8
20
 
9
21
  ### Added
package/dist/index.js CHANGED
@@ -472,7 +472,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
472
472
  // package.json
473
473
  var package_default = {
474
474
  name: "codeam-cli",
475
- version: "2.26.9",
475
+ version: "2.26.11",
476
476
  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.",
477
477
  type: "commonjs",
478
478
  main: "dist/index.js",
@@ -5829,7 +5829,7 @@ function readAnonId() {
5829
5829
  }
5830
5830
  function superProperties() {
5831
5831
  return {
5832
- cliVersion: true ? "2.26.9" : "0.0.0-dev",
5832
+ cliVersion: true ? "2.26.11" : "0.0.0-dev",
5833
5833
  nodeVersion: process.version,
5834
5834
  platform: process.platform,
5835
5835
  arch: process.arch,
@@ -16899,6 +16899,15 @@ var previewStartH = (ctx, _cmd, parsed) => {
16899
16899
  return;
16900
16900
  }
16901
16901
  const pluginAuthToken = ctx.pluginAuthToken;
16902
+ const emitProgress = (step, message) => {
16903
+ void postPreviewEvent({
16904
+ sessionId: ctx.sessionId,
16905
+ pluginId: ctx.pluginId,
16906
+ pluginAuthToken,
16907
+ type: "preview_progress",
16908
+ payload: { step, message, timestamp: Date.now() }
16909
+ });
16910
+ };
16902
16911
  void (async () => {
16903
16912
  void postPreviewEvent({
16904
16913
  sessionId: ctx.sessionId,
@@ -16907,7 +16916,9 @@ var previewStartH = (ctx, _cmd, parsed) => {
16907
16916
  type: "preview_starting",
16908
16917
  payload: { framework: detection.framework, port: detection.port }
16909
16918
  });
16919
+ emitProgress("ENV_DETECTED", `${detection.framework}`);
16910
16920
  for (const setup of detection.setup_commands ?? []) {
16921
+ emitProgress("SETUP_RUN", `${setup.cmd} ${setup.args.join(" ")}`);
16911
16922
  const exitCode = await runOnce(setup.cmd, setup.args, process.cwd(), detection.env);
16912
16923
  if (exitCode !== 0) {
16913
16924
  void postPreviewEvent({
@@ -16923,11 +16934,17 @@ var previewStartH = (ctx, _cmd, parsed) => {
16923
16934
  return;
16924
16935
  }
16925
16936
  }
16937
+ emitProgress(
16938
+ "BOOT_SEQUENCE",
16939
+ `${detection.command} ${detection.args.join(" ")}`
16940
+ );
16926
16941
  const devServer = (0, import_child_process15.spawn)(detection.command, detection.args, {
16927
16942
  cwd: process.cwd(),
16928
16943
  env: { ...process.env, ...detection.env ?? {} },
16929
16944
  stdio: ["ignore", "pipe", "pipe"]
16930
16945
  });
16946
+ emitProgress("BIND_PORT", String(detection.port));
16947
+ emitProgress("WAITING_FOR_READY", detection.ready_pattern);
16931
16948
  let readyMatched = false;
16932
16949
  let expoUrl = null;
16933
16950
  const readyRe = new RegExp(detection.ready_pattern);
@@ -16969,6 +16986,11 @@ var previewStartH = (ctx, _cmd, parsed) => {
16969
16986
  });
16970
16987
  return;
16971
16988
  }
16989
+ emitProgress("READY_DETECTED", `port ${detection.port}`);
16990
+ emitProgress(
16991
+ "TUNNEL_STARTING",
16992
+ detection.framework === "Expo" ? "Expo (self-tunnelled)" : isCodespaceSession() ? "GitHub Codespaces public port" : "cloudflared quick tunnel"
16993
+ );
16972
16994
  let tunnel = null;
16973
16995
  let url;
16974
16996
  if (detection.framework === "Expo") {
@@ -17080,28 +17102,10 @@ var previewStartH = (ctx, _cmd, parsed) => {
17080
17102
  });
17081
17103
  return;
17082
17104
  }
17083
- try {
17084
- await waitForCloudflaredReady(parsedUrl, 3e4);
17085
- } catch (e) {
17086
- try {
17087
- tunnel.kill("SIGTERM");
17088
- } catch {
17089
- }
17090
- try {
17091
- devServer.kill("SIGTERM");
17092
- } catch {
17093
- }
17094
- void postPreviewEvent({
17095
- sessionId: ctx.sessionId,
17096
- pluginId: ctx.pluginId,
17097
- pluginAuthToken,
17098
- type: "preview_error",
17099
- payload: { stage: "tunnel", message: e.message }
17100
- });
17101
- return;
17102
- }
17105
+ void waitForCloudflaredReady(parsedUrl, 3e4).then(() => log.info("preview", `cloudflared probe: ${parsedUrl} reachable from CLI host`)).catch((e) => log.info("preview", `cloudflared probe: ${String(e.message)} (non-fatal)`));
17103
17106
  url = parsedUrl;
17104
17107
  }
17108
+ emitProgress("TUNNEL_READY", url);
17105
17109
  registerPreview(ctx.sessionId, {
17106
17110
  sessionId: ctx.sessionId,
17107
17111
  devServer,
@@ -20156,7 +20160,7 @@ function checkChokidar() {
20156
20160
  }
20157
20161
  async function doctor(args2 = []) {
20158
20162
  const json = args2.includes("--json");
20159
- const cliVersion = true ? "2.26.9" : "0.0.0-dev";
20163
+ const cliVersion = true ? "2.26.11" : "0.0.0-dev";
20160
20164
  const apiBase = resolveApiBaseUrl();
20161
20165
  const diagnosticId = (0, import_node_crypto6.randomUUID)();
20162
20166
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -20355,7 +20359,7 @@ async function completion(args2) {
20355
20359
  // src/commands/version.ts
20356
20360
  var import_picocolors13 = __toESM(require("picocolors"));
20357
20361
  function version2() {
20358
- const v = true ? "2.26.9" : "unknown";
20362
+ const v = true ? "2.26.11" : "unknown";
20359
20363
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
20360
20364
  }
20361
20365
 
@@ -20583,7 +20587,7 @@ function checkForUpdates() {
20583
20587
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
20584
20588
  if (process.env.CI) return;
20585
20589
  if (!process.stdout.isTTY) return;
20586
- const current = true ? "2.26.9" : null;
20590
+ const current = true ? "2.26.11" : null;
20587
20591
  if (!current) return;
20588
20592
  const cache = readCache();
20589
20593
  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.26.9",
3
+ "version": "2.26.11",
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",