codeam-cli 2.12.7 → 2.12.9

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.7] — 2026-05-14
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** File logging guard order — info+ lines now actually reach the file
12
+
7
13
  ## [2.12.6] — 2026-05-14
8
14
 
9
15
  ### Fixed
package/dist/index.js CHANGED
@@ -1394,9 +1394,19 @@ var import_picocolors2 = __toESM(require("picocolors"));
1394
1394
 
1395
1395
  // ../../packages/shared/src/protocol/renderToLines.ts
1396
1396
  function renderToLines(raw) {
1397
+ const scrollback = [];
1397
1398
  const screen = [""];
1398
1399
  let row = 0;
1399
1400
  let col = 0;
1401
+ function commitToScrollback() {
1402
+ let end = screen.length;
1403
+ while (end > 0 && screen[end - 1].trim() === "") end--;
1404
+ for (let i2 = 0; i2 < end; i2++) scrollback.push(screen[i2]);
1405
+ screen.length = 1;
1406
+ screen[0] = "";
1407
+ row = 0;
1408
+ col = 0;
1409
+ }
1400
1410
  function ensureRow() {
1401
1411
  while (screen.length <= row) screen.push("");
1402
1412
  }
@@ -1440,10 +1450,7 @@ function renderToLines(raw) {
1440
1450
  ensureRow();
1441
1451
  } else if (cmd === "J") {
1442
1452
  if (param === "2" || param === "3") {
1443
- screen.length = 1;
1444
- screen[0] = "";
1445
- row = 0;
1446
- col = 0;
1453
+ commitToScrollback();
1447
1454
  } else if (param === "1") {
1448
1455
  for (let r = 0; r < row; r++) screen[r] = "";
1449
1456
  screen[row] = " ".repeat(col) + screen[row].slice(col);
@@ -1457,15 +1464,9 @@ function renderToLines(raw) {
1457
1464
  else if (param === "1") screen[row] = " ".repeat(col) + screen[row].slice(col);
1458
1465
  else if (param === "2") screen[row] = "";
1459
1466
  } else if (cmd === "h" && (param === "?1049" || param === "?47")) {
1460
- screen.length = 1;
1461
- screen[0] = "";
1462
- row = 0;
1463
- col = 0;
1467
+ commitToScrollback();
1464
1468
  } else if (cmd === "l" && (param === "?1049" || param === "?47")) {
1465
- screen.length = 1;
1466
- screen[0] = "";
1467
- row = 0;
1468
- col = 0;
1469
+ commitToScrollback();
1469
1470
  }
1470
1471
  } else if (raw[i] === "]") {
1471
1472
  i++;
@@ -1496,7 +1497,7 @@ function renderToLines(raw) {
1496
1497
  }
1497
1498
  i++;
1498
1499
  }
1499
- return screen;
1500
+ return [...scrollback, ...screen];
1500
1501
  }
1501
1502
 
1502
1503
  // ../../packages/shared/src/models/pricing.ts
@@ -1682,7 +1683,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
1682
1683
  // package.json
1683
1684
  var package_default = {
1684
1685
  name: "codeam-cli",
1685
- version: "2.12.7",
1686
+ version: "2.12.9",
1686
1687
  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
1688
  type: "commonjs",
1688
1689
  main: "dist/index.js",
@@ -5834,14 +5835,16 @@ function filterCodexChrome(lines) {
5834
5835
  }
5835
5836
  out.push(t2);
5836
5837
  }
5837
- log.trace("codex-parse", `filterCodexChrome in=${lines.length} out=${out.length}`);
5838
- if (process.env.CODEAM_DEBUG === "1") {
5839
- const sampleIn = lines.slice(-40).map((l, i) => ` in[${i}] ${JSON.stringify(l)}`).join("\n");
5838
+ const hasRealInput = lines.some((l) => /\w/.test(l));
5839
+ if (out.length > 0 || hasRealInput) {
5840
+ const sampleIn = lines.slice(-50).map((l, i) => ` in[${i}] ${JSON.stringify(l)}`).join("\n");
5840
5841
  const sampleOut = out.map((l, i) => ` out[${i}] ${JSON.stringify(l)}`).join("\n");
5841
- log.debug("codex-parse", `
5842
+ log.info("codex-parse", `in=${lines.length} out=${out.length}
5842
5843
  ${sampleIn}
5843
5844
  ---
5844
5845
  ${sampleOut}`);
5846
+ } else {
5847
+ log.trace("codex-parse", `filterCodexChrome in=${lines.length} out=${out.length}`);
5845
5848
  }
5846
5849
  return out;
5847
5850
  }
@@ -10140,7 +10143,7 @@ async function stopWorkspaceFromLocal(target) {
10140
10143
  // src/commands/version.ts
10141
10144
  var import_picocolors11 = __toESM(require("picocolors"));
10142
10145
  function version() {
10143
- const v = true ? "2.12.7" : "unknown";
10146
+ const v = true ? "2.12.9" : "unknown";
10144
10147
  console.log(`${import_picocolors11.default.bold("codeam-cli")} ${import_picocolors11.default.cyan(v)}`);
10145
10148
  }
10146
10149
 
@@ -10275,7 +10278,7 @@ function checkForUpdates() {
10275
10278
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
10276
10279
  if (process.env.CI) return;
10277
10280
  if (!process.stdout.isTTY) return;
10278
- const current = true ? "2.12.7" : null;
10281
+ const current = true ? "2.12.9" : null;
10279
10282
  if (!current) return;
10280
10283
  const cache = readCache();
10281
10284
  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.7",
3
+ "version": "2.12.9",
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",