adhdev 0.9.75 → 0.9.76-rc.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adhdev",
3
- "version": "0.9.75",
3
+ "version": "0.9.76-rc.2",
4
4
  "description": "ADHDev — Agent Dashboard Hub for Dev. Remote-control AI coding agents from anywhere.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -47,7 +47,7 @@
47
47
  "node": ">=18"
48
48
  },
49
49
  "dependencies": {
50
- "@adhdev/daemon-core": "*",
50
+ "@adhdev/daemon-core": "0.9.76-rc.2",
51
51
  "@adhdev/ghostty-vt-node": "*",
52
52
  "@modelcontextprotocol/sdk": "^1.0.0",
53
53
  "@xterm/addon-serialize": "^0.14.0",
@@ -1379,7 +1379,14 @@ async function meshStatus(ctx) {
1379
1379
  workspace: node.workspace
1380
1380
  };
1381
1381
  try {
1382
- if (isLocalTransport(transport)) {
1382
+ if (!isLocalTransport(transport) && node.daemonId) {
1383
+ const result = await transport.gitStatus(node.daemonId, node.workspace, false);
1384
+ const status = result?.status ?? result;
1385
+ entry.health = status?.isGitRepo ? status?.isDirty ? "dirty" : "online" : "degraded";
1386
+ entry.branch = status?.branch;
1387
+ entry.isDirty = status?.isDirty;
1388
+ entry.uncommittedChanges = status?.uncommittedChanges ?? 0;
1389
+ } else if (isLocalTransport(transport)) {
1383
1390
  const statusResult = await transport.command("git_status", { workspace: node.workspace });
1384
1391
  const status = statusResult?.status ?? statusResult;
1385
1392
  entry.health = status?.isGitRepo ? status?.isDirty ? "dirty" : "online" : "degraded";
@@ -1388,7 +1395,7 @@ async function meshStatus(ctx) {
1388
1395
  entry.uncommittedChanges = status?.uncommittedChanges ?? 0;
1389
1396
  } else {
1390
1397
  entry.health = "unknown";
1391
- entry.note = "Cloud status probe not yet implemented for mesh nodes";
1398
+ entry.note = "No daemonId available for cloud status probe";
1392
1399
  }
1393
1400
  } catch (e) {
1394
1401
  entry.health = "degraded";
@@ -1422,7 +1429,7 @@ async function meshListNodes(ctx) {
1422
1429
  }
1423
1430
  async function meshSendTask(ctx, args) {
1424
1431
  const node = findNode(ctx.mesh, args.node_id);
1425
- if (node.policy.readOnly) {
1432
+ if (node.policy?.readOnly) {
1426
1433
  return JSON.stringify({ error: `Node '${args.node_id}' is read-only` });
1427
1434
  }
1428
1435
  if (isLocalTransport(ctx.transport)) {
@@ -1465,7 +1472,15 @@ async function meshLaunchSession(ctx, args) {
1465
1472
  }
1466
1473
  async function meshGitStatus(ctx, args) {
1467
1474
  const node = findNode(ctx.mesh, args.node_id);
1468
- if (isLocalTransport(ctx.transport)) {
1475
+ if (!isLocalTransport(ctx.transport) && node.daemonId) {
1476
+ const result = await ctx.transport.gitStatus(node.daemonId, node.workspace, true);
1477
+ return JSON.stringify({
1478
+ nodeId: args.node_id,
1479
+ workspace: node.workspace,
1480
+ status: result?.status ?? result,
1481
+ diff: result?.diff ?? null
1482
+ }, null, 2);
1483
+ } else if (isLocalTransport(ctx.transport)) {
1469
1484
  const statusResult = await ctx.transport.command("git_status", {
1470
1485
  workspace: node.workspace
1471
1486
  });
@@ -1479,12 +1494,12 @@ async function meshGitStatus(ctx, args) {
1479
1494
  diff: diffResult?.diffSummary ?? diffResult
1480
1495
  }, null, 2);
1481
1496
  } else {
1482
- return JSON.stringify({ error: "Cloud mesh git_status not yet implemented" });
1497
+ return JSON.stringify({ error: "No daemonId available for cloud git_status probe" });
1483
1498
  }
1484
1499
  }
1485
1500
  async function meshCheckpoint(ctx, args) {
1486
1501
  const node = findNode(ctx.mesh, args.node_id);
1487
- if (node.policy.readOnly) {
1502
+ if (node.policy?.readOnly) {
1488
1503
  return JSON.stringify({ error: `Node '${args.node_id}' is read-only \u2014 cannot checkpoint` });
1489
1504
  }
1490
1505
  if (isLocalTransport(ctx.transport)) {
@@ -1573,6 +1588,7 @@ async function startMcpServer(opts) {
1573
1588
  id: n.id,
1574
1589
  workspace: n.workspace,
1575
1590
  repoRoot: n.repo_root,
1591
+ daemonId: n.daemon_id,
1576
1592
  userOverrides: {},
1577
1593
  policy: {},
1578
1594
  isLocalWorktree: false