codeam-cli 2.74.7 → 2.74.8
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 +6 -0
- package/dist/index.js +22 -12
- package/package.json +1 -1
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.74.7] — 2026-09-06
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Daemon lock no longer defers to a reused pid — warm-codespace resume left the session dead (#715)
|
|
12
|
+
|
|
7
13
|
## [2.74.6] — 2026-09-05
|
|
8
14
|
|
|
9
15
|
### Fixed
|
package/dist/index.js
CHANGED
|
@@ -8136,7 +8136,7 @@ function readAnonId() {
|
|
|
8136
8136
|
}
|
|
8137
8137
|
function superProperties() {
|
|
8138
8138
|
return {
|
|
8139
|
-
cliVersion: true ? "2.74.
|
|
8139
|
+
cliVersion: true ? "2.74.8" : "0.0.0-dev",
|
|
8140
8140
|
nodeVersion: process.version,
|
|
8141
8141
|
platform: process.platform,
|
|
8142
8142
|
arch: process.arch,
|
|
@@ -8378,7 +8378,7 @@ var http = __toESM(require("http"));
|
|
|
8378
8378
|
// package.json
|
|
8379
8379
|
var package_default = {
|
|
8380
8380
|
name: "codeam-cli",
|
|
8381
|
-
version: "2.74.
|
|
8381
|
+
version: "2.74.8",
|
|
8382
8382
|
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.",
|
|
8383
8383
|
type: "commonjs",
|
|
8384
8384
|
main: "dist/index.js",
|
|
@@ -9971,7 +9971,7 @@ var CommandRelayService = class _CommandRelayService {
|
|
|
9971
9971
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
9972
9972
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
9973
9973
|
// pair/reconnect). Older backends ignore the extra field.
|
|
9974
|
-
..."2.74.
|
|
9974
|
+
..."2.74.8" ? { ideVersion: "2.74.8" } : {}
|
|
9975
9975
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
9976
9976
|
}
|
|
9977
9977
|
/**
|
|
@@ -22272,7 +22272,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
22272
22272
|
if (process.env.NODE_ENV === "test") return;
|
|
22273
22273
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
22274
22274
|
if (process.env.CI) return;
|
|
22275
|
-
const current2 = true ? "2.74.
|
|
22275
|
+
const current2 = true ? "2.74.8" : null;
|
|
22276
22276
|
if (!current2) return;
|
|
22277
22277
|
const cache = readCache();
|
|
22278
22278
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -22289,7 +22289,7 @@ function checkForUpdates() {
|
|
|
22289
22289
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
22290
22290
|
if (process.env.CI) return;
|
|
22291
22291
|
if (!process.stdout.isTTY) return;
|
|
22292
|
-
const current2 = true ? "2.74.
|
|
22292
|
+
const current2 = true ? "2.74.8" : null;
|
|
22293
22293
|
if (!current2) return;
|
|
22294
22294
|
const cache = readCache();
|
|
22295
22295
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -22312,7 +22312,7 @@ var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
|
22312
22312
|
var SELF_UPDATE_LS_TIMEOUT_MS = 15e3;
|
|
22313
22313
|
var SUDO_PREFLIGHT_TIMEOUT_MS = 5e3;
|
|
22314
22314
|
function currentCliVersion() {
|
|
22315
|
-
return true ? "2.74.
|
|
22315
|
+
return true ? "2.74.8" : null;
|
|
22316
22316
|
}
|
|
22317
22317
|
async function installedVersion(deps) {
|
|
22318
22318
|
const ls = await deps.run(
|
|
@@ -23279,7 +23279,9 @@ var HostAgentSupervisor = class {
|
|
|
23279
23279
|
);
|
|
23280
23280
|
return;
|
|
23281
23281
|
}
|
|
23282
|
-
|
|
23282
|
+
const stale = await this.fleetBoxImageStale(containerName);
|
|
23283
|
+
if (stale === null) return;
|
|
23284
|
+
if (!stale) {
|
|
23283
23285
|
log.info("host-agent", `fleet_migrate_box_image: ${containerName} already current`);
|
|
23284
23286
|
return;
|
|
23285
23287
|
}
|
|
@@ -23362,7 +23364,7 @@ var HostAgentSupervisor = class {
|
|
|
23362
23364
|
* current registry `:latest` (a stale runtime), or the container is gone.
|
|
23363
23365
|
* Pulls `:latest` first so the comparison is against the freshest image.
|
|
23364
23366
|
* Best-effort + fail-SAFE: a local-image override (int test / operator) or any
|
|
23365
|
-
* pull/inspect error returns false → the caller falls back to a plain
|
|
23367
|
+
* pull/inspect error returns false (null for a failed pull, logged) → the caller falls back to a plain
|
|
23366
23368
|
* `docker start`, so a transient docker hiccup can never wedge a wake.
|
|
23367
23369
|
*/
|
|
23368
23370
|
async fleetBoxImageStale(containerName) {
|
|
@@ -23372,8 +23374,16 @@ var HostAgentSupervisor = class {
|
|
|
23372
23374
|
if (cur.code !== 0) {
|
|
23373
23375
|
return isMissingContainerError(cur.stderr);
|
|
23374
23376
|
}
|
|
23375
|
-
const pull = await this.docker.run(["pull", image], {
|
|
23376
|
-
|
|
23377
|
+
const pull = await this.docker.run(["pull", image], {
|
|
23378
|
+
timeoutMs: DOCKER_RUN_WITH_PULL_TIMEOUT_MS
|
|
23379
|
+
});
|
|
23380
|
+
if (pull.code !== 0) {
|
|
23381
|
+
log.warn(
|
|
23382
|
+
"host-agent",
|
|
23383
|
+
`fleet image pull failed (code=${pull.code}) \u2014 cannot tell whether ${containerName} is stale, leaving it: ` + pull.stderr.trim().slice(-300)
|
|
23384
|
+
);
|
|
23385
|
+
return null;
|
|
23386
|
+
}
|
|
23377
23387
|
const latest = await this.docker.run(["inspect", "--format", "{{.Id}}", image]);
|
|
23378
23388
|
if (latest.code !== 0) return false;
|
|
23379
23389
|
return cur.stdout.trim() !== "" && cur.stdout.trim() !== latest.stdout.trim();
|
|
@@ -47590,7 +47600,7 @@ function checkChokidar() {
|
|
|
47590
47600
|
}
|
|
47591
47601
|
async function doctor(args2 = []) {
|
|
47592
47602
|
const json = args2.includes("--json");
|
|
47593
|
-
const cliVersion = true ? "2.74.
|
|
47603
|
+
const cliVersion = true ? "2.74.8" : "0.0.0-dev";
|
|
47594
47604
|
const apiBase2 = resolveApiBaseUrl();
|
|
47595
47605
|
const diagnosticId = (0, import_node_crypto13.randomUUID)();
|
|
47596
47606
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -48114,7 +48124,7 @@ async function mcpWarm(argv = [], opts = {}) {
|
|
|
48114
48124
|
// src/commands/version.ts
|
|
48115
48125
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
48116
48126
|
function version2() {
|
|
48117
|
-
const v = true ? "2.74.
|
|
48127
|
+
const v = true ? "2.74.8" : "unknown";
|
|
48118
48128
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
48119
48129
|
}
|
|
48120
48130
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.74.
|
|
3
|
+
"version": "2.74.8",
|
|
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",
|