codeam-cli 2.39.80 → 2.39.81

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,26 @@ 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.80] — 2026-06-22
8
+
9
+ ### Added
10
+
11
+ - **cli:** Report Headroom's authoritative compression savings (not prompt-cache)
12
+
13
+ ### Fixed
14
+
15
+ - **cli:** Always publish a visible terminal frame on a failed turn (no more silent first message)
16
+
17
+ ## [2.39.79] — 2026-06-22
18
+
19
+ ### Added
20
+
21
+ - **cli:** Report Headroom's authoritative compression savings (not prompt-cache)
22
+
23
+ ### Fixed
24
+
25
+ - **cli:** Keep Headroom savings reporting on a low-disk box that's already installed
26
+
7
27
  ## [2.39.78] — 2026-06-21
8
28
 
9
29
  ### Fixed
package/dist/index.js CHANGED
@@ -5390,7 +5390,7 @@ function readAnonId() {
5390
5390
  }
5391
5391
  function superProperties() {
5392
5392
  return {
5393
- cliVersion: true ? "2.39.80" : "0.0.0-dev",
5393
+ cliVersion: true ? "2.39.81" : "0.0.0-dev",
5394
5394
  nodeVersion: process.version,
5395
5395
  platform: process.platform,
5396
5396
  arch: process.arch,
@@ -5549,7 +5549,7 @@ var os4 = __toESM(require("os"));
5549
5549
  // package.json
5550
5550
  var package_default = {
5551
5551
  name: "codeam-cli",
5552
- version: "2.39.80",
5552
+ version: "2.39.81",
5553
5553
  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.",
5554
5554
  type: "commonjs",
5555
5555
  main: "dist/index.js",
@@ -17456,7 +17456,7 @@ function checkForUpdates() {
17456
17456
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
17457
17457
  if (process.env.CI) return;
17458
17458
  if (!process.stdout.isTTY) return;
17459
- const current = true ? "2.39.80" : null;
17459
+ const current = true ? "2.39.81" : null;
17460
17460
  if (!current) return;
17461
17461
  const cache = readCache();
17462
17462
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -17894,7 +17894,7 @@ var defaultSpawner = (env, cwd, args2 = []) => (0, import_node_child_process13.s
17894
17894
  detached: false
17895
17895
  });
17896
17896
  function currentCliVersion() {
17897
- return true ? "2.39.80" : null;
17897
+ return true ? "2.39.81" : null;
17898
17898
  }
17899
17899
  function runCmd(cmd, args2, timeoutMs) {
17900
17900
  return new Promise((resolve7) => {
@@ -23366,6 +23366,20 @@ var StreamingState = class {
23366
23366
  * no matter how many message ids the adapter spreads it across.
23367
23367
  */
23368
23368
  turnTextChunkId = null;
23369
+ /**
23370
+ * Monotonic turn counter, bumped each {@link beginTurn}. Used to NAMESPACE
23371
+ * every streaming-chunk id so an id the ACP adapter REUSES across turns can't
23372
+ * collide on the mobile feed. `claude-agent-acp` emits `toolu_01` for the
23373
+ * first tool of EVERY turn (and reuses it for sequential tools), so without a
23374
+ * per-turn prefix, once turn 1's `toolu_01` chunk was flushed `isFinal:true`,
23375
+ * a later turn's `toolu_01` was treated as the already-final chunk and
23376
+ * DROPPED — thinking/tool-call chips rendered on the first turn then
23377
+ * disappeared on subsequent ones (the "tool calls stop showing after a couple
23378
+ * messages" bug). Text is unaffected (it collapses onto a per-turn-reset
23379
+ * {@link turnTextChunkId}); this protects the thinking/tool_use/tool_result
23380
+ * kinds that key purely off the adapter id.
23381
+ */
23382
+ turnSeq = 0;
23369
23383
  /**
23370
23384
  * Register a permission Promise. The Promise stays pending until
23371
23385
  * `resolveSelection(index)` is called from the relay handler, OR
@@ -23458,6 +23472,7 @@ var StreamingState = class {
23458
23472
  this.text = "";
23459
23473
  this.streamingChunks.clear();
23460
23474
  this.turnTextChunkId = null;
23475
+ this.turnSeq += 1;
23461
23476
  if (this.pending?.kind === "permission") {
23462
23477
  clearTimeout(this.pending.timeoutTimer);
23463
23478
  }
@@ -23468,7 +23483,8 @@ var StreamingState = class {
23468
23483
  await this.publisher.publishOutput({ type: "new_turn", done: false });
23469
23484
  }
23470
23485
  append(delta) {
23471
- const chunkId = delta.kind === "text" ? this.turnTextChunkId ??= delta.chunkId : delta.chunkId;
23486
+ const baseId = delta.kind === "text" ? this.turnTextChunkId ??= delta.chunkId : delta.chunkId;
23487
+ const chunkId = `t${this.turnSeq}:${baseId}`;
23472
23488
  const existing = this.streamingChunks.get(chunkId);
23473
23489
  if (existing && existing.kind !== delta.kind) {
23474
23490
  log.warn(
@@ -28609,7 +28625,7 @@ function checkChokidar() {
28609
28625
  }
28610
28626
  async function doctor(args2 = []) {
28611
28627
  const json = args2.includes("--json");
28612
- const cliVersion = true ? "2.39.80" : "0.0.0-dev";
28628
+ const cliVersion = true ? "2.39.81" : "0.0.0-dev";
28613
28629
  const apiBase2 = resolveApiBaseUrl();
28614
28630
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
28615
28631
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -28808,7 +28824,7 @@ async function completion(args2) {
28808
28824
  // src/commands/version.ts
28809
28825
  var import_picocolors14 = __toESM(require("picocolors"));
28810
28826
  function version2() {
28811
- const v = true ? "2.39.80" : "unknown";
28827
+ const v = true ? "2.39.81" : "unknown";
28812
28828
  console.log(`${import_picocolors14.default.bold("codeam-cli")} ${import_picocolors14.default.cyan(v)}`);
28813
28829
  }
28814
28830
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.39.80",
3
+ "version": "2.39.81",
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",