codeam-cli 2.26.0 → 2.26.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 +18 -0
- package/dist/index.js +53 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,24 @@ 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.26.1] — 2026-06-03
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **workflow:** Drop stray `if-no-files-found: error` line from api-v2 dispatch step (#233)
|
|
12
|
+
- **vsc-plugin:** Event-driven AgentOutputMonitor + auth guard on output push (#234)
|
|
13
|
+
|
|
14
|
+
## [2.26.0] — 2026-06-03
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **workflow:** Cross-PR review by Claude Code on codex-authored PRs (#231)
|
|
19
|
+
- **cli,vsc-plugin:** Preview lifecycle + branch reporting (Phase 1B for #438) (#232)
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- **workflow:** Use existing CROSS_REPO_PAT for api-v2 dispatch (#230)
|
|
24
|
+
|
|
7
25
|
## [2.25.0] — 2026-06-03
|
|
8
26
|
|
|
9
27
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -472,7 +472,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
|
|
|
472
472
|
// package.json
|
|
473
473
|
var package_default = {
|
|
474
474
|
name: "codeam-cli",
|
|
475
|
-
version: "2.26.
|
|
475
|
+
version: "2.26.2",
|
|
476
476
|
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.",
|
|
477
477
|
type: "commonjs",
|
|
478
478
|
main: "dist/index.js",
|
|
@@ -5829,7 +5829,7 @@ function readAnonId() {
|
|
|
5829
5829
|
}
|
|
5830
5830
|
function superProperties() {
|
|
5831
5831
|
return {
|
|
5832
|
-
cliVersion: true ? "2.26.
|
|
5832
|
+
cliVersion: true ? "2.26.2" : "0.0.0-dev",
|
|
5833
5833
|
nodeVersion: process.version,
|
|
5834
5834
|
platform: process.platform,
|
|
5835
5835
|
arch: process.arch,
|
|
@@ -11649,6 +11649,37 @@ var ChromeStepTracker = class {
|
|
|
11649
11649
|
var https3 = __toESM(require("https"));
|
|
11650
11650
|
var http3 = __toESM(require("http"));
|
|
11651
11651
|
var API_BASE3 = resolveApiBaseUrl();
|
|
11652
|
+
async function refreshAuthToken(sessionId, pluginId) {
|
|
11653
|
+
try {
|
|
11654
|
+
const { statusCode, body } = await _transport2.post(
|
|
11655
|
+
`${API_BASE3}/api/pairing/reconnect`,
|
|
11656
|
+
{
|
|
11657
|
+
"Content-Type": "application/json",
|
|
11658
|
+
"X-Codeam-Protocol-Version": PROTOCOL_VERSION,
|
|
11659
|
+
...vercelBypassHeader()
|
|
11660
|
+
},
|
|
11661
|
+
JSON.stringify({ sessionId, pluginId })
|
|
11662
|
+
);
|
|
11663
|
+
if (statusCode === 404) {
|
|
11664
|
+
log.warn("chunkEmitter", "[auth] reconnect 404 \u2014 session gone server-side");
|
|
11665
|
+
return null;
|
|
11666
|
+
}
|
|
11667
|
+
if (statusCode >= 400) {
|
|
11668
|
+
log.warn("chunkEmitter", `[auth] reconnect failed status=${statusCode}`);
|
|
11669
|
+
return null;
|
|
11670
|
+
}
|
|
11671
|
+
const parsed = JSON.parse(body);
|
|
11672
|
+
const fresh = parsed.data?.pluginAuthToken;
|
|
11673
|
+
if (typeof fresh !== "string" || fresh.length === 0) {
|
|
11674
|
+
log.warn("chunkEmitter", "[auth] reconnect response missing pluginAuthToken");
|
|
11675
|
+
return null;
|
|
11676
|
+
}
|
|
11677
|
+
return fresh;
|
|
11678
|
+
} catch (err) {
|
|
11679
|
+
log.warn("chunkEmitter", `[auth] reconnect threw: ${String(err)}`);
|
|
11680
|
+
return null;
|
|
11681
|
+
}
|
|
11682
|
+
}
|
|
11652
11683
|
var ChunkEmitter = class {
|
|
11653
11684
|
constructor(opts) {
|
|
11654
11685
|
this.opts = opts;
|
|
@@ -11693,6 +11724,23 @@ var ChunkEmitter = class {
|
|
|
11693
11724
|
resolve5({ dead: true });
|
|
11694
11725
|
return;
|
|
11695
11726
|
}
|
|
11727
|
+
if (statusCode === 401) {
|
|
11728
|
+
log.warn("chunkEmitter", `auth 401 took=${tookMs}ms \u2014 attempting silent refresh`);
|
|
11729
|
+
void (async () => {
|
|
11730
|
+
const fresh = await refreshAuthToken(this.opts.sessionId, this.opts.pluginId);
|
|
11731
|
+
if (fresh) {
|
|
11732
|
+
this.headers["X-Plugin-Auth-Token"] = fresh;
|
|
11733
|
+
this.opts.pluginAuthToken = fresh;
|
|
11734
|
+
log.info("chunkEmitter", "auth refreshed silently");
|
|
11735
|
+
if (attemptsLeft > 0 || opts.critical) {
|
|
11736
|
+
attempt(Math.max(attemptsLeft, 1));
|
|
11737
|
+
return;
|
|
11738
|
+
}
|
|
11739
|
+
}
|
|
11740
|
+
resolve5({ dead: false });
|
|
11741
|
+
})();
|
|
11742
|
+
return;
|
|
11743
|
+
}
|
|
11696
11744
|
if (statusCode >= 400) {
|
|
11697
11745
|
log.warn("chunkEmitter", `api-error status=${statusCode} took=${tookMs}ms body=${resBody.slice(0, 200)}`);
|
|
11698
11746
|
process.stderr.write(`[codeam] output API error ${statusCode}: ${resBody}
|
|
@@ -19876,7 +19924,7 @@ function checkChokidar() {
|
|
|
19876
19924
|
}
|
|
19877
19925
|
async function doctor(args2 = []) {
|
|
19878
19926
|
const json = args2.includes("--json");
|
|
19879
|
-
const cliVersion = true ? "2.26.
|
|
19927
|
+
const cliVersion = true ? "2.26.2" : "0.0.0-dev";
|
|
19880
19928
|
const apiBase = resolveApiBaseUrl();
|
|
19881
19929
|
const diagnosticId = (0, import_node_crypto6.randomUUID)();
|
|
19882
19930
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -20075,7 +20123,7 @@ async function completion(args2) {
|
|
|
20075
20123
|
// src/commands/version.ts
|
|
20076
20124
|
var import_picocolors13 = __toESM(require("picocolors"));
|
|
20077
20125
|
function version2() {
|
|
20078
|
-
const v = true ? "2.26.
|
|
20126
|
+
const v = true ? "2.26.2" : "unknown";
|
|
20079
20127
|
console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
|
|
20080
20128
|
}
|
|
20081
20129
|
|
|
@@ -20303,7 +20351,7 @@ function checkForUpdates() {
|
|
|
20303
20351
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
20304
20352
|
if (process.env.CI) return;
|
|
20305
20353
|
if (!process.stdout.isTTY) return;
|
|
20306
|
-
const current = true ? "2.26.
|
|
20354
|
+
const current = true ? "2.26.2" : null;
|
|
20307
20355
|
if (!current) return;
|
|
20308
20356
|
const cache = readCache();
|
|
20309
20357
|
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.26.
|
|
3
|
+
"version": "2.26.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",
|