codeam-cli 2.12.5 → 2.12.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 +18 -13
- 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.12.6] — 2026-05-14
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Always-on info+ file logging so chunk-send outcomes survive without CODEAM_DEBUG
|
|
12
|
+
|
|
13
|
+
## [2.12.5] — 2026-05-14
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- **cli:** Rewrite filterCodexChrome — drop the brittle skipEchoContinuation state machine
|
|
18
|
+
|
|
7
19
|
## [2.12.4] — 2026-05-14
|
|
8
20
|
|
|
9
21
|
### Fixed
|
package/dist/index.js
CHANGED
|
@@ -1682,7 +1682,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
|
|
|
1682
1682
|
// package.json
|
|
1683
1683
|
var package_default = {
|
|
1684
1684
|
name: "codeam-cli",
|
|
1685
|
-
version: "2.12.
|
|
1685
|
+
version: "2.12.7",
|
|
1686
1686
|
description: "Remote control Claude Code (and other AI coding agents) from your mobile phone. Pair your device, send prompts, stream responses in real-time, and approve commands \u2014 from anywhere.",
|
|
1687
1687
|
type: "commonjs",
|
|
1688
1688
|
main: "dist/index.js",
|
|
@@ -1990,11 +1990,10 @@ function currentLevel() {
|
|
|
1990
1990
|
const raw = (process.env.CODEAM_LOG ?? "error").toLowerCase();
|
|
1991
1991
|
return LEVELS[raw] ?? LEVELS.error;
|
|
1992
1992
|
}
|
|
1993
|
-
var
|
|
1993
|
+
var verboseFileEnabled = process.env.CODEAM_DEBUG === "1" || process.env.CODEAM_LOG === "debug" || process.env.CODEAM_LOG === "trace";
|
|
1994
1994
|
var debugFilePath = path2.join(os3.homedir(), ".codeam", "debug.log");
|
|
1995
1995
|
var fileInitialized = false;
|
|
1996
1996
|
function appendToFile(line) {
|
|
1997
|
-
if (!fileEnabled) return;
|
|
1998
1997
|
try {
|
|
1999
1998
|
if (!fileInitialized) {
|
|
2000
1999
|
fs2.mkdirSync(path2.dirname(debugFilePath), { recursive: true });
|
|
@@ -2012,14 +2011,15 @@ platform=${process.platform} node=${process.version} cwd=${process.cwd()}
|
|
|
2012
2011
|
}
|
|
2013
2012
|
}
|
|
2014
2013
|
function emit(level, tag, msg, err) {
|
|
2015
|
-
if (LEVELS[level] > currentLevel()) return;
|
|
2016
2014
|
const detail = err instanceof Error ? `: ${err.message}` : err !== void 0 ? `: ${String(err)}` : "";
|
|
2017
2015
|
const line = `[codeam:${level}] ${tag} \u2014 ${msg}${detail}
|
|
2018
2016
|
`;
|
|
2019
|
-
|
|
2020
|
-
if (LEVELS[level] >= LEVELS.debug) {
|
|
2017
|
+
if (LEVELS[level] <= LEVELS.info || verboseFileEnabled) {
|
|
2021
2018
|
appendToFile(`${(/* @__PURE__ */ new Date()).toISOString()} ${line}`);
|
|
2022
2019
|
}
|
|
2020
|
+
if (LEVELS[level] <= currentLevel()) {
|
|
2021
|
+
process.stderr.write(line);
|
|
2022
|
+
}
|
|
2023
2023
|
}
|
|
2024
2024
|
var log = {
|
|
2025
2025
|
error: (tag, msg, err) => emit("error", tag, msg, err),
|
|
@@ -6125,28 +6125,33 @@ var ChunkEmitter = class {
|
|
|
6125
6125
|
...body
|
|
6126
6126
|
});
|
|
6127
6127
|
const maxRetries = opts.critical ? 3 : 0;
|
|
6128
|
-
|
|
6128
|
+
const t0 = Date.now();
|
|
6129
|
+
log.info(
|
|
6129
6130
|
"chunkEmitter",
|
|
6130
|
-
`send type=${body.type ?? "(clear)"} bytes=${payload.length}`
|
|
6131
|
+
`send type=${body.type ?? "(clear)"} bytes=${payload.length} done=${body.done === true}`
|
|
6131
6132
|
);
|
|
6132
6133
|
return new Promise((resolve2) => {
|
|
6133
6134
|
const attempt = (attemptsLeft) => {
|
|
6134
6135
|
_transport2.post(this.url, this.headers, payload).then(({ statusCode, body: resBody }) => {
|
|
6136
|
+
const tookMs = Date.now() - t0;
|
|
6135
6137
|
if (statusCode === 410 || statusCode === 404 && /SESSION_NOT_FOUND|SESSION_GONE/.test(resBody)) {
|
|
6136
6138
|
process.stderr.write("[codeam] session was deleted/disconnected \u2014 stopping output stream.\n");
|
|
6139
|
+
log.info("chunkEmitter", `dead status=${statusCode} took=${tookMs}ms`);
|
|
6137
6140
|
resolve2({ dead: true });
|
|
6138
6141
|
return;
|
|
6139
6142
|
}
|
|
6140
6143
|
if (statusCode >= 400) {
|
|
6144
|
+
log.warn("chunkEmitter", `api-error status=${statusCode} took=${tookMs}ms body=${resBody.slice(0, 200)}`);
|
|
6141
6145
|
process.stderr.write(`[codeam] output API error ${statusCode}: ${resBody}
|
|
6142
6146
|
`);
|
|
6147
|
+
} else {
|
|
6148
|
+
log.info("chunkEmitter", `ok status=${statusCode} took=${tookMs}ms`);
|
|
6143
6149
|
}
|
|
6144
|
-
log.trace("chunkEmitter", `status=${statusCode}`);
|
|
6145
6150
|
resolve2({ dead: false });
|
|
6146
6151
|
}).catch((err) => {
|
|
6147
|
-
log.
|
|
6152
|
+
log.warn(
|
|
6148
6153
|
"chunkEmitter",
|
|
6149
|
-
`error retries-left=${attemptsLeft}`,
|
|
6154
|
+
`error retries-left=${attemptsLeft} took=${Date.now() - t0}ms`,
|
|
6150
6155
|
err
|
|
6151
6156
|
);
|
|
6152
6157
|
if (attemptsLeft > 0) {
|
|
@@ -10135,7 +10140,7 @@ async function stopWorkspaceFromLocal(target) {
|
|
|
10135
10140
|
// src/commands/version.ts
|
|
10136
10141
|
var import_picocolors11 = __toESM(require("picocolors"));
|
|
10137
10142
|
function version() {
|
|
10138
|
-
const v = true ? "2.12.
|
|
10143
|
+
const v = true ? "2.12.7" : "unknown";
|
|
10139
10144
|
console.log(`${import_picocolors11.default.bold("codeam-cli")} ${import_picocolors11.default.cyan(v)}`);
|
|
10140
10145
|
}
|
|
10141
10146
|
|
|
@@ -10270,7 +10275,7 @@ function checkForUpdates() {
|
|
|
10270
10275
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
10271
10276
|
if (process.env.CI) return;
|
|
10272
10277
|
if (!process.stdout.isTTY) return;
|
|
10273
|
-
const current = true ? "2.12.
|
|
10278
|
+
const current = true ? "2.12.7" : null;
|
|
10274
10279
|
if (!current) return;
|
|
10275
10280
|
const cache = readCache();
|
|
10276
10281
|
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.12.
|
|
3
|
+
"version": "2.12.7",
|
|
4
4
|
"description": "Remote control Claude Code (and other AI coding agents) from your mobile phone. Pair your device, send prompts, stream responses in real-time, and approve commands — from anywhere.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/index.js",
|