codeam-cli 2.12.5 → 2.12.6

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 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.12.5] — 2026-05-14
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Rewrite filterCodexChrome — drop the brittle skipEchoContinuation state machine
12
+
7
13
  ## [2.12.4] — 2026-05-14
8
14
 
9
15
  ### 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.5",
1685
+ version: "2.12.6",
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 fileEnabled = process.env.CODEAM_DEBUG === "1" || process.env.CODEAM_LOG === "debug" || process.env.CODEAM_LOG === "trace";
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 });
@@ -2017,7 +2016,7 @@ function emit(level, tag, msg, err) {
2017
2016
  const line = `[codeam:${level}] ${tag} \u2014 ${msg}${detail}
2018
2017
  `;
2019
2018
  process.stderr.write(line);
2020
- if (LEVELS[level] >= LEVELS.debug) {
2019
+ if (LEVELS[level] <= LEVELS.info || verboseFileEnabled) {
2021
2020
  appendToFile(`${(/* @__PURE__ */ new Date()).toISOString()} ${line}`);
2022
2021
  }
2023
2022
  }
@@ -6125,28 +6124,33 @@ var ChunkEmitter = class {
6125
6124
  ...body
6126
6125
  });
6127
6126
  const maxRetries = opts.critical ? 3 : 0;
6128
- log.trace(
6127
+ const t0 = Date.now();
6128
+ log.info(
6129
6129
  "chunkEmitter",
6130
- `send type=${body.type ?? "(clear)"} bytes=${payload.length}`
6130
+ `send type=${body.type ?? "(clear)"} bytes=${payload.length} done=${body.done === true}`
6131
6131
  );
6132
6132
  return new Promise((resolve2) => {
6133
6133
  const attempt = (attemptsLeft) => {
6134
6134
  _transport2.post(this.url, this.headers, payload).then(({ statusCode, body: resBody }) => {
6135
+ const tookMs = Date.now() - t0;
6135
6136
  if (statusCode === 410 || statusCode === 404 && /SESSION_NOT_FOUND|SESSION_GONE/.test(resBody)) {
6136
6137
  process.stderr.write("[codeam] session was deleted/disconnected \u2014 stopping output stream.\n");
6138
+ log.info("chunkEmitter", `dead status=${statusCode} took=${tookMs}ms`);
6137
6139
  resolve2({ dead: true });
6138
6140
  return;
6139
6141
  }
6140
6142
  if (statusCode >= 400) {
6143
+ log.warn("chunkEmitter", `api-error status=${statusCode} took=${tookMs}ms body=${resBody.slice(0, 200)}`);
6141
6144
  process.stderr.write(`[codeam] output API error ${statusCode}: ${resBody}
6142
6145
  `);
6146
+ } else {
6147
+ log.info("chunkEmitter", `ok status=${statusCode} took=${tookMs}ms`);
6143
6148
  }
6144
- log.trace("chunkEmitter", `status=${statusCode}`);
6145
6149
  resolve2({ dead: false });
6146
6150
  }).catch((err) => {
6147
- log.trace(
6151
+ log.warn(
6148
6152
  "chunkEmitter",
6149
- `error retries-left=${attemptsLeft}`,
6153
+ `error retries-left=${attemptsLeft} took=${Date.now() - t0}ms`,
6150
6154
  err
6151
6155
  );
6152
6156
  if (attemptsLeft > 0) {
@@ -10135,7 +10139,7 @@ async function stopWorkspaceFromLocal(target) {
10135
10139
  // src/commands/version.ts
10136
10140
  var import_picocolors11 = __toESM(require("picocolors"));
10137
10141
  function version() {
10138
- const v = true ? "2.12.5" : "unknown";
10142
+ const v = true ? "2.12.6" : "unknown";
10139
10143
  console.log(`${import_picocolors11.default.bold("codeam-cli")} ${import_picocolors11.default.cyan(v)}`);
10140
10144
  }
10141
10145
 
@@ -10270,7 +10274,7 @@ function checkForUpdates() {
10270
10274
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
10271
10275
  if (process.env.CI) return;
10272
10276
  if (!process.stdout.isTTY) return;
10273
- const current = true ? "2.12.5" : null;
10277
+ const current = true ? "2.12.6" : null;
10274
10278
  if (!current) return;
10275
10279
  const cache = readCache();
10276
10280
  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.5",
3
+ "version": "2.12.6",
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",