codeam-cli 2.35.5 → 2.35.7
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 +12 -0
- package/dist/index.js +24 -10
- package/package.json +1 -1
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.35.6] — 2026-06-10
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Cancel the ACP turn on failure so the session isn't poisoned (#312)
|
|
12
|
+
|
|
13
|
+
## [2.35.5] — 2026-06-10
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- **cli:** Make @beads/bd an optional dependency (#311)
|
|
18
|
+
|
|
7
19
|
## [2.35.4] — 2026-06-10
|
|
8
20
|
|
|
9
21
|
### Fixed
|
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.35.
|
|
501
|
+
version: "2.35.7",
|
|
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",
|
|
@@ -5900,7 +5900,7 @@ function readAnonId() {
|
|
|
5900
5900
|
}
|
|
5901
5901
|
function superProperties() {
|
|
5902
5902
|
return {
|
|
5903
|
-
cliVersion: true ? "2.35.
|
|
5903
|
+
cliVersion: true ? "2.35.7" : "0.0.0-dev",
|
|
5904
5904
|
nodeVersion: process.version,
|
|
5905
5905
|
platform: process.platform,
|
|
5906
5906
|
arch: process.arch,
|
|
@@ -15624,7 +15624,13 @@ function mapSessionUpdate(notification) {
|
|
|
15624
15624
|
case "agent_thought_chunk": {
|
|
15625
15625
|
const text = extractText2(update.content);
|
|
15626
15626
|
if (!text) return [];
|
|
15627
|
-
return [
|
|
15627
|
+
return [
|
|
15628
|
+
{
|
|
15629
|
+
chunkId: `${messageChunkId(update.messageId)}::thought`,
|
|
15630
|
+
kind: "thinking",
|
|
15631
|
+
delta: text
|
|
15632
|
+
}
|
|
15633
|
+
];
|
|
15628
15634
|
}
|
|
15629
15635
|
case "tool_call": {
|
|
15630
15636
|
const summary = describeToolCall(update);
|
|
@@ -21104,7 +21110,7 @@ async function handleCommand(cmd, client2, relay, acpSessionId, models, streamin
|
|
|
21104
21110
|
log.info("acpRunner", `start_task \u2190 done stopReason=${reply.stopReason ?? "?"} id=${cmd.id.slice(0, 8)}`);
|
|
21105
21111
|
await relay.sendResult(cmd.id, "completed", { stopReason: reply.stopReason });
|
|
21106
21112
|
} catch (err) {
|
|
21107
|
-
await streaming
|
|
21113
|
+
await recoverFromFailedTurn(client2, streaming);
|
|
21108
21114
|
log.warn("acpRunner", `prompt failed: ${describeError(err)}`);
|
|
21109
21115
|
await relay.sendResult(cmd.id, "failed", { error: describeError(err) });
|
|
21110
21116
|
}
|
|
@@ -21161,7 +21167,7 @@ async function handleCommand(cmd, client2, relay, acpSessionId, models, streamin
|
|
|
21161
21167
|
void history.flush();
|
|
21162
21168
|
await relay.sendResult(cmd.id, "completed", { stopReason: reply.stopReason });
|
|
21163
21169
|
} catch (err) {
|
|
21164
|
-
await streaming
|
|
21170
|
+
await recoverFromFailedTurn(client2, streaming);
|
|
21165
21171
|
log.warn("acpRunner", `reprompt failed: ${describeError(err)}`);
|
|
21166
21172
|
await relay.sendResult(cmd.id, "failed", { error: describeError(err) });
|
|
21167
21173
|
}
|
|
@@ -21199,7 +21205,7 @@ async function handleCommand(cmd, client2, relay, acpSessionId, models, streamin
|
|
|
21199
21205
|
});
|
|
21200
21206
|
await relay.sendResult(cmd.id, "completed", { stopReason: reply.stopReason });
|
|
21201
21207
|
} catch (err) {
|
|
21202
|
-
await streaming
|
|
21208
|
+
await recoverFromFailedTurn(client2, streaming);
|
|
21203
21209
|
log.warn("acpRunner", `provide_input failed: ${describeError(err)}`);
|
|
21204
21210
|
await relay.sendResult(cmd.id, "failed", { error: describeError(err) });
|
|
21205
21211
|
}
|
|
@@ -21262,7 +21268,7 @@ async function handleCommand(cmd, client2, relay, acpSessionId, models, streamin
|
|
|
21262
21268
|
});
|
|
21263
21269
|
await relay.sendResult(cmd.id, "completed", { stopReason: reply.stopReason });
|
|
21264
21270
|
} catch (err) {
|
|
21265
|
-
await streaming
|
|
21271
|
+
await recoverFromFailedTurn(client2, streaming);
|
|
21266
21272
|
log.warn("acpRunner", `summarize failed: ${describeError(err)}`);
|
|
21267
21273
|
await relay.sendResult(cmd.id, "failed", { error: describeError(err) });
|
|
21268
21274
|
}
|
|
@@ -21360,6 +21366,14 @@ function describeError(err) {
|
|
|
21360
21366
|
if (err instanceof Error) return err.message;
|
|
21361
21367
|
return String(err);
|
|
21362
21368
|
}
|
|
21369
|
+
async function recoverFromFailedTurn(client2, streaming) {
|
|
21370
|
+
try {
|
|
21371
|
+
await client2.cancel();
|
|
21372
|
+
} catch (err) {
|
|
21373
|
+
log.warn("acpRunner", `post-failure cancel failed: ${describeError(err)}`);
|
|
21374
|
+
}
|
|
21375
|
+
await streaming.closeAll();
|
|
21376
|
+
}
|
|
21363
21377
|
function buildBannerSubtitle(agentId, acpSessionId, model, tier) {
|
|
21364
21378
|
const meta = AGENT_REGISTRY[agentId];
|
|
21365
21379
|
const displayName = meta?.displayName ?? agentId;
|
|
@@ -26098,7 +26112,7 @@ function checkChokidar() {
|
|
|
26098
26112
|
}
|
|
26099
26113
|
async function doctor(args2 = []) {
|
|
26100
26114
|
const json = args2.includes("--json");
|
|
26101
|
-
const cliVersion = true ? "2.35.
|
|
26115
|
+
const cliVersion = true ? "2.35.7" : "0.0.0-dev";
|
|
26102
26116
|
const apiBase = resolveApiBaseUrl();
|
|
26103
26117
|
const diagnosticId = (0, import_node_crypto8.randomUUID)();
|
|
26104
26118
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -26297,7 +26311,7 @@ async function completion(args2) {
|
|
|
26297
26311
|
// src/commands/version.ts
|
|
26298
26312
|
var import_picocolors13 = __toESM(require("picocolors"));
|
|
26299
26313
|
function version2() {
|
|
26300
|
-
const v = true ? "2.35.
|
|
26314
|
+
const v = true ? "2.35.7" : "unknown";
|
|
26301
26315
|
console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
|
|
26302
26316
|
}
|
|
26303
26317
|
|
|
@@ -26583,7 +26597,7 @@ function checkForUpdates() {
|
|
|
26583
26597
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
26584
26598
|
if (process.env.CI) return;
|
|
26585
26599
|
if (!process.stdout.isTTY) return;
|
|
26586
|
-
const current = true ? "2.35.
|
|
26600
|
+
const current = true ? "2.35.7" : null;
|
|
26587
26601
|
if (!current) return;
|
|
26588
26602
|
const cache = readCache();
|
|
26589
26603
|
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.35.
|
|
3
|
+
"version": "2.35.7",
|
|
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",
|