codeam-cli 2.28.0 → 2.28.1

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,23 @@ 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.28.0] — 2026-06-06
8
+
9
+ ### Added
10
+
11
+ - **cli:** Auto-update on stale version + re-exec into new binary
12
+
13
+ ### Fixed
14
+
15
+ - **cli:** IDE terminal output + Save round-trip on ACP sessions
16
+ - **cli:** File-watcher honors .gitignore per-repo
17
+ - **cli:** Refresh pluginAuthToken on boot to survive JWT_SECRET rotation
18
+ - **cli:** Use /pairing/reconnect on boot to refresh token + activate session
19
+
20
+ ### Diag
21
+
22
+ - **cli:** Log boot triple + on-401 triple to isolate INVALID_PLUGIN_TOKEN
23
+
7
24
  ## [2.27.16] — 2026-06-06
8
25
 
9
26
  ### Added
package/dist/index.js CHANGED
@@ -498,7 +498,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
498
498
  // package.json
499
499
  var package_default = {
500
500
  name: "codeam-cli",
501
- version: "2.28.0",
501
+ version: "2.28.1",
502
502
  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.",
503
503
  type: "commonjs",
504
504
  main: "dist/index.js",
@@ -692,12 +692,13 @@ function computePollDelay({ baseMs, failures }) {
692
692
 
693
693
  // src/services/pairing.service.ts
694
694
  var API_BASE = resolveApiBaseUrl();
695
+ var REQUEST_CODE_TIMEOUT_MS = 1e4;
695
696
  async function requestCode(pluginId) {
696
697
  try {
697
698
  const runtime = process.env.CODESPACES === "true" ? "github-codespaces" : "local";
698
699
  const codespaceName = process.env.CODESPACE_NAME;
699
700
  const branch = detectCurrentBranch();
700
- const result = await _transport.postJson(`${API_BASE}/api/pairing/code`, {
701
+ const post2 = _transport.postJson(`${API_BASE}/api/pairing/code`, {
701
702
  pluginId,
702
703
  ideName: "Terminal (codeam-cli)",
703
704
  ideVersion: package_default.version,
@@ -706,6 +707,14 @@ async function requestCode(pluginId) {
706
707
  branch,
707
708
  ...codespaceName ? { codespaceName } : {}
708
709
  });
710
+ let timer;
711
+ const timeoutSentinel = /* @__PURE__ */ Symbol("request-code-timeout");
712
+ const timeoutPromise = new Promise((resolve6) => {
713
+ timer = setTimeout(() => resolve6(timeoutSentinel), REQUEST_CODE_TIMEOUT_MS);
714
+ });
715
+ const result = await Promise.race([post2, timeoutPromise]);
716
+ clearTimeout(timer);
717
+ if (result === timeoutSentinel) return null;
709
718
  const data = result?.data;
710
719
  if (!data?.code) return null;
711
720
  return { code: data.code, expiresAt: data.expiresAt };
@@ -5888,7 +5897,7 @@ function readAnonId() {
5888
5897
  }
5889
5898
  function superProperties() {
5890
5899
  return {
5891
- cliVersion: true ? "2.28.0" : "0.0.0-dev",
5900
+ cliVersion: true ? "2.28.1" : "0.0.0-dev",
5892
5901
  nodeVersion: process.version,
5893
5902
  platform: process.platform,
5894
5903
  arch: process.arch,
@@ -24670,7 +24679,7 @@ function checkChokidar() {
24670
24679
  }
24671
24680
  async function doctor(args2 = []) {
24672
24681
  const json = args2.includes("--json");
24673
- const cliVersion = true ? "2.28.0" : "0.0.0-dev";
24682
+ const cliVersion = true ? "2.28.1" : "0.0.0-dev";
24674
24683
  const apiBase = resolveApiBaseUrl();
24675
24684
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
24676
24685
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -24869,7 +24878,7 @@ async function completion(args2) {
24869
24878
  // src/commands/version.ts
24870
24879
  var import_picocolors13 = __toESM(require("picocolors"));
24871
24880
  function version2() {
24872
- const v = true ? "2.28.0" : "unknown";
24881
+ const v = true ? "2.28.1" : "unknown";
24873
24882
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
24874
24883
  }
24875
24884
 
@@ -25155,7 +25164,7 @@ function checkForUpdates() {
25155
25164
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
25156
25165
  if (process.env.CI) return;
25157
25166
  if (!process.stdout.isTTY) return;
25158
- const current = true ? "2.28.0" : null;
25167
+ const current = true ? "2.28.1" : null;
25159
25168
  if (!current) return;
25160
25169
  const cache = readCache();
25161
25170
  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.28.0",
3
+ "version": "2.28.1",
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",