codeam-cli 2.60.44 → 2.60.46
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 +26 -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.60.45] — 2026-07-10
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Don't false-kill a turn on a long silent tool (yarn install idle timeout)
|
|
12
|
+
|
|
13
|
+
## [2.60.44] — 2026-07-10
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- **cli:** Recover ACP adapter install-race crashes structurally, not by error-code list
|
|
18
|
+
|
|
7
19
|
## [2.60.43] — 2026-07-10
|
|
8
20
|
|
|
9
21
|
### Fixed
|
package/dist/index.js
CHANGED
|
@@ -592,6 +592,9 @@ var USER_EVENTS = {
|
|
|
592
592
|
CLI_UPDATE_PROGRESS: "cli_update_progress",
|
|
593
593
|
CLI_UPDATE_FAILED: "cli_update_failed",
|
|
594
594
|
BATON_STATE: "baton_state",
|
|
595
|
+
INTEGRATION_LINKED: "integration_linked",
|
|
596
|
+
INTEGRATION_UNLINKED: "integration_unlinked",
|
|
597
|
+
INTEGRATION_CREDENTIAL_INVALID: "integration_credential_invalid",
|
|
595
598
|
// CodeRabbit reviewer — the CLI posts these to /api/coderabbit/events; the
|
|
596
599
|
// backend re-publishes them on the per-user SSE bus (mirrored in repo A).
|
|
597
600
|
CODERABBIT_PROGRESS: "coderabbit_progress",
|
|
@@ -5689,7 +5692,7 @@ function readAnonId() {
|
|
|
5689
5692
|
}
|
|
5690
5693
|
function superProperties() {
|
|
5691
5694
|
return {
|
|
5692
|
-
cliVersion: true ? "2.60.
|
|
5695
|
+
cliVersion: true ? "2.60.46" : "0.0.0-dev",
|
|
5693
5696
|
nodeVersion: process.version,
|
|
5694
5697
|
platform: process.platform,
|
|
5695
5698
|
arch: process.arch,
|
|
@@ -5870,7 +5873,7 @@ var os4 = __toESM(require("os"));
|
|
|
5870
5873
|
// package.json
|
|
5871
5874
|
var package_default = {
|
|
5872
5875
|
name: "codeam-cli",
|
|
5873
|
-
version: "2.60.
|
|
5876
|
+
version: "2.60.46",
|
|
5874
5877
|
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.",
|
|
5875
5878
|
type: "commonjs",
|
|
5876
5879
|
main: "dist/index.js",
|
|
@@ -6979,7 +6982,7 @@ var CommandRelayService = class {
|
|
|
6979
6982
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
6980
6983
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
6981
6984
|
// pair/reconnect). Older backends ignore the extra field.
|
|
6982
|
-
..."2.60.
|
|
6985
|
+
..."2.60.46" ? { ideVersion: "2.60.46" } : {}
|
|
6983
6986
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
6984
6987
|
}
|
|
6985
6988
|
/**
|
|
@@ -17493,7 +17496,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
17493
17496
|
if (process.env.NODE_ENV === "test") return;
|
|
17494
17497
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
17495
17498
|
if (process.env.CI) return;
|
|
17496
|
-
const current = true ? "2.60.
|
|
17499
|
+
const current = true ? "2.60.46" : null;
|
|
17497
17500
|
if (!current) return;
|
|
17498
17501
|
const cache = readCache();
|
|
17499
17502
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -17510,7 +17513,7 @@ function checkForUpdates() {
|
|
|
17510
17513
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
17511
17514
|
if (process.env.CI) return;
|
|
17512
17515
|
if (!process.stdout.isTTY) return;
|
|
17513
|
-
const current = true ? "2.60.
|
|
17516
|
+
const current = true ? "2.60.46" : null;
|
|
17514
17517
|
if (!current) return;
|
|
17515
17518
|
const cache = readCache();
|
|
17516
17519
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -17530,7 +17533,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
|
|
|
17530
17533
|
var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
|
|
17531
17534
|
var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
17532
17535
|
function currentCliVersion() {
|
|
17533
|
-
return true ? "2.60.
|
|
17536
|
+
return true ? "2.60.46" : null;
|
|
17534
17537
|
}
|
|
17535
17538
|
function runCmd(cmd, args2, timeoutMs) {
|
|
17536
17539
|
return new Promise((resolve7) => {
|
|
@@ -27076,9 +27079,22 @@ var AcpClient = class {
|
|
|
27076
27079
|
}
|
|
27077
27080
|
if (u2.sessionUpdate === "tool_call_update" && (u2.status === "completed" || u2.status === "failed")) {
|
|
27078
27081
|
if (typeof u2.toolCallId === "string") this.pendingToolCalls.delete(u2.toolCallId);
|
|
27079
|
-
|
|
27082
|
+
this.rearmIdleIfIdle();
|
|
27080
27083
|
return;
|
|
27081
27084
|
}
|
|
27085
|
+
this.rearmIdleIfIdle();
|
|
27086
|
+
}
|
|
27087
|
+
/**
|
|
27088
|
+
* Re-arm the idle watchdog ONLY when the agent is genuinely idle — no tool
|
|
27089
|
+
* call in flight. A pending tool (a `yarn install` / build / test that runs
|
|
27090
|
+
* silently for minutes, emitting no `session/update`) is active work, NOT a
|
|
27091
|
+
* wedged adapter, so re-arming the 90s window over it would false-kill the
|
|
27092
|
+
* turn. Every re-arm MUST route through here so no path can accidentally arm
|
|
27093
|
+
* the watchdog while a tool is executing (the 2026-07-10 bug: the
|
|
27094
|
+
* auto-approve permission `finally` bumped unconditionally → a ~150s
|
|
27095
|
+
* `yarn install` tripped "ACP prompt idle for 90s").
|
|
27096
|
+
*/
|
|
27097
|
+
rearmIdleIfIdle() {
|
|
27082
27098
|
if (this.pendingToolCalls.size === 0) this.promptIdle?.bump();
|
|
27083
27099
|
}
|
|
27084
27100
|
// ─── Client surface (what the agent calls into) ───────────────────
|
|
@@ -27093,7 +27109,7 @@ var AcpClient = class {
|
|
|
27093
27109
|
try {
|
|
27094
27110
|
return await this.opts.onRequestPermission(params);
|
|
27095
27111
|
} finally {
|
|
27096
|
-
this.
|
|
27112
|
+
this.rearmIdleIfIdle();
|
|
27097
27113
|
}
|
|
27098
27114
|
},
|
|
27099
27115
|
readTextFile: async (params) => {
|
|
@@ -34678,7 +34694,7 @@ function checkChokidar() {
|
|
|
34678
34694
|
}
|
|
34679
34695
|
async function doctor(args2 = []) {
|
|
34680
34696
|
const json = args2.includes("--json");
|
|
34681
|
-
const cliVersion = true ? "2.60.
|
|
34697
|
+
const cliVersion = true ? "2.60.46" : "0.0.0-dev";
|
|
34682
34698
|
const apiBase2 = resolveApiBaseUrl();
|
|
34683
34699
|
const diagnosticId = (0, import_node_crypto12.randomUUID)();
|
|
34684
34700
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -34877,7 +34893,7 @@ async function completion(args2) {
|
|
|
34877
34893
|
// src/commands/version.ts
|
|
34878
34894
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
34879
34895
|
function version2() {
|
|
34880
|
-
const v = true ? "2.60.
|
|
34896
|
+
const v = true ? "2.60.46" : "unknown";
|
|
34881
34897
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
34882
34898
|
}
|
|
34883
34899
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.60.
|
|
3
|
+
"version": "2.60.46",
|
|
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",
|