md4ai 0.8.4 → 0.8.6

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.
@@ -1262,7 +1262,7 @@ var CURRENT_VERSION;
1262
1262
  var init_check_update = __esm({
1263
1263
  "dist/check-update.js"() {
1264
1264
  "use strict";
1265
- CURRENT_VERSION = true ? "0.8.4" : "0.0.0-dev";
1265
+ CURRENT_VERSION = true ? "0.8.6" : "0.0.0-dev";
1266
1266
  }
1267
1267
  });
1268
1268
 
@@ -1792,10 +1792,10 @@ function buildRows(configs, httpResults, cdpStatus) {
1792
1792
  }
1793
1793
  return rows;
1794
1794
  }
1795
- function printTable(rows, deviceName) {
1795
+ function printTable(rows, deviceName, watcherPid) {
1796
1796
  process.stdout.write("\x1B[3J\x1B[2J\x1B[H");
1797
1797
  console.log(chalk18.bold.cyan(`
1798
- MCP Monitor \u2014 ${deviceName}`));
1798
+ MCP Monitor \u2014 ${deviceName}`) + chalk18.dim(` (PID ${watcherPid})`));
1799
1799
  console.log(chalk18.dim(` ${(/* @__PURE__ */ new Date()).toLocaleTimeString()} \xB7 refreshes every 30s \xB7 Ctrl+C to stop
1800
1800
  `));
1801
1801
  const runningLocal = rows.filter((r) => r.status === "running" && r.server_type !== "http");
@@ -1810,15 +1810,22 @@ function printTable(rows, deviceName) {
1810
1810
  byTty.set(key, list);
1811
1811
  }
1812
1812
  if (byTty.size > 0) {
1813
+ let sessionNum = 0;
1813
1814
  for (const [tty, servers] of byTty) {
1815
+ sessionNum++;
1814
1816
  const totalMem = servers.reduce((sum, s) => sum + (s.memory_mb ?? 0), 0);
1815
- console.log(chalk18.green(` Session ${tty}`) + chalk18.dim(` \u2014 ${servers.length} server${servers.length !== 1 ? "s" : ""} \xB7 ${totalMem} MB`));
1817
+ const label = byTty.size === 1 ? "Claude Code session" : `Claude Code session ${sessionNum}`;
1818
+ console.log(chalk18.green(` ${label}`) + chalk18.dim(` \u2014 ${servers.length} server${servers.length !== 1 ? "s" : ""} \xB7 ${totalMem} MB \xB7 terminal ${tty}`));
1816
1819
  for (const s of servers) {
1817
1820
  const uptime = formatUptime(s.uptime_seconds ?? 0);
1818
- console.log(` ${chalk18.green("\u25CF")} ${s.server_name.padEnd(20)} ${chalk18.dim((s.package_name ?? "").padEnd(30))} ${String(s.memory_mb ?? 0).padStart(4)} MB ${uptime}`);
1821
+ const source = chalk18.dim(`[${s.config_source}]`);
1822
+ console.log(` ${chalk18.green("\u25CF")} ${s.server_name.padEnd(20)} ${source} ${chalk18.dim((s.package_name ?? "").padEnd(25))} ${String(s.memory_mb ?? 0).padStart(4)} MB ${uptime}`);
1819
1823
  }
1820
1824
  console.log("");
1821
1825
  }
1826
+ if (byTty.size > 1) {
1827
+ console.log(chalk18.dim(" Each open Claude Code window runs its own set of MCP servers.\n"));
1828
+ }
1822
1829
  }
1823
1830
  if (runningHttp.length > 0) {
1824
1831
  console.log(chalk18.blue(` Remote Services (${runningHttp.length})`) + chalk18.dim(" \u2014 HTTP endpoints reachable"));
@@ -1829,11 +1836,12 @@ function printTable(rows, deviceName) {
1829
1836
  }
1830
1837
  if (stopped.length > 0 || errored.length > 0) {
1831
1838
  const notRunning = [...stopped, ...errored];
1832
- console.log(chalk18.yellow(` Not Running (${notRunning.length})`));
1839
+ console.log(chalk18.yellow(` Not Running (${notRunning.length})`) + chalk18.dim(" \u2014 configured but no process detected"));
1833
1840
  for (const s of notRunning) {
1834
1841
  const icon = s.status === "error" ? chalk18.red("\u2717") : chalk18.yellow("\u25CB");
1842
+ const source = chalk18.dim(`[${s.config_source}]`);
1835
1843
  const detail = s.error_detail ? chalk18.dim(` \u2014 ${s.error_detail}`) : "";
1836
- console.log(` ${icon} ${s.server_name.padEnd(20)} ${chalk18.dim(s.config_source.padEnd(10))}${detail}`);
1844
+ console.log(` ${icon} ${s.server_name.padEnd(20)} ${source}${detail}`);
1837
1845
  }
1838
1846
  console.log("");
1839
1847
  }
@@ -1914,7 +1922,7 @@ async function mcpWatchCommand() {
1914
1922
  })));
1915
1923
  }
1916
1924
  await supabase.from("mcp_watchers").update({ last_heartbeat: now }).eq("device_id", deviceId).eq("pid", myPid);
1917
- printTable(rows, deviceName);
1925
+ printTable(rows, deviceName, myPid);
1918
1926
  }
1919
1927
  await cycle();
1920
1928
  let lastEnvHash = "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "md4ai",
3
- "version": "0.8.4",
3
+ "version": "0.8.6",
4
4
  "description": "CLI for MD4AI — scan Claude projects and sync to your dashboard",
5
5
  "type": "module",
6
6
  "bin": {