codeam-cli 2.4.25 → 2.4.26

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.4.25] — 2026-05-03
8
+
9
+ ### Added
10
+
11
+ - **cli:** Three new deploy providers — Gitpod, GitLab Workspaces, Railway (v2.4.25)
12
+
7
13
  ## [2.4.24] — 2026-05-03
8
14
 
9
15
  ### Added
package/dist/index.js CHANGED
@@ -179,7 +179,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
179
179
  // package.json
180
180
  var package_default = {
181
181
  name: "codeam-cli",
182
- version: "2.4.25",
182
+ version: "2.4.26",
183
183
  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.",
184
184
  main: "dist/index.js",
185
185
  bin: {
@@ -2793,12 +2793,12 @@ except Exception:sys.exit(0)
2793
2793
  claude.kill();
2794
2794
  } catch {
2795
2795
  }
2796
- const codespaceName = process.env.CODESPACE_NAME;
2797
- if (codespaceName && process.env.CODESPACES === "true") {
2796
+ const codespaceName2 = process.env.CODESPACE_NAME;
2797
+ if (codespaceName2 && process.env.CODESPACES === "true") {
2798
2798
  try {
2799
2799
  const stopProc = (0, import_child_process4.spawn)(
2800
2800
  "bash",
2801
- ["-lc", `sleep 1; gh codespace stop -c ${JSON.stringify(codespaceName)} >/dev/null 2>&1 || true`],
2801
+ ["-lc", `sleep 1; gh codespace stop -c ${JSON.stringify(codespaceName2)} >/dev/null 2>&1 || true`],
2802
2802
  { detached: true, stdio: "ignore" }
2803
2803
  );
2804
2804
  stopProc.unref();
@@ -3041,22 +3041,42 @@ except Exception:sys.exit(0)
3041
3041
  fetchQuotaUsage();
3042
3042
  }, 5e3);
3043
3043
  const inCodespace = process.env.CODESPACES === "true";
3044
+ const codespaceName = process.env.CODESPACE_NAME;
3044
3045
  let keepAliveTimer = null;
3046
+ async function setIdleTimeout(minutes) {
3047
+ if (!inCodespace || !codespaceName) return;
3048
+ await new Promise((resolve2) => {
3049
+ const proc = (0, import_child_process4.spawn)(
3050
+ "gh",
3051
+ [
3052
+ "api",
3053
+ "-X",
3054
+ "PATCH",
3055
+ `/user/codespaces/${codespaceName}`,
3056
+ "-F",
3057
+ `idle_timeout_minutes=${minutes}`
3058
+ ],
3059
+ { stdio: "ignore", detached: true }
3060
+ );
3061
+ proc.unref();
3062
+ proc.on("exit", () => resolve2());
3063
+ proc.on("error", () => resolve2());
3064
+ });
3065
+ }
3045
3066
  function setKeepAlive(enabled) {
3046
3067
  if (keepAliveTimer) {
3047
3068
  clearInterval(keepAliveTimer);
3048
3069
  keepAliveTimer = null;
3049
3070
  }
3050
- if (!enabled || !inCodespace) return;
3051
- const ping = () => {
3052
- const proc = (0, import_child_process4.spawn)("bash", ["-lc", "gh codespace list >/dev/null 2>&1 || true"], {
3053
- stdio: "ignore",
3054
- detached: true
3055
- });
3056
- proc.unref();
3057
- };
3058
- ping();
3059
- keepAliveTimer = setInterval(ping, 8 * 60 * 1e3);
3071
+ if (!inCodespace || !codespaceName) return;
3072
+ if (!enabled) {
3073
+ void setIdleTimeout(30);
3074
+ return;
3075
+ }
3076
+ void setIdleTimeout(240);
3077
+ keepAliveTimer = setInterval(() => {
3078
+ void setIdleTimeout(240);
3079
+ }, 30 * 60 * 1e3);
3060
3080
  }
3061
3081
  }
3062
3082
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.4.25",
3
+ "version": "2.4.26",
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
  "main": "dist/index.js",
6
6
  "bin": {