codeam-cli 2.52.0 → 2.52.2
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 +19 -30
- 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.52.1] — 2026-06-29
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Send ideVersion on reconnect to keep session version current
|
|
12
|
+
|
|
13
|
+
## [2.52.0] — 2026-06-29
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **cli:** Add cli_self_update relay command handler (tap-to-update)
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **cli:** Treat codespace as no-self-relaunch in cli_self_update
|
|
22
|
+
|
|
7
23
|
## [2.51.3] — 2026-06-29
|
|
8
24
|
|
|
9
25
|
### Fixed
|
package/dist/index.js
CHANGED
|
@@ -5397,7 +5397,7 @@ function readAnonId() {
|
|
|
5397
5397
|
}
|
|
5398
5398
|
function superProperties() {
|
|
5399
5399
|
return {
|
|
5400
|
-
cliVersion: true ? "2.52.
|
|
5400
|
+
cliVersion: true ? "2.52.2" : "0.0.0-dev",
|
|
5401
5401
|
nodeVersion: process.version,
|
|
5402
5402
|
platform: process.platform,
|
|
5403
5403
|
arch: process.arch,
|
|
@@ -5578,7 +5578,7 @@ var os4 = __toESM(require("os"));
|
|
|
5578
5578
|
// package.json
|
|
5579
5579
|
var package_default = {
|
|
5580
5580
|
name: "codeam-cli",
|
|
5581
|
-
version: "2.52.
|
|
5581
|
+
version: "2.52.2",
|
|
5582
5582
|
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.",
|
|
5583
5583
|
type: "commonjs",
|
|
5584
5584
|
main: "dist/index.js",
|
|
@@ -5734,7 +5734,17 @@ async function fetchCurrentPluginAuthToken(sessionId, pluginId, pollSecret) {
|
|
|
5734
5734
|
try {
|
|
5735
5735
|
const result = await _transport.postJson(
|
|
5736
5736
|
`${API_BASE}/api/pairing/reconnect`,
|
|
5737
|
-
{
|
|
5737
|
+
{
|
|
5738
|
+
sessionId,
|
|
5739
|
+
pluginId,
|
|
5740
|
+
// Send the running CLI version so the backend keeps
|
|
5741
|
+
// PairedSession.ideVersion current across restarts. This fixes the
|
|
5742
|
+
// stale "CLI update available" banner that showed an outdated version
|
|
5743
|
+
// after the CLI restarted on a new release and took the reconnect
|
|
5744
|
+
// path (which previously never updated ideVersion). Backends older
|
|
5745
|
+
// than the matching fix ignore the unknown field (backward-compat).
|
|
5746
|
+
ideVersion: package_default.version
|
|
5747
|
+
},
|
|
5738
5748
|
// SEC: prove possession so the gated /reconnect returns the token.
|
|
5739
5749
|
// Omitted for legacy sessions (no secret) → backend legacy path.
|
|
5740
5750
|
pollSecret ? { "X-Plugin-Poll-Secret": pollSecret } : void 0
|
|
@@ -14853,7 +14863,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
14853
14863
|
if (process.env.NODE_ENV === "test") return;
|
|
14854
14864
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
14855
14865
|
if (process.env.CI) return;
|
|
14856
|
-
const current = true ? "2.52.
|
|
14866
|
+
const current = true ? "2.52.2" : null;
|
|
14857
14867
|
if (!current) return;
|
|
14858
14868
|
const cache = readCache();
|
|
14859
14869
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -14870,7 +14880,7 @@ function checkForUpdates() {
|
|
|
14870
14880
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
14871
14881
|
if (process.env.CI) return;
|
|
14872
14882
|
if (!process.stdout.isTTY) return;
|
|
14873
|
-
const current = true ? "2.52.
|
|
14883
|
+
const current = true ? "2.52.2" : null;
|
|
14874
14884
|
if (!current) return;
|
|
14875
14885
|
const cache = readCache();
|
|
14876
14886
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -15572,7 +15582,7 @@ var defaultSpawner = (env, cwd, args2 = []) => (0, import_node_child_process15.s
|
|
|
15572
15582
|
detached: false
|
|
15573
15583
|
});
|
|
15574
15584
|
function currentCliVersion() {
|
|
15575
|
-
return true ? "2.52.
|
|
15585
|
+
return true ? "2.52.2" : null;
|
|
15576
15586
|
}
|
|
15577
15587
|
function runCmd(cmd, args2, timeoutMs) {
|
|
15578
15588
|
return new Promise((resolve7) => {
|
|
@@ -25322,21 +25332,6 @@ function extractSelectPrompt(text) {
|
|
|
25322
25332
|
};
|
|
25323
25333
|
}
|
|
25324
25334
|
|
|
25325
|
-
// src/agents/acp/inputSuggestion.ts
|
|
25326
|
-
var MIN_LEN = 8;
|
|
25327
|
-
var MAX_LEN = 200;
|
|
25328
|
-
function deriveInputSuggestion(finalText) {
|
|
25329
|
-
if (finalText.length === 0) return null;
|
|
25330
|
-
const lines = finalText.split("\n");
|
|
25331
|
-
let i = lines.length - 1;
|
|
25332
|
-
while (i >= 0 && lines[i].trim() === "") i--;
|
|
25333
|
-
if (i < 0) return null;
|
|
25334
|
-
const lastLine = lines[i].trim();
|
|
25335
|
-
if (!lastLine.endsWith("?")) return null;
|
|
25336
|
-
if (lastLine.length < MIN_LEN || lastLine.length > MAX_LEN) return null;
|
|
25337
|
-
return lastLine;
|
|
25338
|
-
}
|
|
25339
|
-
|
|
25340
25335
|
// src/services/turn-files/turn-file-aggregator.ts
|
|
25341
25336
|
var import_crypto5 = require("crypto");
|
|
25342
25337
|
|
|
@@ -26903,19 +26898,13 @@ async function handleCommand(cmd, client2, relay, acpSessionId, models, streamin
|
|
|
26903
26898
|
} else if (shouldOfferOneMRecovery({ detail: "", recentStderr: recentStderr.join("\n"), finalText })) {
|
|
26904
26899
|
await oneMRecovery.offer(cmd.id, blocks);
|
|
26905
26900
|
} else {
|
|
26906
|
-
|
|
26901
|
+
await streaming.closeTurnWithInteractiveDetection();
|
|
26907
26902
|
const replyLine = formatAgentReplyLine(finalText);
|
|
26908
26903
|
if (replyLine.length > 0) {
|
|
26909
26904
|
showInfo(replyLine);
|
|
26910
26905
|
}
|
|
26911
26906
|
history.appendAgentReply(finalText);
|
|
26912
26907
|
void history.flush();
|
|
26913
|
-
if (!emittedSelectPrompt) {
|
|
26914
|
-
const suggestion = deriveInputSuggestion(finalText);
|
|
26915
|
-
if (suggestion !== null) {
|
|
26916
|
-
void publisher.publishOutput({ type: "input_suggestion", content: suggestion, done: true });
|
|
26917
|
-
}
|
|
26918
|
-
}
|
|
26919
26908
|
turnFiles.flushTurn().catch((err) => {
|
|
26920
26909
|
log.warn("acpRunner", `turnFiles.flushTurn failed: ${describeError(err)}`);
|
|
26921
26910
|
});
|
|
@@ -31192,7 +31181,7 @@ function checkChokidar() {
|
|
|
31192
31181
|
}
|
|
31193
31182
|
async function doctor(args2 = []) {
|
|
31194
31183
|
const json = args2.includes("--json");
|
|
31195
|
-
const cliVersion = true ? "2.52.
|
|
31184
|
+
const cliVersion = true ? "2.52.2" : "0.0.0-dev";
|
|
31196
31185
|
const apiBase2 = resolveApiBaseUrl();
|
|
31197
31186
|
const diagnosticId = (0, import_node_crypto8.randomUUID)();
|
|
31198
31187
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -31391,7 +31380,7 @@ async function completion(args2) {
|
|
|
31391
31380
|
// src/commands/version.ts
|
|
31392
31381
|
var import_picocolors15 = __toESM(require("picocolors"));
|
|
31393
31382
|
function version2() {
|
|
31394
|
-
const v = true ? "2.52.
|
|
31383
|
+
const v = true ? "2.52.2" : "unknown";
|
|
31395
31384
|
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
31396
31385
|
}
|
|
31397
31386
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.52.
|
|
3
|
+
"version": "2.52.2",
|
|
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",
|