codeam-cli 2.61.72 → 2.61.74

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,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.61.73] — 2026-07-29
8
+
9
+ ### Added
10
+
11
+ - **cli:** Honor suppressOnboardingWelcome on self-hosted/warm deploys (#562)
12
+
13
+ ## [2.61.72] — 2026-07-29
14
+
15
+ ### Fixed
16
+
17
+ - **cli:** Stop the Headroom :8787 proxy respawn loop (pid-check + grace + spawn lock) (#560)
18
+
7
19
  ## [2.61.71] — 2026-07-28
8
20
 
9
21
  ### Added
package/dist/index.js CHANGED
@@ -7074,7 +7074,7 @@ function readAnonId() {
7074
7074
  }
7075
7075
  function superProperties() {
7076
7076
  return {
7077
- cliVersion: true ? "2.61.72" : "0.0.0-dev",
7077
+ cliVersion: true ? "2.61.74" : "0.0.0-dev",
7078
7078
  nodeVersion: process.version,
7079
7079
  platform: process.platform,
7080
7080
  arch: process.arch,
@@ -7255,7 +7255,7 @@ var os4 = __toESM(require("os"));
7255
7255
  // package.json
7256
7256
  var package_default = {
7257
7257
  name: "codeam-cli",
7258
- version: "2.61.72",
7258
+ version: "2.61.74",
7259
7259
  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.",
7260
7260
  type: "commonjs",
7261
7261
  main: "dist/index.js",
@@ -8487,7 +8487,7 @@ var CommandRelayService = class _CommandRelayService {
8487
8487
  // fresh + clear the "CLI update available" banner after a self-update
8488
8488
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
8489
8489
  // pair/reconnect). Older backends ignore the extra field.
8490
- ..."2.61.72" ? { ideVersion: "2.61.72" } : {}
8490
+ ..."2.61.74" ? { ideVersion: "2.61.74" } : {}
8491
8491
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
8492
8492
  }
8493
8493
  /**
@@ -19601,7 +19601,7 @@ async function autoUpgradeBeforeCriticalCommand() {
19601
19601
  if (process.env.NODE_ENV === "test") return;
19602
19602
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19603
19603
  if (process.env.CI) return;
19604
- const current = true ? "2.61.72" : null;
19604
+ const current = true ? "2.61.74" : null;
19605
19605
  if (!current) return;
19606
19606
  const cache = readCache();
19607
19607
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19618,7 +19618,7 @@ function checkForUpdates() {
19618
19618
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19619
19619
  if (process.env.CI) return;
19620
19620
  if (!process.stdout.isTTY) return;
19621
- const current = true ? "2.61.72" : null;
19621
+ const current = true ? "2.61.74" : null;
19622
19622
  if (!current) return;
19623
19623
  const cache = readCache();
19624
19624
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19638,7 +19638,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
19638
19638
  var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
19639
19639
  var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
19640
19640
  function currentCliVersion() {
19641
- return true ? "2.61.72" : null;
19641
+ return true ? "2.61.74" : null;
19642
19642
  }
19643
19643
  function runCmd(cmd, args2, timeoutMs) {
19644
19644
  return new Promise((resolve9) => {
@@ -19859,6 +19859,9 @@ function isDeployPayload(p2) {
19859
19859
  if (p2.headroomAgent !== void 0 && typeof p2.headroomAgent !== "string") {
19860
19860
  return false;
19861
19861
  }
19862
+ if (p2.suppressOnboardingWelcome !== void 0 && typeof p2.suppressOnboardingWelcome !== "boolean") {
19863
+ return false;
19864
+ }
19862
19865
  if (p2.headroomSavingsIngestUrl !== void 0 && typeof p2.headroomSavingsIngestUrl !== "string") {
19863
19866
  return false;
19864
19867
  }
@@ -20656,6 +20659,9 @@ var HostAgentSupervisor = class {
20656
20659
  childEnv.PREVIEW_TUNNEL_TOKEN = payload.previewTunnelToken;
20657
20660
  childEnv.PREVIEW_TUNNEL_HOSTNAME = payload.previewHostname;
20658
20661
  }
20662
+ if (payload.suppressOnboardingWelcome) {
20663
+ childEnv.CODEAM_ONBOARDING_DISABLED = "1";
20664
+ }
20659
20665
  if (payload.headroomEnabled && payload.headroomAgent && payload.headroomSavingsIngestUrl && isHeadroomSupportedAgent(payload.headroomAgent)) {
20660
20666
  report("headroom", "setting up Headroom proxy");
20661
20667
  const freeBytes = await this.getFreeDisk(os38.homedir());
@@ -20803,7 +20809,7 @@ var HostAgentSupervisor = class {
20803
20809
  if (this.children.size > 0) return;
20804
20810
  const session = getActiveSession();
20805
20811
  if (!session || !session.pluginId || !session.pollSecret || !session.agent) return;
20806
- const cwd = process.cwd();
20812
+ const cwd = session.cwd && fs44.existsSync(session.cwd) ? session.cwd : process.cwd();
20807
20813
  const proc = this.resumeSpawner({ ...readHeadroomChildEnv() }, cwd);
20808
20814
  const child = {
20809
20815
  deployId: session.id,
@@ -25730,7 +25736,12 @@ async function pairAuto(args2) {
25730
25736
  pluginAuthToken: claimed.pluginAuthToken,
25731
25737
  // SEC crit1 (#813): persist so boot-time /reconnect proves possession.
25732
25738
  pollSecret,
25733
- agent: claimed.agent
25739
+ agent: claimed.agent,
25740
+ // The pair-auto child runs IN the deploy workspace, so this is the cwd the
25741
+ // agent's conversation lives under. Persist it so a supervisor-boot resume
25742
+ // (warm-codespace wake / restart) re-spawns in the SAME dir and resumes the
25743
+ // real conversation instead of a fresh one in the host-agent's cwd.
25744
+ cwd: process.cwd()
25734
25745
  };
25735
25746
  addSession(claimedSession);
25736
25747
  identifyUser({
@@ -32681,8 +32692,14 @@ function buildOnboardingWelcome(cwd) {
32681
32692
  ].join("\n");
32682
32693
  }
32683
32694
  async function maybeSendOnboardingWelcome(opts) {
32684
- if (_onboardingSeam.disabled()) return;
32685
32695
  const marker = _onboardingSeam.markerPath(opts.sessionId);
32696
+ if (_onboardingSeam.disabled()) {
32697
+ try {
32698
+ _onboardingSeam.write(marker);
32699
+ } catch {
32700
+ }
32701
+ return;
32702
+ }
32686
32703
  try {
32687
32704
  if (_onboardingSeam.exists(marker)) {
32688
32705
  try {
@@ -40072,7 +40089,7 @@ function checkChokidar() {
40072
40089
  }
40073
40090
  async function doctor(args2 = []) {
40074
40091
  const json = args2.includes("--json");
40075
- const cliVersion = true ? "2.61.72" : "0.0.0-dev";
40092
+ const cliVersion = true ? "2.61.74" : "0.0.0-dev";
40076
40093
  const apiBase2 = resolveApiBaseUrl();
40077
40094
  const diagnosticId = (0, import_node_crypto13.randomUUID)();
40078
40095
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -40594,7 +40611,7 @@ async function mcpRun(args2) {
40594
40611
  // src/commands/version.ts
40595
40612
  var import_picocolors15 = __toESM(require("picocolors"));
40596
40613
  function version2() {
40597
- const v = true ? "2.61.72" : "unknown";
40614
+ const v = true ? "2.61.74" : "unknown";
40598
40615
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
40599
40616
  }
40600
40617
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.61.72",
3
+ "version": "2.61.74",
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",