codeam-cli 2.61.78 → 2.61.79

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,13 @@ 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.78] — 2026-07-31
8
+
9
+ ### Added
10
+
11
+ - **shared:** Session-tools wire — SESSION_INTEGRATIONS_CHANGED event + repo stack-detect maps
12
+ - **cli:** Session-tools relay — integrations_sync + integrations_detect handlers
13
+
7
14
  ## [2.61.77] — 2026-07-31
8
15
 
9
16
  ### Added
package/dist/index.js CHANGED
@@ -1521,28 +1521,34 @@ var INTEGRATION_REGISTRY = {
1521
1521
  name: "Convex",
1522
1522
  icon: "convex",
1523
1523
  category: "database",
1524
- // LIVE — OAuth 2.0 (authorization code, Confidential). authorize
1525
- // dashboard.convex.dev/oauth/authorize/team (the scope is the URL PATH
1526
- // `team` for team-wide accessNOT a query param); token
1527
- // api.convex.dev/oauth/token (form-urlencoded, client creds in the BODY).
1528
- // ⚠️ Convex issues NO refresh token and the team-scoped application token
1529
- // does not expire, so there is nothing to rotate (refresh() is a re-link
1530
- // surface). The OAuth app (Team Settings OAuth Applications) is registered
1531
- // and CONVEX_OAUTH_CLIENT_ID/SECRET/REDIRECT_URI are in Secret Manager
1532
- // (prod+dev); the config-gated 503 keeps this safe mid-rollout.
1524
+ // LIVE — api_key rail (the user pastes a Convex DEPLOY KEY).
1525
+ // ⚠️ Convex's OAuth application token was tried first and DOES NOT WORK with
1526
+ // the MCP: it's a narrow Management-API credentialverified live it fails
1527
+ // `convex mcp start` as BOTH CONVEX_DEPLOY_KEY and CONVEX_OVERRIDE_ACCESS_TOKEN,
1528
+ // and can't even enumerate the team's deployments ("requires a Personal
1529
+ // Access Token"). The Convex MCP's DOCUMENTED headless credential is a
1530
+ // DEPLOY KEY (CONVEX_DEPLOY_KEY=dev:…|… / prod:… / project:…), so the user
1531
+ // pastes one (Convex Dashboard Project Settings → Deploy Keys), exactly
1532
+ // like Azure DevOps / Datadog / Trello. No OAuth app, no GSM secret.
1533
1533
  enabled: true,
1534
1534
  auth: {
1535
- kind: "oauth_redirect",
1536
- // ⚠️ Convex's scope is the authorize URL path (`/team`), NOT sent in the
1537
- // authorize URL as a query param — this list is informational.
1538
- scopes: []
1535
+ kind: "api_key",
1536
+ fields: [
1537
+ {
1538
+ key: "accessToken",
1539
+ label: "Convex deploy key",
1540
+ placeholder: "prod:happy-animal-123|eyJ2\u2026",
1541
+ secret: true,
1542
+ help: "Convex Dashboard \u2192 Project Settings \u2192 Deploy Keys \u2192 Generate a deploy key."
1543
+ }
1544
+ ]
1539
1545
  },
1540
1546
  delivery: {
1541
1547
  mcp: {
1542
1548
  // Convex's OFFICIAL MCP server ships inside the `convex` npm package
1543
- // (`convex mcp start`). The team-scoped OAuth application token doubles
1544
- // as the CLI/MCP deploy key fed via CONVEX_DEPLOY_KEY (env only, never
1545
- // argv). Version PINNED; bump only after re-verifying headless.
1549
+ // (`convex mcp start`). The pasted deploy key is fed via CONVEX_DEPLOY_KEY
1550
+ // (env only, never argv) its documented non-interactive credential.
1551
+ // Version PINNED; bump only after re-verifying headless.
1546
1552
  command: "npx",
1547
1553
  args: ["-y", "convex@1.42.3", "mcp", "start"],
1548
1554
  envMapping: {
@@ -7358,7 +7364,7 @@ function readAnonId() {
7358
7364
  }
7359
7365
  function superProperties() {
7360
7366
  return {
7361
- cliVersion: true ? "2.61.78" : "0.0.0-dev",
7367
+ cliVersion: true ? "2.61.79" : "0.0.0-dev",
7362
7368
  nodeVersion: process.version,
7363
7369
  platform: process.platform,
7364
7370
  arch: process.arch,
@@ -7539,7 +7545,7 @@ var os4 = __toESM(require("os"));
7539
7545
  // package.json
7540
7546
  var package_default = {
7541
7547
  name: "codeam-cli",
7542
- version: "2.61.78",
7548
+ version: "2.61.79",
7543
7549
  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.",
7544
7550
  type: "commonjs",
7545
7551
  main: "dist/index.js",
@@ -8771,7 +8777,7 @@ var CommandRelayService = class _CommandRelayService {
8771
8777
  // fresh + clear the "CLI update available" banner after a self-update
8772
8778
  // (a codespace that reinstalls @latest reconnects via heartbeat, not
8773
8779
  // pair/reconnect). Older backends ignore the extra field.
8774
- ..."2.61.78" ? { ideVersion: "2.61.78" } : {}
8780
+ ..."2.61.79" ? { ideVersion: "2.61.79" } : {}
8775
8781
  }).then(() => log.trace("relay", `heartbeat ok online=${online}`)).catch((err) => log.trace("relay", `heartbeat failed online=${online}`, err));
8776
8782
  }
8777
8783
  /**
@@ -19885,7 +19891,7 @@ async function autoUpgradeBeforeCriticalCommand() {
19885
19891
  if (process.env.NODE_ENV === "test") return;
19886
19892
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19887
19893
  if (process.env.CI) return;
19888
- const current = true ? "2.61.78" : null;
19894
+ const current = true ? "2.61.79" : null;
19889
19895
  if (!current) return;
19890
19896
  const cache = readCache();
19891
19897
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19902,7 +19908,7 @@ function checkForUpdates() {
19902
19908
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19903
19909
  if (process.env.CI) return;
19904
19910
  if (!process.stdout.isTTY) return;
19905
- const current = true ? "2.61.78" : null;
19911
+ const current = true ? "2.61.79" : null;
19906
19912
  if (!current) return;
19907
19913
  const cache = readCache();
19908
19914
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
@@ -19922,7 +19928,7 @@ var SELF_UPDATE_INTERVAL_MS = 60 * 60 * 1e3;
19922
19928
  var SELF_UPDATE_VIEW_TIMEOUT_MS = 3e4;
19923
19929
  var SELF_UPDATE_INSTALL_TIMEOUT_MS = 18e4;
19924
19930
  function currentCliVersion() {
19925
- return true ? "2.61.78" : null;
19931
+ return true ? "2.61.79" : null;
19926
19932
  }
19927
19933
  function runCmd(cmd, args2, timeoutMs) {
19928
19934
  return new Promise((resolve9) => {
@@ -40620,7 +40626,7 @@ function checkChokidar() {
40620
40626
  }
40621
40627
  async function doctor(args2 = []) {
40622
40628
  const json = args2.includes("--json");
40623
- const cliVersion = true ? "2.61.78" : "0.0.0-dev";
40629
+ const cliVersion = true ? "2.61.79" : "0.0.0-dev";
40624
40630
  const apiBase2 = resolveApiBaseUrl();
40625
40631
  const diagnosticId = (0, import_node_crypto13.randomUUID)();
40626
40632
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -41142,7 +41148,7 @@ async function mcpRun(args2) {
41142
41148
  // src/commands/version.ts
41143
41149
  var import_picocolors15 = __toESM(require("picocolors"));
41144
41150
  function version2() {
41145
- const v = true ? "2.61.78" : "unknown";
41151
+ const v = true ? "2.61.79" : "unknown";
41146
41152
  console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
41147
41153
  }
41148
41154
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.61.78",
3
+ "version": "2.61.79",
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",