@adhdev/daemon-core 0.9.82-rc.367 → 0.9.82-rc.368

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/dist/index.js CHANGED
@@ -316,10 +316,10 @@ function readInjected(value) {
316
316
  }
317
317
  function getDaemonBuildInfo() {
318
318
  if (cached) return cached;
319
- const commit = readInjected(true ? "bb7e66dbc483232a27d1de42cf8ecba3eb0a818c" : void 0) ?? "unknown";
320
- const commitShort = readInjected(true ? "bb7e66db" : void 0) ?? (commit !== "unknown" ? commit.slice(0, 7) : "unknown");
321
- const version = readInjected(true ? "0.9.82-rc.367" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
322
- const builtAt = readInjected(true ? "2026-06-24T04:45:13.384Z" : void 0);
319
+ const commit = readInjected(true ? "8cb6cfc5399f55c6b625095bacc9a27e1741df17" : void 0) ?? "unknown";
320
+ const commitShort = readInjected(true ? "8cb6cfc5" : void 0) ?? (commit !== "unknown" ? commit.slice(0, 7) : "unknown");
321
+ const version = readInjected(true ? "0.9.82-rc.368" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
322
+ const builtAt = readInjected(true ? "2026-06-24T06:14:32.255Z" : void 0);
323
323
  cached = builtAt ? { commit, commitShort, version, builtAt } : { commit, commitShort, version };
324
324
  return cached;
325
325
  }
@@ -12870,13 +12870,25 @@ function tryAssignQueueTask(components, meshId, nodeId, sessionId, providerType)
12870
12870
  const mesh = getMeshWithCache(components, meshId);
12871
12871
  const node = mesh?.nodes.find((n) => readMeshNodeId(n) === nodeId);
12872
12872
  const localClaimAdapter = components.cliManager?.adapters?.get(sessionId);
12873
- if (localClaimAdapter) {
12874
- const sessionWorkspace = normalizeMeshWorkspaceForCompare(localClaimAdapter.workingDir);
12875
- const nodeWorkspace = normalizeMeshWorkspaceForCompare(readNonEmptyString2(node?.workspace));
12876
- if (sessionWorkspace && nodeWorkspace && sessionWorkspace !== nodeWorkspace) {
12877
- LOG.info("MeshQueue", `WTCLAIM: refusing claim for node ${nodeId} (${sessionId}) \u2014 session workspace "${sessionWorkspace}" \u2260 node workspace "${nodeWorkspace}" (cross-workspace dispatch blocked)`);
12873
+ let claimInstanceWorkspace = "";
12874
+ let claimStampedNodeId = "";
12875
+ try {
12876
+ const claimState = components.instanceManager?.getInstance?.(sessionId)?.getState?.();
12877
+ claimInstanceWorkspace = readNonEmptyString2(claimState?.workspace);
12878
+ const claimSettings = claimState?.settings || {};
12879
+ claimStampedNodeId = readNonEmptyString2(claimSettings.meshNodeId);
12880
+ } catch {
12881
+ }
12882
+ const nodeWorkspaceRaw = readNonEmptyString2(node?.workspace);
12883
+ const sessionWorkspaceRaw = readNonEmptyString2(localClaimAdapter?.workingDir) || claimInstanceWorkspace;
12884
+ if (claimStampedNodeId && nodeId) {
12885
+ if (!meshNodeIdMatches({ id: claimStampedNodeId }, nodeId)) {
12886
+ LOG.info("MeshQueue", `WTDISPATCH: refusing claim for node ${nodeId} (${sessionId}) \u2014 session is bound to node "${claimStampedNodeId}" (cross-node claim blocked)`);
12878
12887
  return false;
12879
12888
  }
12889
+ } else if (sessionWorkspaceRaw && nodeWorkspaceRaw && !meshWorkspacesEquivalent(sessionWorkspaceRaw, nodeWorkspaceRaw)) {
12890
+ LOG.info("MeshQueue", `WTCLAIM: refusing claim for node ${nodeId} (${sessionId}) \u2014 session workspace "${normalizeMeshWorkspaceForCompare(sessionWorkspaceRaw)}" \u2260 node workspace "${normalizeMeshWorkspaceForCompare(nodeWorkspaceRaw)}" (cross-workspace dispatch blocked)`);
12891
+ return false;
12880
12892
  }
12881
12893
  const capabilityTags = buildMeshNodeCapabilityTags(node, providerType);
12882
12894
  const providerMaxParallel = resolveProviderMaxParallel(node?.policy, providerType);
@@ -14154,6 +14166,25 @@ function handleMeshForwardEvent(components, payload) {
14154
14166
  metadataEvent: buildRelayMetadataEvent(payload)
14155
14167
  });
14156
14168
  }
14169
+ function enqueueCoordinatorForwardPush(coordinatorDaemonId, run) {
14170
+ let lane = coordinatorForwardLanes.get(coordinatorDaemonId);
14171
+ if (!lane) {
14172
+ lane = { tail: Promise.resolve(), depth: 0 };
14173
+ coordinatorForwardLanes.set(coordinatorDaemonId, lane);
14174
+ }
14175
+ const wasIdle = lane.depth === 0;
14176
+ lane.depth += 1;
14177
+ const dec = () => {
14178
+ lane.depth -= 1;
14179
+ };
14180
+ if (wasIdle) {
14181
+ lane.tail = Promise.resolve(run()).catch(() => {
14182
+ }).then(dec, dec);
14183
+ } else {
14184
+ lane.tail = lane.tail.then(() => run()).catch(() => {
14185
+ }).then(dec, dec);
14186
+ }
14187
+ }
14157
14188
  function forwardUnresolvedDelegateEvent(components, routing, event) {
14158
14189
  const coordinatorDaemonId = readNonEmptyString2(routing.coordinatorDaemonId);
14159
14190
  if (!coordinatorDaemonId) return false;
@@ -14185,7 +14216,8 @@ function forwardUnresolvedDelegateEvent(components, routing, event) {
14185
14216
  };
14186
14217
  traceMeshEventStage("outbox_enqueue", fwdTraceCtx, `coordinatorDaemon=${coordinatorDaemonId} meshId=absent`);
14187
14218
  traceMeshEventStage("forward_send", fwdTraceCtx, "immediate push");
14188
- Promise.resolve(components.dispatchMeshCommand(coordinatorDaemonId, "mesh_forward_event", payload)).then((result) => {
14219
+ const dispatchMeshCommand = components.dispatchMeshCommand;
14220
+ enqueueCoordinatorForwardPush(coordinatorDaemonId, () => Promise.resolve(dispatchMeshCommand(coordinatorDaemonId, "mesh_forward_event", payload)).then((result) => {
14189
14221
  if (result && result.success === false) {
14190
14222
  LOG.warn("MeshEvents", `Immediate forward of ${eventName} to coordinator ${coordinatorDaemonId} rejected (${readNonEmptyString2(result.error) || "no reason"}) \u2014 left queued for retry`);
14191
14223
  traceMeshEventDrop("immediate_forward_rejected", fwdTraceCtx, readNonEmptyString2(result.error) || "no reason");
@@ -14194,7 +14226,7 @@ function forwardUnresolvedDelegateEvent(components, routing, event) {
14194
14226
  if (persisted) ackUnresolvedDelegateForwardByFingerprint(coordinatorDaemonId, eventName, payload);
14195
14227
  }).catch((e) => {
14196
14228
  LOG.warn("MeshEvents", `Immediate forward of ${eventName} to coordinator ${coordinatorDaemonId} failed: ${e?.message || e} \u2014 left queued for retry`);
14197
- });
14229
+ }));
14198
14230
  LOG.info("MeshEvents", `Durably forwarded ${eventName} for unresolved-mesh worker at ${routing.workspace || "(no workspace)"} to coordinator daemon ${coordinatorDaemonId}`);
14199
14231
  return true;
14200
14232
  }
@@ -14277,7 +14309,7 @@ function setupMeshEventForwarding(components) {
14277
14309
  });
14278
14310
  });
14279
14311
  }
14280
- var import_fs13, REMOTE_IDLE_SESSION_TTL_MS, meshByWorkspaceCache, MESH_WORKSPACE_CACHE_TTL_MS, IDLE_AUTO_FAST_FORWARD_THROTTLE_MS, idleAutoFastForwardLastAttempt, INTENTIONAL_CLEANUP_STOP_SUPPRESSION_MS, RECENT_COMPLETION_FINGERPRINT_TTL_MS, DISPATCH_CONFIRM_TIMEOUT_MS, autoLaunchInProgress, autoLaunchCooldownUntil, AUTO_LAUNCH_COOLDOWN_MS, AUTO_LAUNCH_AWAIT_CLAIM_MS, lastAutoLaunchLedgerKey, AUTO_LAUNCH_LEDGER_DEDUP_MAX, MESH_COORDINATOR_EVENTS, EVENT_TO_LEDGER_KIND, MESH_FORCE_INJECT_EVENTS;
14312
+ var import_fs13, REMOTE_IDLE_SESSION_TTL_MS, meshByWorkspaceCache, MESH_WORKSPACE_CACHE_TTL_MS, IDLE_AUTO_FAST_FORWARD_THROTTLE_MS, idleAutoFastForwardLastAttempt, INTENTIONAL_CLEANUP_STOP_SUPPRESSION_MS, RECENT_COMPLETION_FINGERPRINT_TTL_MS, DISPATCH_CONFIRM_TIMEOUT_MS, autoLaunchInProgress, autoLaunchCooldownUntil, AUTO_LAUNCH_COOLDOWN_MS, AUTO_LAUNCH_AWAIT_CLAIM_MS, lastAutoLaunchLedgerKey, AUTO_LAUNCH_LEDGER_DEDUP_MAX, MESH_COORDINATOR_EVENTS, EVENT_TO_LEDGER_KIND, MESH_FORCE_INJECT_EVENTS, coordinatorForwardLanes;
14281
14313
  var init_mesh_events_coordinator = __esm({
14282
14314
  "src/mesh/mesh-events-coordinator.ts"() {
14283
14315
  "use strict";
@@ -14342,6 +14374,7 @@ var init_mesh_events_coordinator = __esm({
14342
14374
  "worktree_bootstrap_complete",
14343
14375
  "worktree_bootstrap_failed"
14344
14376
  ]);
14377
+ coordinatorForwardLanes = /* @__PURE__ */ new Map();
14345
14378
  }
14346
14379
  });
14347
14380
 
@@ -41537,6 +41570,18 @@ var DaemonCliManager = class {
41537
41570
  throw new Error(`Failed to start ${provider.displayName || provider.name || cliType}: ${spawnErr?.message}`);
41538
41571
  }
41539
41572
  this.adapters.set(key, cliInstance.getAdapter());
41573
+ const launchMeshNodeId = typeof settings?.meshNodeId === "string" ? settings.meshNodeId.trim() : "";
41574
+ const launchMeshNodeFor = typeof settings?.meshNodeFor === "string" ? settings.meshNodeFor.trim() : "";
41575
+ if (launchMeshNodeId || launchMeshNodeFor) {
41576
+ try {
41577
+ cliInstance.getAdapter().updateRuntimeMeta?.({
41578
+ ...launchMeshNodeId ? { meshNodeId: launchMeshNodeId } : {},
41579
+ ...launchMeshNodeFor ? { meshNodeFor: launchMeshNodeFor } : {},
41580
+ ...settings?.launchedByCoordinator === true ? { launchedByCoordinator: true } : {}
41581
+ });
41582
+ } catch {
41583
+ }
41584
+ }
41540
41585
  this.startCliExitMonitor(key, cliType);
41541
41586
  }
41542
41587
  // ─── Session start/management ──────────────────────────────