codeam-cli 2.74.9 → 2.74.11

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.74.10] — 2026-09-07
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Start_task naming the session's own agent is a prompt, not an @-mention (#723)
12
+
13
+ ## [2.74.9] — 2026-09-07
14
+
15
+ ### Fixed
16
+
17
+ - **cli:** Expo preview through our own cloudflared tunnel — stop depending on Expo's shared ngrok (#720)
18
+
7
19
  ## [2.74.8] — 2026-09-07
8
20
 
9
21
  ### Fixed
package/dist/index.js CHANGED
@@ -1257,15 +1257,16 @@ var INTEGRATION_REGISTRY = {
1257
1257
  "groups:read",
1258
1258
  "groups:history",
1259
1259
  "chat:write",
1260
- "reactions:read",
1261
1260
  "reactions:write",
1262
1261
  "users:read",
1263
1262
  "im:read",
1264
1263
  "im:history",
1265
1264
  "mpim:read",
1266
- "mpim:history",
1267
- // Message search across the user's channels/DMs (a user-only scope).
1268
- "search:read"
1265
+ "mpim:history"
1266
+ // ⚠️ No `search:read` / `reactions:read`: nothing uses them (the MCP
1267
+ // server has no search tool and nothing reads reactions), and Slack's
1268
+ // Marketplace review rejects requested-but-unused scopes. Trimmed for
1269
+ // the 2026-09 listing submission; re-add WITH a tool that needs them.
1269
1270
  ]
1270
1271
  },
1271
1272
  delivery: {
@@ -8136,7 +8137,7 @@ function readAnonId() {
8136
8137
  }
8137
8138
  function superProperties() {
8138
8139
  return {
8139
- cliVersion: true ? "2.74.9" : "0.0.0-dev",
8140
+ cliVersion: true ? "2.74.11" : "0.0.0-dev",
8140
8141
  nodeVersion: process.version,
8141
8142
  platform: process.platform,
8142
8143
  arch: process.arch,
@@ -8378,7 +8379,7 @@ var http = __toESM(require("http"));
8378
8379
  // package.json
8379
8380
  var package_default = {
8380
8381
  name: "codeam-cli",
8381
- version: "2.74.9",
8382
+ version: "2.74.11",
8382
8383
  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.",
8383
8384
  type: "commonjs",
8384
8385
  main: "dist/index.js",
@@ -9971,7 +9972,7 @@ var CommandRelayService = class _CommandRelayService {
9971
9972
  // fresh + clear the "CLI update available" banner after a self-update
9972
9973
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
9973
9974
  // pair/reconnect). Older backends ignore the extra field.
9974
- ..."2.74.9" ? { ideVersion: "2.74.9" } : {}
9975
+ ..."2.74.11" ? { ideVersion: "2.74.11" } : {}
9975
9976
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
9976
9977
  }
9977
9978
  /**
@@ -22272,7 +22273,7 @@ async function autoUpgradeBeforeCriticalCommand() {
22272
22273
  if (process.env.NODE_ENV === "test") return;
22273
22274
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
22274
22275
  if (process.env.CI) return;
22275
- const current2 = true ? "2.74.9" : null;
22276
+ const current2 = true ? "2.74.11" : null;
22276
22277
  if (!current2) return;
22277
22278
  const cache = readCache();
22278
22279
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -22289,7 +22290,7 @@ function checkForUpdates() {
22289
22290
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
22290
22291
  if (process.env.CI) return;
22291
22292
  if (!process.stdout.isTTY) return;
22292
- const current2 = true ? "2.74.9" : null;
22293
+ const current2 = true ? "2.74.11" : null;
22293
22294
  if (!current2) return;
22294
22295
  const cache = readCache();
22295
22296
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -22312,7 +22313,7 @@ var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
22312
22313
  var SELF_UPDATE_LS_TIMEOUT_MS = 15e3;
22313
22314
  var SUDO_PREFLIGHT_TIMEOUT_MS = 5e3;
22314
22315
  function currentCliVersion() {
22315
- return true ? "2.74.9" : null;
22316
+ return true ? "2.74.11" : null;
22316
22317
  }
22317
22318
  async function installedVersion(deps) {
22318
22319
  const ls = await deps.run(
@@ -40411,6 +40412,11 @@ function rebindSessionHandles(ctx, outcome) {
40411
40412
  Object.assign(ctx, outcome.handles);
40412
40413
  return outcome;
40413
40414
  }
40415
+ function namesCurrentAgent(requested, currentAgent, currentIsHouse) {
40416
+ if (requested === currentAgent) return true;
40417
+ if (currentIsHouse) return requested === HOUSE_AGENT_ID;
40418
+ return publicToInternal(requested) === currentAgent;
40419
+ }
40414
40420
  async function routeSquadTask(ctx, target) {
40415
40421
  const { squad, routeToAgent } = ctx;
40416
40422
  if (!routeToAgent) {
@@ -40621,7 +40627,7 @@ async function startTaskH(ctx) {
40621
40627
  await relay.sendResult(cmd.id, "failed", { error: "empty prompt" });
40622
40628
  return;
40623
40629
  }
40624
- if (requestedAgentId.length > 0 && requestedAgentId !== opts.agent) {
40630
+ if (requestedAgentId.length > 0 && !namesCurrentAgent(requestedAgentId, opts.agent, ctx.currentIsHouse?.() ?? false)) {
40625
40631
  const routed = await routeSquadTask(ctx, requestedAgentId);
40626
40632
  if (!routed.ok) {
40627
40633
  log.warn("acpRunner", `start_task routing to ${requestedAgentId} failed: ${routed.error}`);
@@ -42254,7 +42260,10 @@ async function runAcpSession(opts) {
42254
42260
  squad,
42255
42261
  routeToAgent,
42256
42262
  pendingProposal,
42257
- emitSwitchEvent
42263
+ emitSwitchEvent,
42264
+ // Same live flag the switch deps read — a start_task naming the
42265
+ // house agent on a house session is the agent already running.
42266
+ () => houseActive
42258
42267
  );
42259
42268
  },
42260
42269
  { id: opts.agent, name: opts.agent, displayName: opts.agent },
@@ -42480,7 +42489,7 @@ async function runAcpSession(opts) {
42480
42489
  await new Promise(() => {
42481
42490
  });
42482
42491
  }
42483
- async function handleCommand(cmd, client3, relay, acpSessionId, streaming, opts, history, jsonlHistory, agentCaps, turnFiles, getBeads, publisher, recentStderr, budgetRecovery, budgetReachedFlag, onActiveSessionChanged, switchAgent, pendingHandoff, squad, routeToAgent, pendingProposal, postSquadEvent) {
42492
+ async function handleCommand(cmd, client3, relay, acpSessionId, streaming, opts, history, jsonlHistory, agentCaps, turnFiles, getBeads, publisher, recentStderr, budgetRecovery, budgetReachedFlag, onActiveSessionChanged, switchAgent, pendingHandoff, squad, routeToAgent, pendingProposal, postSquadEvent, currentIsHouse) {
42484
42493
  const session = {
42485
42494
  client: client3,
42486
42495
  relay,
@@ -42502,7 +42511,8 @@ async function handleCommand(cmd, client3, relay, acpSessionId, streaming, opts,
42502
42511
  squad,
42503
42512
  routeToAgent,
42504
42513
  pendingProposal,
42505
- postSquadEvent
42514
+ postSquadEvent,
42515
+ currentIsHouse
42506
42516
  };
42507
42517
  await dispatchAcpCommand(assembleAcpCommandContext(session, cmd));
42508
42518
  }
@@ -47593,7 +47603,7 @@ function checkChokidar() {
47593
47603
  }
47594
47604
  async function doctor(args2 = []) {
47595
47605
  const json = args2.includes("--json");
47596
- const cliVersion = true ? "2.74.9" : "0.0.0-dev";
47606
+ const cliVersion = true ? "2.74.11" : "0.0.0-dev";
47597
47607
  const apiBase2 = resolveApiBaseUrl();
47598
47608
  const diagnosticId = (0, import_node_crypto13.randomUUID)();
47599
47609
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -48117,7 +48127,7 @@ async function mcpWarm(argv = [], opts = {}) {
48117
48127
  // src/commands/version.ts
48118
48128
  var import_picocolors15 = __toESM(require("picocolors"));
48119
48129
  function version2() {
48120
- const v = true ? "2.74.9" : "unknown";
48130
+ const v = true ? "2.74.11" : "unknown";
48121
48131
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
48122
48132
  }
48123
48133
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.74.9",
3
+ "version": "2.74.11",
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",