codeam-cli 2.23.2 → 2.23.3

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.23.2] — 2026-05-25
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Fire-and-forget background handlers so they don't block start_task (#190)
12
+
7
13
  ## [2.23.1] — 2026-05-25
8
14
 
9
15
  ### Fixed
package/dist/index.js CHANGED
@@ -441,7 +441,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
441
441
  // package.json
442
442
  var package_default = {
443
443
  name: "codeam-cli",
444
- version: "2.23.2",
444
+ version: "2.23.3",
445
445
  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.",
446
446
  type: "commonjs",
447
447
  main: "dist/index.js",
@@ -5768,7 +5768,7 @@ function readAnonId() {
5768
5768
  }
5769
5769
  function superProperties() {
5770
5770
  return {
5771
- cliVersion: true ? "2.23.2" : "0.0.0-dev",
5771
+ cliVersion: true ? "2.23.3" : "0.0.0-dev",
5772
5772
  nodeVersion: process.version,
5773
5773
  platform: process.platform,
5774
5774
  arch: process.arch,
@@ -9129,6 +9129,23 @@ async function fetchClaudeQuota() {
9129
9129
 
9130
9130
  // src/services/spawn-and-capture.ts
9131
9131
  var import_child_process6 = require("child_process");
9132
+ var activeChildren = /* @__PURE__ */ new Set();
9133
+ function killActiveSpawnAndCaptureChildren() {
9134
+ for (const child of activeChildren) {
9135
+ try {
9136
+ child.kill("SIGTERM");
9137
+ } catch {
9138
+ }
9139
+ }
9140
+ setTimeout(() => {
9141
+ for (const child of activeChildren) {
9142
+ try {
9143
+ child.kill("SIGKILL");
9144
+ } catch {
9145
+ }
9146
+ }
9147
+ }, 250).unref?.();
9148
+ }
9132
9149
  async function spawnAndCapture(cmd, args2, opts = {}) {
9133
9150
  const timeoutMs = opts.timeoutMs ?? 6e4;
9134
9151
  return new Promise((resolve5) => {
@@ -9149,6 +9166,7 @@ async function spawnAndCapture(cmd, args2, opts = {}) {
9149
9166
  settle(null);
9150
9167
  return;
9151
9168
  }
9169
+ activeChildren.add(child);
9152
9170
  let stdout = "";
9153
9171
  child.stdout?.on("data", (chunk) => {
9154
9172
  stdout += chunk.toString("utf8");
@@ -9166,10 +9184,12 @@ async function spawnAndCapture(cmd, args2, opts = {}) {
9166
9184
  timer.unref();
9167
9185
  child.on("error", () => {
9168
9186
  clearTimeout(timer);
9187
+ activeChildren.delete(child);
9169
9188
  settle(null);
9170
9189
  });
9171
9190
  child.on("exit", (code) => {
9172
9191
  clearTimeout(timer);
9192
+ activeChildren.delete(child);
9173
9193
  if (code !== 0) {
9174
9194
  settle(null);
9175
9195
  return;
@@ -15715,6 +15735,7 @@ async function start(requestedAgent) {
15715
15735
  void streamingEmitter?.stop();
15716
15736
  closeAllTerminals();
15717
15737
  cleanupAttachmentTempFiles();
15738
+ killActiveSpawnAndCaptureChildren();
15718
15739
  process.exit(code);
15719
15740
  }
15720
15741
  }
@@ -15760,6 +15781,7 @@ async function start(requestedAgent) {
15760
15781
  void streamingEmitter?.stop();
15761
15782
  closeAllTerminals();
15762
15783
  cleanupAttachmentTempFiles();
15784
+ killActiveSpawnAndCaptureChildren();
15763
15785
  void shutdownTelemetry();
15764
15786
  process.exit(0);
15765
15787
  }
@@ -18304,7 +18326,7 @@ function checkChokidar() {
18304
18326
  }
18305
18327
  async function doctor(args2 = []) {
18306
18328
  const json = args2.includes("--json");
18307
- const cliVersion = true ? "2.23.2" : "0.0.0-dev";
18329
+ const cliVersion = true ? "2.23.3" : "0.0.0-dev";
18308
18330
  const apiBase = resolveApiBaseUrl();
18309
18331
  const diagnosticId = (0, import_node_crypto5.randomUUID)();
18310
18332
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -18503,7 +18525,7 @@ async function completion(args2) {
18503
18525
  // src/commands/version.ts
18504
18526
  var import_picocolors13 = __toESM(require("picocolors"));
18505
18527
  function version2() {
18506
- const v = true ? "2.23.2" : "unknown";
18528
+ const v = true ? "2.23.3" : "unknown";
18507
18529
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
18508
18530
  }
18509
18531
 
@@ -18731,7 +18753,7 @@ function checkForUpdates() {
18731
18753
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
18732
18754
  if (process.env.CI) return;
18733
18755
  if (!process.stdout.isTTY) return;
18734
- const current = true ? "2.23.2" : null;
18756
+ const current = true ? "2.23.3" : null;
18735
18757
  if (!current) return;
18736
18758
  const cache = readCache();
18737
18759
  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.23.2",
3
+ "version": "2.23.3",
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",