codeam-cli 2.61.40 → 2.61.42
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 +16 -0
- package/dist/index.js +24 -13
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,22 @@ 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.61.41] — 2026-07-25
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Bypass the box-wide pair-auto singleton for host-agent children
|
|
12
|
+
|
|
13
|
+
## [2.61.40] — 2026-07-25
|
|
14
|
+
|
|
15
|
+
### CI
|
|
16
|
+
|
|
17
|
+
- **release:** Auto-refresh the wrapper-repo Codespaces prebuild on each release
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **cli:** Host-agent supports concurrent multi-session (per-deploy daemon lock)
|
|
22
|
+
|
|
7
23
|
## [2.61.39] — 2026-07-25
|
|
8
24
|
|
|
9
25
|
### Performance
|
package/dist/index.js
CHANGED
|
@@ -6355,7 +6355,7 @@ function readAnonId() {
|
|
|
6355
6355
|
}
|
|
6356
6356
|
function superProperties() {
|
|
6357
6357
|
return {
|
|
6358
|
-
cliVersion: true ? "2.61.
|
|
6358
|
+
cliVersion: true ? "2.61.42" : "0.0.0-dev",
|
|
6359
6359
|
nodeVersion: process.version,
|
|
6360
6360
|
platform: process.platform,
|
|
6361
6361
|
arch: process.arch,
|
|
@@ -6536,7 +6536,7 @@ var os4 = __toESM(require("os"));
|
|
|
6536
6536
|
// package.json
|
|
6537
6537
|
var package_default = {
|
|
6538
6538
|
name: "codeam-cli",
|
|
6539
|
-
version: "2.61.
|
|
6539
|
+
version: "2.61.42",
|
|
6540
6540
|
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.",
|
|
6541
6541
|
type: "commonjs",
|
|
6542
6542
|
main: "dist/index.js",
|
|
@@ -7707,7 +7707,7 @@ var CommandRelayService = class _CommandRelayService {
|
|
|
7707
7707
|
// fresh + clear the "CLI update available" banner after a self-update
|
|
7708
7708
|
// (a codespace that reinstalls @latest reconnects via heartbeat, not
|
|
7709
7709
|
// pair/reconnect). Older backends ignore the extra field.
|
|
7710
|
-
..."2.61.
|
|
7710
|
+
..."2.61.42" ? { ideVersion: "2.61.42" } : {}
|
|
7711
7711
|
}).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
|
|
7712
7712
|
}
|
|
7713
7713
|
/**
|
|
@@ -17413,7 +17413,7 @@ function maskToken(text, cloneToken) {
|
|
|
17413
17413
|
}
|
|
17414
17414
|
return masked;
|
|
17415
17415
|
}
|
|
17416
|
-
async function prepareWorkspace(repoOrPath, deployId, cloneToken, provider = "github") {
|
|
17416
|
+
async function prepareWorkspace(repoOrPath, deployId, cloneToken, provider = "github", branch) {
|
|
17417
17417
|
if (isAbsolutePathTarget(repoOrPath)) {
|
|
17418
17418
|
if (!fs36.existsSync(repoOrPath)) {
|
|
17419
17419
|
throw new Error(`deploy target path does not exist: ${repoOrPath}`);
|
|
@@ -17427,8 +17427,9 @@ async function prepareWorkspace(repoOrPath, deployId, cloneToken, provider = "gi
|
|
|
17427
17427
|
}
|
|
17428
17428
|
fs36.mkdirSync(selfHostedWorkspaceRoot(), { recursive: true, mode: 448 });
|
|
17429
17429
|
const cloneUrl = repoCloneUrl(repoOrPath, cloneToken, provider);
|
|
17430
|
+
const cloneArgs = branch ? ["clone", "--depth", "1", "--branch", branch, cloneUrl, dest] : ["clone", "--depth", "1", cloneUrl, dest];
|
|
17430
17431
|
try {
|
|
17431
|
-
await execFileP4("git",
|
|
17432
|
+
await execFileP4("git", cloneArgs, {
|
|
17432
17433
|
timeout: 12e4,
|
|
17433
17434
|
maxBuffer: 16 * 1024 * 1024,
|
|
17434
17435
|
env: nonInteractiveGitEnv()
|
|
@@ -18691,7 +18692,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
18691
18692
|
if (process.env.NODE_ENV === "test") return;
|
|
18692
18693
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
18693
18694
|
if (process.env.CI) return;
|
|
18694
|
-
const current = true ? "2.61.
|
|
18695
|
+
const current = true ? "2.61.42" : null;
|
|
18695
18696
|
if (!current) return;
|
|
18696
18697
|
const cache = readCache();
|
|
18697
18698
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -18708,7 +18709,7 @@ function checkForUpdates() {
|
|
|
18708
18709
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
18709
18710
|
if (process.env.CI) return;
|
|
18710
18711
|
if (!process.stdout.isTTY) return;
|
|
18711
|
-
const current = true ? "2.61.
|
|
18712
|
+
const current = true ? "2.61.42" : null;
|
|
18712
18713
|
if (!current) return;
|
|
18713
18714
|
const cache = readCache();
|
|
18714
18715
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -18728,7 +18729,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
|
|
|
18728
18729
|
var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
|
|
18729
18730
|
var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
|
|
18730
18731
|
function currentCliVersion() {
|
|
18731
|
-
return true ? "2.61.
|
|
18732
|
+
return true ? "2.61.42" : null;
|
|
18732
18733
|
}
|
|
18733
18734
|
function runCmd(cmd, args2, timeoutMs) {
|
|
18734
18735
|
return new Promise((resolve8) => {
|
|
@@ -18940,6 +18941,9 @@ function isDeployPayload(p2) {
|
|
|
18940
18941
|
if (p2.repoProvider !== void 0 && p2.repoProvider !== "github" && p2.repoProvider !== "gitlab") {
|
|
18941
18942
|
return false;
|
|
18942
18943
|
}
|
|
18944
|
+
if (p2.branch !== void 0 && typeof p2.branch !== "string") {
|
|
18945
|
+
return false;
|
|
18946
|
+
}
|
|
18943
18947
|
if (p2.headroomEnabled !== void 0 && typeof p2.headroomEnabled !== "boolean") {
|
|
18944
18948
|
return false;
|
|
18945
18949
|
}
|
|
@@ -19653,7 +19657,8 @@ var HostAgentSupervisor = class {
|
|
|
19653
19657
|
payload.repoOrPath,
|
|
19654
19658
|
payload.deployId,
|
|
19655
19659
|
payload.cloneToken,
|
|
19656
|
-
payload.repoProvider ?? "github"
|
|
19660
|
+
payload.repoProvider ?? "github",
|
|
19661
|
+
payload.branch
|
|
19657
19662
|
);
|
|
19658
19663
|
let childEnv;
|
|
19659
19664
|
let extraArgs = [];
|
|
@@ -19670,7 +19675,12 @@ var HostAgentSupervisor = class {
|
|
|
19670
19675
|
API_TIMEOUT_MS: "3000000",
|
|
19671
19676
|
CODEAM_AUTO_TOKEN: payload.autoPairToken
|
|
19672
19677
|
};
|
|
19673
|
-
const houseConfigDir = path46.join(
|
|
19678
|
+
const houseConfigDir = path46.join(
|
|
19679
|
+
os38.homedir(),
|
|
19680
|
+
".codeam",
|
|
19681
|
+
"house-claude",
|
|
19682
|
+
payload.deployId
|
|
19683
|
+
);
|
|
19674
19684
|
try {
|
|
19675
19685
|
fs43.mkdirSync(houseConfigDir, { recursive: true, mode: 448 });
|
|
19676
19686
|
} catch {
|
|
@@ -19686,6 +19696,7 @@ var HostAgentSupervisor = class {
|
|
|
19686
19696
|
};
|
|
19687
19697
|
}
|
|
19688
19698
|
childEnv = { ...childEnv, CODEAM_AUTO_APPROVE: "1" };
|
|
19699
|
+
childEnv = { ...childEnv, CODEAM_HOST_AGENT_CHILD: "1" };
|
|
19689
19700
|
if (payload.agentInstallScript) {
|
|
19690
19701
|
report("installing", "installing agent CLI");
|
|
19691
19702
|
await this.runAgentInstall(payload.agentInstallScript);
|
|
@@ -24678,7 +24689,7 @@ function acquireSingletonLock() {
|
|
|
24678
24689
|
}
|
|
24679
24690
|
async function pairAuto(args2) {
|
|
24680
24691
|
installRelayCrashGuards();
|
|
24681
|
-
if (!acquireSingletonLock()) {
|
|
24692
|
+
if (process.env.CODEAM_HOST_AGENT_CHILD !== "1" && !acquireSingletonLock()) {
|
|
24682
24693
|
capture("pair_auto_deferred_singleton", {});
|
|
24683
24694
|
console.log(" A codeam session is already running here \u2014 deferring to it.");
|
|
24684
24695
|
return;
|
|
@@ -38844,7 +38855,7 @@ function checkChokidar() {
|
|
|
38844
38855
|
}
|
|
38845
38856
|
async function doctor(args2 = []) {
|
|
38846
38857
|
const json = args2.includes("--json");
|
|
38847
|
-
const cliVersion = true ? "2.61.
|
|
38858
|
+
const cliVersion = true ? "2.61.42" : "0.0.0-dev";
|
|
38848
38859
|
const apiBase2 = resolveApiBaseUrl();
|
|
38849
38860
|
const diagnosticId = (0, import_node_crypto13.randomUUID)();
|
|
38850
38861
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -39355,7 +39366,7 @@ async function mcpRun(args2) {
|
|
|
39355
39366
|
// src/commands/version.ts
|
|
39356
39367
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
39357
39368
|
function version2() {
|
|
39358
|
-
const v = true ? "2.61.
|
|
39369
|
+
const v = true ? "2.61.42" : "unknown";
|
|
39359
39370
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
39360
39371
|
}
|
|
39361
39372
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.61.
|
|
3
|
+
"version": "2.61.42",
|
|
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",
|