codeam-cli 2.60.5 → 2.60.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.
Files changed (2) hide show
  1. package/dist/index.js +22 -8
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -5653,7 +5653,7 @@ function readAnonId() {
5653
5653
  }
5654
5654
  function superProperties() {
5655
5655
  return {
5656
- cliVersion: true ? "2.60.5" : "0.0.0-dev",
5656
+ cliVersion: true ? "2.60.6" : "0.0.0-dev",
5657
5657
  nodeVersion: process.version,
5658
5658
  platform: process.platform,
5659
5659
  arch: process.arch,
@@ -5834,7 +5834,7 @@ var os4 = __toESM(require("os"));
5834
5834
  // package.json
5835
5835
  var package_default = {
5836
5836
  name: "codeam-cli",
5837
- version: "2.60.5",
5837
+ version: "2.60.6",
5838
5838
  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.",
5839
5839
  type: "commonjs",
5840
5840
  main: "dist/index.js",
@@ -6905,7 +6905,7 @@ var CommandRelayService = class {
6905
6905
  // fresh + clear the "CLI update available" banner after a self-update
6906
6906
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
6907
6907
  // pair/reconnect). Older backends ignore the extra field.
6908
- ..."2.60.5" ? { ideVersion: "2.60.5" } : {}
6908
+ ..."2.60.6" ? { ideVersion: "2.60.6" } : {}
6909
6909
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
6910
6910
  }
6911
6911
  /**
@@ -15986,7 +15986,7 @@ async function autoUpgradeBeforeCriticalCommand() {
15986
15986
  if (process.env.NODE_ENV === "test") return;
15987
15987
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
15988
15988
  if (process.env.CI) return;
15989
- const current = true ? "2.60.5" : null;
15989
+ const current = true ? "2.60.6" : null;
15990
15990
  if (!current) return;
15991
15991
  const cache = readCache();
15992
15992
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -16003,7 +16003,7 @@ function checkForUpdates() {
16003
16003
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
16004
16004
  if (process.env.CI) return;
16005
16005
  if (!process.stdout.isTTY) return;
16006
- const current = true ? "2.60.5" : null;
16006
+ const current = true ? "2.60.6" : null;
16007
16007
  if (!current) return;
16008
16008
  const cache = readCache();
16009
16009
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -16023,7 +16023,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
16023
16023
  var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
16024
16024
  var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
16025
16025
  function currentCliVersion() {
16026
- return true ? "2.60.5" : null;
16026
+ return true ? "2.60.6" : null;
16027
16027
  }
16028
16028
  function runCmd(cmd, args2, timeoutMs) {
16029
16029
  return new Promise((resolve7) => {
@@ -24880,6 +24880,12 @@ var AcpClient = class {
24880
24880
  * (the agent is demonstrably working, just blocked on the tool), and
24881
24881
  * re-arm only once the last one finishes. Reset per prompt. */
24882
24882
  pendingToolCalls = /* @__PURE__ */ new Set();
24883
+ /** Serializes {@link prompt}: each turn waits for the previous to fully
24884
+ * settle before arming its own watchdog. `promptIdle`/`pendingToolCalls`
24885
+ * are single-instance fields, so a 2nd concurrent prompt() would overwrite
24886
+ * them mid-turn and break turn A's idle watchdog (mobile "send-while-active"
24887
+ * can fire two prompts back-to-back). See {@link prompt}. */
24888
+ promptChain = Promise.resolve();
24883
24889
  /** Last few adapter stderr lines — so a startup failure surfaces the REAL
24884
24890
  * cause (e.g. gemini's `IneligibleTierError`) instead of a bare timeout. */
24885
24891
  recentStderr = [];
@@ -25034,6 +25040,14 @@ var AcpClient = class {
25034
25040
  * shows a permanent "Thinking…" spinner with no way to recover.
25035
25041
  */
25036
25042
  async prompt(input) {
25043
+ const run = this.promptChain.then(() => this.runPrompt(input));
25044
+ this.promptChain = run.then(
25045
+ () => void 0,
25046
+ () => void 0
25047
+ );
25048
+ return run;
25049
+ }
25050
+ async runPrompt(input) {
25037
25051
  if (!this.connection || !this.sessionId) {
25038
25052
  throw new Error("AcpClient.prompt called before start()");
25039
25053
  }
@@ -32741,7 +32755,7 @@ function checkChokidar() {
32741
32755
  }
32742
32756
  async function doctor(args2 = []) {
32743
32757
  const json = args2.includes("--json");
32744
- const cliVersion = true ? "2.60.5" : "0.0.0-dev";
32758
+ const cliVersion = true ? "2.60.6" : "0.0.0-dev";
32745
32759
  const apiBase2 = resolveApiBaseUrl();
32746
32760
  const diagnosticId = (0, import_node_crypto9.randomUUID)();
32747
32761
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -32940,7 +32954,7 @@ async function completion(args2) {
32940
32954
  // src/commands/version.ts
32941
32955
  var import_picocolors15 = __toESM(require("picocolors"));
32942
32956
  function version2() {
32943
- const v = true ? "2.60.5" : "unknown";
32957
+ const v = true ? "2.60.6" : "unknown";
32944
32958
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
32945
32959
  }
32946
32960
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.60.5",
3
+ "version": "2.60.6",
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",