codeam-cli 2.39.6 → 2.39.7

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.39.6] — 2026-06-13
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Gate agent spawn on beads in codespaces so the SessionStart hook lands
12
+
7
13
  ## [2.39.5] — 2026-06-13
8
14
 
9
15
  ### Fixed
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.39.6",
501
+ version: "2.39.7",
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",
@@ -5900,7 +5900,7 @@ function readAnonId() {
5900
5900
  }
5901
5901
  function superProperties() {
5902
5902
  return {
5903
- cliVersion: true ? "2.39.6" : "0.0.0-dev",
5903
+ cliVersion: true ? "2.39.7" : "0.0.0-dev",
5904
5904
  nodeVersion: process.version,
5905
5905
  platform: process.platform,
5906
5906
  arch: process.arch,
@@ -15372,36 +15372,21 @@ var _onboardingSeam = {
15372
15372
  return !!v && v !== "0" && v.toLowerCase() !== "false";
15373
15373
  }
15374
15374
  };
15375
- function buildOnboardingPrompt(cwd) {
15375
+ function buildOnboardingWelcome(cwd) {
15376
15376
  const repo = path27.basename(cwd || "") || "this project";
15377
15377
  return [
15378
- "SYSTEM / BACKGROUND TASK \u2014 this message is NOT from the user. The user just",
15379
- "connected this session through CodeAgent Mobile and has only seen a welcome",
15380
- "card. Take the initiative and write THEIR first message: a short, warm",
15381
- "onboarding welcome that you (the agent) send proactively to invite them to start.",
15378
+ `Welcome to CodeAgent Mobile! \u{1F44B} You're now driving this agent from your phone \u2014 and it comes fully wired, zero setup:`,
15382
15379
  "",
15383
- "Write it for a phone screen \u2014 aim ~160 words, friendly, easy to scan, a little",
15384
- "energy. Cover briefly, in your own words (give the core features visibility):",
15385
- "- Glad they spun up this session.",
15386
- "- Through CodeAgent Mobile, agents like you get native repo context, persistent",
15387
- " memory, and an issue tracker \u2014 powered by Beads on Dolt \u2014 out of the box, zero setup.",
15388
- "- They can drive you from their phone, with real core features:",
15389
- " \u2022 a full integrated IDE powered by Monaco \u2014 edit code, live preview, rich visual output (NOT just a file viewer);",
15390
- " \u2022 Smart Composer \u2014 helps them craft and structure prompts;",
15391
- " \u2022 Team Spaces \u2014 share this session with their team to collaborate, or hand a session to someone else.",
15392
- "- Invite them to share feedback or report any issue via GitHub or the Discord",
15393
- " bugs channel. Include BOTH of these URLs in full, EXACTLY as written here",
15394
- " (keep the https:// scheme on each so the app renders them as tappable links):",
15395
- " https://github.com/edgar-durand/codeagent-mobile-clients/issues",
15396
- " https://discord.gg/ADMKwGAB",
15397
- `- End with a SHORT, concrete invitation tied to THIS project (working dir: ${cwd},`,
15398
- ` repo: "${repo}") \u2014 suggest 1\u20132 specific things you could help with here.`,
15380
+ "- **Native repo context, persistent memory, and an issue tracker** \u2014 powered by Beads, out of the box.",
15381
+ "- **A full IDE** (Monaco) \u2014 edit code, live preview, and rich visual output, not just a file viewer.",
15382
+ "- **Smart Composer** \u2014 help crafting and structuring your prompts.",
15383
+ "- **Team Spaces** \u2014 share this session with your team, or hand it off to someone else.",
15399
15384
  "",
15400
- "Rules: do NOT run any tools or shell commands \u2014 base the project hint only on the",
15401
- 'repo name/path above so your reply is instant. No preamble like "Sure" or "Of',
15402
- 'course" \u2014 start directly with the greeting. Use light markdown (one intro line +',
15403
- "a few bullets). NEVER shorten a URL or drop its https:// scheme \u2014 paste each link",
15404
- "verbatim so both render as navigable links. Keep it tight despite the feature list."
15385
+ "Found a bug or have feedback? Reach us at:",
15386
+ "- GitHub: https://github.com/edgar-durand/codeagent-mobile-clients/issues",
15387
+ "- Discord: https://discord.gg/ADMKwGAB",
15388
+ "",
15389
+ `Ready when you are \u2014 try **"explain ${repo}"** or **"what should I work on first?"**`
15405
15390
  ].join("\n");
15406
15391
  }
15407
15392
  function maybeSendOnboardingWelcome(opts) {
@@ -15423,13 +15408,13 @@ function maybeSendOnboardingWelcome(opts) {
15423
15408
  });
15424
15409
  }
15425
15410
  async function runOnboardingTurn(opts) {
15426
- const { client: client2, streaming, history, cwd } = opts;
15411
+ const { streaming, history, cwd } = opts;
15412
+ const welcome = buildOnboardingWelcome(cwd);
15427
15413
  await streaming.beginTurn();
15428
15414
  try {
15429
- await client2.prompt(buildOnboardingPrompt(cwd));
15430
- const reply = streaming.getCurrentText();
15415
+ streaming.append({ chunkId: "onboarding-welcome", kind: "text", delta: welcome });
15431
15416
  await streaming.closeAll();
15432
- history.appendAgentInitiatedReply(reply);
15417
+ history.appendAgentInitiatedReply(welcome);
15433
15418
  await history.flush();
15434
15419
  } catch (err) {
15435
15420
  await streaming.closeAll().catch(() => void 0);
@@ -21510,7 +21495,6 @@ async function runAcpSession(opts) {
21510
21495
  const models = await runtime.listModels();
21511
21496
  const history = new AcpHistory(publisher, { agent: opts.agent, acpSessionId });
21512
21497
  maybeSendOnboardingWelcome({
21513
- client: client2,
21514
21498
  streaming,
21515
21499
  history,
21516
21500
  sessionId: opts.sessionId,
@@ -23735,10 +23719,7 @@ async function start(requestedAgent) {
23735
23719
  })
23736
23720
  ]);
23737
23721
  if (gateTimer) clearTimeout(gateTimer);
23738
- log.info(
23739
- "beads",
23740
- `agent-spawn gate released \u2014 beads ${beads ? "ready" : "not ready (timed out / failed; agent runs without it)"}`
23741
- );
23722
+ log.info("beads", `agent-spawn gate released \u2014 beads ${beads ? "ready" : "not ready (timed out)"}`);
23742
23723
  }
23743
23724
  const acpDisabled = process.env.CODEAM_ACP_DISABLED === "1";
23744
23725
  if (!acpDisabled && session.pluginAuthToken) {
@@ -26750,7 +26731,7 @@ function checkChokidar() {
26750
26731
  }
26751
26732
  async function doctor(args2 = []) {
26752
26733
  const json = args2.includes("--json");
26753
- const cliVersion = true ? "2.39.6" : "0.0.0-dev";
26734
+ const cliVersion = true ? "2.39.7" : "0.0.0-dev";
26754
26735
  const apiBase = resolveApiBaseUrl();
26755
26736
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
26756
26737
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -26949,7 +26930,7 @@ async function completion(args2) {
26949
26930
  // src/commands/version.ts
26950
26931
  var import_picocolors13 = __toESM(require("picocolors"));
26951
26932
  function version2() {
26952
- const v = true ? "2.39.6" : "unknown";
26933
+ const v = true ? "2.39.7" : "unknown";
26953
26934
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
26954
26935
  }
26955
26936
 
@@ -27235,7 +27216,7 @@ function checkForUpdates() {
27235
27216
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
27236
27217
  if (process.env.CI) return;
27237
27218
  if (!process.stdout.isTTY) return;
27238
- const current = true ? "2.39.6" : null;
27219
+ const current = true ? "2.39.7" : null;
27239
27220
  if (!current) return;
27240
27221
  const cache = readCache();
27241
27222
  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.39.6",
3
+ "version": "2.39.7",
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",