codeam-cli 2.23.36 → 2.24.0

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,22 @@ 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.23.37] — 2026-05-31
8
+
9
+ ### Fixed
10
+
11
+ - **cli:** Drop ignored paths in file-watcher + turn aggregator
12
+
13
+ ## [2.23.36] — 2026-05-31
14
+
15
+ ### Changed
16
+
17
+ - **cli:** Move bracketed-paste into Claude strategy + agent-leak hook
18
+
19
+ ### Fixed
20
+
21
+ - **cli:** Suppress bogus terminal-turn from Claude's ghost-text
22
+
7
23
  ## [2.23.35] — 2026-05-31
8
24
 
9
25
  ### Changed
package/README.md CHANGED
@@ -49,14 +49,18 @@ That's it. Open the [CodeAgent Mobile app](https://codeagent-mobile.com), enter
49
49
  | `codeam <agent>` | Start a specific agent — `codeam claude`, `codeam codex`, … |
50
50
  | `codeam pair` | Pair a new mobile device (6-character code or QR, interactive agent picker) |
51
51
  | `codeam pair --agent <id>` | Pair non-interactively for a specific agent (`claude`, `codex`, …) — useful in scripts |
52
+ | `codeam pair-auto` | redeem a one-shot auto-pair token from `--token`, `--token-file`, or `CODEAM_AUTO_TOKEN` |
53
+ | `codeam link <agent>` | capture local credentials for `<agent>` and store them for cloud workspace reuse |
52
54
  | `codeam sessions` | List all paired devices |
53
55
  | `codeam sessions switch` | Choose which paired session the next `codeam` invocation will use |
54
56
  | `codeam sessions delete <session-id>` | Forget a specific paired session (leaves the others intact) |
55
57
  | `codeam status` | Show connection status |
58
+ | `codeam doctor` | run environment, install, and pairing diagnostics (`--json` for machine-readable output) |
56
59
  | `codeam logout` | Remove all paired sessions |
57
60
  | `codeam deploy` | Provision a cloud workspace (GitHub Codespaces) and pair it to your phone |
58
61
  | `codeam deploy ls` (alias `list`) | List the cloud workspaces you've deployed (and which still have a session running) |
59
62
  | `codeam deploy stop` (alias `remove`) | Pick a deployed workspace and stop its codeam session (and optionally the workspace itself) |
63
+ | `codeam completion <shell>` | print shell completions for `<shell>` (`bash`, `zsh`, or `fish`) |
60
64
  | `codeam --version`, `-v` | Print the installed CLI version |
61
65
  | `codeam --help`, `-h` | Show usage and the full command list |
62
66
 
package/dist/index.js CHANGED
@@ -441,7 +441,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
441
441
  // package.json
442
442
  var package_default = {
443
443
  name: "codeam-cli",
444
- version: "2.23.36",
444
+ version: "2.24.0",
445
445
  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.",
446
446
  type: "commonjs",
447
447
  main: "dist/index.js",
@@ -5774,7 +5774,7 @@ function readAnonId() {
5774
5774
  }
5775
5775
  function superProperties() {
5776
5776
  return {
5777
- cliVersion: true ? "2.23.36" : "0.0.0-dev",
5777
+ cliVersion: true ? "2.24.0" : "0.0.0-dev",
5778
5778
  nodeVersion: process.version,
5779
5779
  platform: process.platform,
5780
5780
  arch: process.arch,
@@ -12840,6 +12840,13 @@ function detectFileStatus(rawLines) {
12840
12840
  return "modified";
12841
12841
  }
12842
12842
 
12843
+ // src/services/file-watcher/ignored-paths.ts
12844
+ var IGNORED_PATH_PATTERN = /(^|[\\/])(?:\.git|\.next|\.expo|\.turbo|\.cache|\.parcel-cache|\.vercel|\.idea|\.vscode|node_modules|dist|build|out|coverage|target|__pycache__|\.gradle|Pods|DerivedData|\.dart_tool|venv|\.venv|\.tox|\.mypy_cache|\.pytest_cache|\.DS_Store|Thumbs\.db)([\\/]|$)/i;
12845
+ function isIgnoredFilePath(filePath) {
12846
+ if (!filePath || filePath.length === 0) return true;
12847
+ return IGNORED_PATH_PATTERN.test(filePath);
12848
+ }
12849
+
12843
12850
  // src/services/file-watcher/transport.ts
12844
12851
  var http5 = __toESM(require("http"));
12845
12852
  var https5 = __toESM(require("https"));
@@ -13121,6 +13128,7 @@ var FileWatcherService = class {
13121
13128
  */
13122
13129
  schedule(absPath, changeType) {
13123
13130
  if (this.stopped) return;
13131
+ if (isIgnoredFilePath(absPath)) return;
13124
13132
  const existing = this.pending.get(absPath);
13125
13133
  if (existing) clearTimeout(existing.timer);
13126
13134
  const timer = setTimeout(() => {
@@ -13516,6 +13524,7 @@ async function collectRepoChangeset(opts) {
13516
13524
  const numstat = parseNumstat(numstatRaw ?? "");
13517
13525
  const entries = [];
13518
13526
  for (const row of parseStatus(status2)) {
13527
+ if (isIgnoredFilePath(row.filePath)) continue;
13519
13528
  const stats = numstat.get(row.filePath) ?? { added: 0, removed: 0 };
13520
13529
  entries.push({
13521
13530
  filePath: row.filePath,
@@ -19244,7 +19253,7 @@ function checkChokidar() {
19244
19253
  }
19245
19254
  async function doctor(args2 = []) {
19246
19255
  const json = args2.includes("--json");
19247
- const cliVersion = true ? "2.23.36" : "0.0.0-dev";
19256
+ const cliVersion = true ? "2.24.0" : "0.0.0-dev";
19248
19257
  const apiBase = resolveApiBaseUrl();
19249
19258
  const diagnosticId = (0, import_node_crypto6.randomUUID)();
19250
19259
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -19443,7 +19452,7 @@ async function completion(args2) {
19443
19452
  // src/commands/version.ts
19444
19453
  var import_picocolors13 = __toESM(require("picocolors"));
19445
19454
  function version2() {
19446
- const v = true ? "2.23.36" : "unknown";
19455
+ const v = true ? "2.24.0" : "unknown";
19447
19456
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
19448
19457
  }
19449
19458
 
@@ -19671,7 +19680,7 @@ function checkForUpdates() {
19671
19680
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
19672
19681
  if (process.env.CI) return;
19673
19682
  if (!process.stdout.isTTY) return;
19674
- const current = true ? "2.23.36" : null;
19683
+ const current = true ? "2.24.0" : null;
19675
19684
  if (!current) return;
19676
19685
  const cache = readCache();
19677
19686
  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.23.36",
3
+ "version": "2.24.0",
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",