codeam-cli 2.73.5 → 2.73.6

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.73.5] — 2026-09-03
8
+
9
+ ### Fixed
10
+
11
+ - **shared:** Postman's MCP server never installed — npm refuses it (#688)
12
+
7
13
  ## [2.73.4] — 2026-09-03
8
14
 
9
15
  ### Fixed
package/dist/index.js CHANGED
@@ -8116,7 +8116,7 @@ function readAnonId() {
8116
8116
  }
8117
8117
  function superProperties() {
8118
8118
  return {
8119
- cliVersion: true ? "2.73.5" : "0.0.0-dev",
8119
+ cliVersion: true ? "2.73.6" : "0.0.0-dev",
8120
8120
  nodeVersion: process.version,
8121
8121
  platform: process.platform,
8122
8122
  arch: process.arch,
@@ -8358,7 +8358,7 @@ var http = __toESM(require("http"));
8358
8358
  // package.json
8359
8359
  var package_default = {
8360
8360
  name: "codeam-cli",
8361
- version: "2.73.5",
8361
+ version: "2.73.6",
8362
8362
  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.",
8363
8363
  type: "commonjs",
8364
8364
  main: "dist/index.js",
@@ -9951,7 +9951,7 @@ var CommandRelayService = class _CommandRelayService {
9951
9951
  // fresh + clear the "CLI update available" banner after a self-update
9952
9952
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
9953
9953
  // pair/reconnect). Older backends ignore the extra field.
9954
- ..."2.73.5" ? { ideVersion: "2.73.5" } : {}
9954
+ ..."2.73.6" ? { ideVersion: "2.73.6" } : {}
9955
9955
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
9956
9956
  }
9957
9957
  /**
@@ -22227,7 +22227,7 @@ async function autoUpgradeBeforeCriticalCommand() {
22227
22227
  if (process.env.NODE_ENV === "test") return;
22228
22228
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
22229
22229
  if (process.env.CI) return;
22230
- const current2 = true ? "2.73.5" : null;
22230
+ const current2 = true ? "2.73.6" : null;
22231
22231
  if (!current2) return;
22232
22232
  const cache = readCache();
22233
22233
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -22244,7 +22244,7 @@ function checkForUpdates() {
22244
22244
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
22245
22245
  if (process.env.CI) return;
22246
22246
  if (!process.stdout.isTTY) return;
22247
- const current2 = true ? "2.73.5" : null;
22247
+ const current2 = true ? "2.73.6" : null;
22248
22248
  if (!current2) return;
22249
22249
  const cache = readCache();
22250
22250
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -22267,7 +22267,7 @@ var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
22267
22267
  var SELF_UPDATE_LS_TIMEOUT_MS = 15e3;
22268
22268
  var SUDO_PREFLIGHT_TIMEOUT_MS = 5e3;
22269
22269
  function currentCliVersion() {
22270
- return true ? "2.73.5" : null;
22270
+ return true ? "2.73.6" : null;
22271
22271
  }
22272
22272
  async function installedVersion(deps) {
22273
22273
  const ls = await deps.run(
@@ -35884,9 +35884,24 @@ var AcpClient = class {
35884
35884
  ...this.opts.extraEnv ?? {},
35885
35885
  PATH: augmentedPath
35886
35886
  },
35887
- stdio: ["pipe", "pipe", "pipe"]
35887
+ stdio: ["pipe", "pipe", "pipe"],
35888
+ // ⚠️ Own process group, so `stop()` can reap the WHOLE tree. The adapter
35889
+ // is only the top of it: it spawns the real `claude`, which spawns one
35890
+ // `codeam mcp-run` shim per integration, each of which spawns the
35891
+ // vendor's MCP server. Killing the adapter alone orphaned all of that —
35892
+ // see `stop()` for the incident. Windows has no process groups; there
35893
+ // the tree is reaped with `taskkill /T` instead.
35894
+ detached: process.platform !== "win32"
35888
35895
  });
35889
35896
  this.child = child;
35897
+ const pid = child.pid;
35898
+ if (pid && process.platform !== "win32") {
35899
+ const reapOnExit = () => {
35900
+ if (this.child === child) killQuiet(-pid, "SIGKILL");
35901
+ };
35902
+ process.once("exit", reapOnExit);
35903
+ child.once("exit", () => process.removeListener("exit", reapOnExit));
35904
+ }
35890
35905
  child.stderr?.setEncoding("utf8");
35891
35906
  child.stderr?.on("data", (chunk) => {
35892
35907
  for (const line of chunk.split(/\r?\n/)) {
@@ -36535,10 +36550,18 @@ var AcpClient = class {
36535
36550
  this.connection = null;
36536
36551
  this.sessionId = null;
36537
36552
  try {
36538
- child.kill("SIGTERM");
36553
+ const pid = child.pid;
36554
+ if (process.platform === "win32") {
36555
+ if (pid) (0, import_node_child_process29.spawnSync)("taskkill", ["/F", "/T", "/PID", String(pid)], { stdio: "ignore" });
36556
+ } else if (pid) {
36557
+ killQuiet(-pid, "SIGTERM");
36558
+ } else {
36559
+ child.kill("SIGTERM");
36560
+ }
36539
36561
  const grace = new Promise((resolve11) => {
36540
36562
  const t2 = setTimeout(() => {
36541
- killQuiet(child, "SIGKILL");
36563
+ if (process.platform !== "win32" && pid) killQuiet(-pid, "SIGKILL");
36564
+ else killQuiet(child, "SIGKILL");
36542
36565
  resolve11();
36543
36566
  }, 2e3);
36544
36567
  child.once("exit", () => {
@@ -47118,7 +47141,7 @@ function checkChokidar() {
47118
47141
  }
47119
47142
  async function doctor(args2 = []) {
47120
47143
  const json = args2.includes("--json");
47121
- const cliVersion = true ? "2.73.5" : "0.0.0-dev";
47144
+ const cliVersion = true ? "2.73.6" : "0.0.0-dev";
47122
47145
  const apiBase2 = resolveApiBaseUrl();
47123
47146
  const diagnosticId = (0, import_node_crypto13.randomUUID)();
47124
47147
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -47589,7 +47612,7 @@ async function mcpWarm(argv = []) {
47589
47612
  // src/commands/version.ts
47590
47613
  var import_picocolors15 = __toESM(require("picocolors"));
47591
47614
  function version2() {
47592
- const v = true ? "2.73.5" : "unknown";
47615
+ const v = true ? "2.73.6" : "unknown";
47593
47616
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
47594
47617
  }
47595
47618
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.73.5",
3
+ "version": "2.73.6",
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",