lensmcp 1.16.25 → 1.16.26

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.
@@ -20162,7 +20162,22 @@ function buildFlowDetail(rawEvents) {
20162
20162
  return { events: rich };
20163
20163
  }
20164
20164
 
20165
+ // servers/lensmcp-mcp/dist/parent-watchdog.js
20166
+ function watchParentGateway(label) {
20167
+ const parentPid = Number(process.env["LENSMCP_PARENT_PID"] ?? 0);
20168
+ if (!Number.isInteger(parentPid) || parentPid <= 0)
20169
+ return;
20170
+ const timer = setInterval(() => {
20171
+ if (process.ppid !== parentPid) {
20172
+ console.error(`[lensmcp] ${label}: parent gateway (pid ${parentPid}) is gone \u2014 exiting to free the port.`);
20173
+ process.exit(0);
20174
+ }
20175
+ }, 5e3);
20176
+ timer.unref();
20177
+ }
20178
+
20165
20179
  // servers/lensmcp-mcp/dist/dashboard.js
20180
+ watchParentGateway("dashboard");
20166
20181
  var { session } = createLensSession();
20167
20182
  var PORT = Number(process.env["LENSMCP_DASHBOARD_PORT"] ?? 4321);
20168
20183
  var DASH_BASE = (process.env["LENSMCP_DASHBOARD_BASE"] ?? "").replace(/\/+$/, "");
@@ -20544,6 +20559,14 @@ var server = createServer2((req, res) => {
20544
20559
  res.writeHead(200, { "content-type": "text/html; charset=utf-8", "cache-control": "no-store" });
20545
20560
  res.end(PAGE);
20546
20561
  });
20562
+ server.on("error", (err) => {
20563
+ const code = err.code;
20564
+ if (code === "EADDRINUSE") {
20565
+ console.error(`[lensmcp] dashboard: port ${PORT} is already in use (an orphaned dashboard from a crashed gateway?) \u2014 exiting.`);
20566
+ process.exit(1);
20567
+ }
20568
+ throw err;
20569
+ });
20547
20570
  server.listen(PORT, () => {
20548
20571
  const n = session.resources.list().length;
20549
20572
  console.error(`[lensmcp] dashboard \u2192 http://localhost:${PORT} (${n} resources registered)`);
package/bundled/main.js CHANGED
@@ -20372,7 +20372,22 @@ SetupApp = __decorate([
20372
20372
  })
20373
20373
  ], SetupApp);
20374
20374
 
20375
+ // servers/lensmcp-mcp/dist/parent-watchdog.js
20376
+ function watchParentGateway(label) {
20377
+ const parentPid = Number(process.env["LENSMCP_PARENT_PID"] ?? 0);
20378
+ if (!Number.isInteger(parentPid) || parentPid <= 0)
20379
+ return;
20380
+ const timer = setInterval(() => {
20381
+ if (process.ppid !== parentPid) {
20382
+ console.error(`[lensmcp] ${label}: parent gateway (pid ${parentPid}) is gone \u2014 exiting to free the port.`);
20383
+ process.exit(0);
20384
+ }
20385
+ }, 5e3);
20386
+ timer.unref();
20387
+ }
20388
+
20375
20389
  // servers/lensmcp-mcp/dist/main.js
20390
+ watchParentGateway("mcp");
20376
20391
  var { session, providers } = createLensSession();
20377
20392
  var transport = process.env["LENSMCP_TRANSPORT"] ?? "stdio";
20378
20393
  var apps = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lensmcp",
3
- "version": "1.16.25",
3
+ "version": "1.16.26",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "module": "./index.js",
@@ -17,7 +17,7 @@
17
17
  }
18
18
  },
19
19
  "dependencies": {
20
- "@frontmcp/sdk": "^1.5.4",
20
+ "@frontmcp/sdk": "^1.5.6",
21
21
  "reflect-metadata": "^0.2.2",
22
22
  "tslib": "^2.3.0",
23
23
  "vectoriadb": "^2.2.0"
@@ -2,7 +2,7 @@
2
2
  "name": "lensmcp",
3
3
  "displayName": "LensMCP",
4
4
  "description": "The observability lens for coding agents. One command brings up the dev cluster gateway (every project.json `cluster` decl → its host on :443), the per-project lens dashboard at https://lensmcp.local/<project>/, and the MCP server your agent connects to — scoped automatically to whatever project you opened Claude Code in.",
5
- "version": "1.16.25",
5
+ "version": "1.16.26",
6
6
  "author": {
7
7
  "name": "David Antoon",
8
8
  "email": "davidmantoon@gmail.com"