@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 +57 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +57 -12
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/commands/cli-manager.ts +22 -0
- package/src/mesh/mesh-events-coordinator.ts +102 -21
package/dist/index.mjs
CHANGED
|
@@ -311,10 +311,10 @@ function readInjected(value) {
|
|
|
311
311
|
}
|
|
312
312
|
function getDaemonBuildInfo() {
|
|
313
313
|
if (cached) return cached;
|
|
314
|
-
const commit = readInjected(true ? "
|
|
315
|
-
const commitShort = readInjected(true ? "
|
|
316
|
-
const version = readInjected(true ? "0.9.82-rc.
|
|
317
|
-
const builtAt = readInjected(true ? "2026-06-
|
|
314
|
+
const commit = readInjected(true ? "8cb6cfc5399f55c6b625095bacc9a27e1741df17" : void 0) ?? "unknown";
|
|
315
|
+
const commitShort = readInjected(true ? "8cb6cfc5" : void 0) ?? (commit !== "unknown" ? commit.slice(0, 7) : "unknown");
|
|
316
|
+
const version = readInjected(true ? "0.9.82-rc.368" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
|
|
317
|
+
const builtAt = readInjected(true ? "2026-06-24T06:14:32.255Z" : void 0);
|
|
318
318
|
cached = builtAt ? { commit, commitShort, version, builtAt } : { commit, commitShort, version };
|
|
319
319
|
return cached;
|
|
320
320
|
}
|
|
@@ -12866,13 +12866,25 @@ function tryAssignQueueTask(components, meshId, nodeId, sessionId, providerType)
|
|
|
12866
12866
|
const mesh = getMeshWithCache(components, meshId);
|
|
12867
12867
|
const node = mesh?.nodes.find((n) => readMeshNodeId(n) === nodeId);
|
|
12868
12868
|
const localClaimAdapter = components.cliManager?.adapters?.get(sessionId);
|
|
12869
|
-
|
|
12870
|
-
|
|
12871
|
-
|
|
12872
|
-
|
|
12873
|
-
|
|
12869
|
+
let claimInstanceWorkspace = "";
|
|
12870
|
+
let claimStampedNodeId = "";
|
|
12871
|
+
try {
|
|
12872
|
+
const claimState = components.instanceManager?.getInstance?.(sessionId)?.getState?.();
|
|
12873
|
+
claimInstanceWorkspace = readNonEmptyString2(claimState?.workspace);
|
|
12874
|
+
const claimSettings = claimState?.settings || {};
|
|
12875
|
+
claimStampedNodeId = readNonEmptyString2(claimSettings.meshNodeId);
|
|
12876
|
+
} catch {
|
|
12877
|
+
}
|
|
12878
|
+
const nodeWorkspaceRaw = readNonEmptyString2(node?.workspace);
|
|
12879
|
+
const sessionWorkspaceRaw = readNonEmptyString2(localClaimAdapter?.workingDir) || claimInstanceWorkspace;
|
|
12880
|
+
if (claimStampedNodeId && nodeId) {
|
|
12881
|
+
if (!meshNodeIdMatches({ id: claimStampedNodeId }, nodeId)) {
|
|
12882
|
+
LOG.info("MeshQueue", `WTDISPATCH: refusing claim for node ${nodeId} (${sessionId}) \u2014 session is bound to node "${claimStampedNodeId}" (cross-node claim blocked)`);
|
|
12874
12883
|
return false;
|
|
12875
12884
|
}
|
|
12885
|
+
} else if (sessionWorkspaceRaw && nodeWorkspaceRaw && !meshWorkspacesEquivalent(sessionWorkspaceRaw, nodeWorkspaceRaw)) {
|
|
12886
|
+
LOG.info("MeshQueue", `WTCLAIM: refusing claim for node ${nodeId} (${sessionId}) \u2014 session workspace "${normalizeMeshWorkspaceForCompare(sessionWorkspaceRaw)}" \u2260 node workspace "${normalizeMeshWorkspaceForCompare(nodeWorkspaceRaw)}" (cross-workspace dispatch blocked)`);
|
|
12887
|
+
return false;
|
|
12876
12888
|
}
|
|
12877
12889
|
const capabilityTags = buildMeshNodeCapabilityTags(node, providerType);
|
|
12878
12890
|
const providerMaxParallel = resolveProviderMaxParallel(node?.policy, providerType);
|
|
@@ -14150,6 +14162,25 @@ function handleMeshForwardEvent(components, payload) {
|
|
|
14150
14162
|
metadataEvent: buildRelayMetadataEvent(payload)
|
|
14151
14163
|
});
|
|
14152
14164
|
}
|
|
14165
|
+
function enqueueCoordinatorForwardPush(coordinatorDaemonId, run) {
|
|
14166
|
+
let lane = coordinatorForwardLanes.get(coordinatorDaemonId);
|
|
14167
|
+
if (!lane) {
|
|
14168
|
+
lane = { tail: Promise.resolve(), depth: 0 };
|
|
14169
|
+
coordinatorForwardLanes.set(coordinatorDaemonId, lane);
|
|
14170
|
+
}
|
|
14171
|
+
const wasIdle = lane.depth === 0;
|
|
14172
|
+
lane.depth += 1;
|
|
14173
|
+
const dec = () => {
|
|
14174
|
+
lane.depth -= 1;
|
|
14175
|
+
};
|
|
14176
|
+
if (wasIdle) {
|
|
14177
|
+
lane.tail = Promise.resolve(run()).catch(() => {
|
|
14178
|
+
}).then(dec, dec);
|
|
14179
|
+
} else {
|
|
14180
|
+
lane.tail = lane.tail.then(() => run()).catch(() => {
|
|
14181
|
+
}).then(dec, dec);
|
|
14182
|
+
}
|
|
14183
|
+
}
|
|
14153
14184
|
function forwardUnresolvedDelegateEvent(components, routing, event) {
|
|
14154
14185
|
const coordinatorDaemonId = readNonEmptyString2(routing.coordinatorDaemonId);
|
|
14155
14186
|
if (!coordinatorDaemonId) return false;
|
|
@@ -14181,7 +14212,8 @@ function forwardUnresolvedDelegateEvent(components, routing, event) {
|
|
|
14181
14212
|
};
|
|
14182
14213
|
traceMeshEventStage("outbox_enqueue", fwdTraceCtx, `coordinatorDaemon=${coordinatorDaemonId} meshId=absent`);
|
|
14183
14214
|
traceMeshEventStage("forward_send", fwdTraceCtx, "immediate push");
|
|
14184
|
-
|
|
14215
|
+
const dispatchMeshCommand = components.dispatchMeshCommand;
|
|
14216
|
+
enqueueCoordinatorForwardPush(coordinatorDaemonId, () => Promise.resolve(dispatchMeshCommand(coordinatorDaemonId, "mesh_forward_event", payload)).then((result) => {
|
|
14185
14217
|
if (result && result.success === false) {
|
|
14186
14218
|
LOG.warn("MeshEvents", `Immediate forward of ${eventName} to coordinator ${coordinatorDaemonId} rejected (${readNonEmptyString2(result.error) || "no reason"}) \u2014 left queued for retry`);
|
|
14187
14219
|
traceMeshEventDrop("immediate_forward_rejected", fwdTraceCtx, readNonEmptyString2(result.error) || "no reason");
|
|
@@ -14190,7 +14222,7 @@ function forwardUnresolvedDelegateEvent(components, routing, event) {
|
|
|
14190
14222
|
if (persisted) ackUnresolvedDelegateForwardByFingerprint(coordinatorDaemonId, eventName, payload);
|
|
14191
14223
|
}).catch((e) => {
|
|
14192
14224
|
LOG.warn("MeshEvents", `Immediate forward of ${eventName} to coordinator ${coordinatorDaemonId} failed: ${e?.message || e} \u2014 left queued for retry`);
|
|
14193
|
-
});
|
|
14225
|
+
}));
|
|
14194
14226
|
LOG.info("MeshEvents", `Durably forwarded ${eventName} for unresolved-mesh worker at ${routing.workspace || "(no workspace)"} to coordinator daemon ${coordinatorDaemonId}`);
|
|
14195
14227
|
return true;
|
|
14196
14228
|
}
|
|
@@ -14273,7 +14305,7 @@ function setupMeshEventForwarding(components) {
|
|
|
14273
14305
|
});
|
|
14274
14306
|
});
|
|
14275
14307
|
}
|
|
14276
|
-
var 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;
|
|
14308
|
+
var 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;
|
|
14277
14309
|
var init_mesh_events_coordinator = __esm({
|
|
14278
14310
|
"src/mesh/mesh-events-coordinator.ts"() {
|
|
14279
14311
|
"use strict";
|
|
@@ -14337,6 +14369,7 @@ var init_mesh_events_coordinator = __esm({
|
|
|
14337
14369
|
"worktree_bootstrap_complete",
|
|
14338
14370
|
"worktree_bootstrap_failed"
|
|
14339
14371
|
]);
|
|
14372
|
+
coordinatorForwardLanes = /* @__PURE__ */ new Map();
|
|
14340
14373
|
}
|
|
14341
14374
|
});
|
|
14342
14375
|
|
|
@@ -41173,6 +41206,18 @@ var DaemonCliManager = class {
|
|
|
41173
41206
|
throw new Error(`Failed to start ${provider.displayName || provider.name || cliType}: ${spawnErr?.message}`);
|
|
41174
41207
|
}
|
|
41175
41208
|
this.adapters.set(key, cliInstance.getAdapter());
|
|
41209
|
+
const launchMeshNodeId = typeof settings?.meshNodeId === "string" ? settings.meshNodeId.trim() : "";
|
|
41210
|
+
const launchMeshNodeFor = typeof settings?.meshNodeFor === "string" ? settings.meshNodeFor.trim() : "";
|
|
41211
|
+
if (launchMeshNodeId || launchMeshNodeFor) {
|
|
41212
|
+
try {
|
|
41213
|
+
cliInstance.getAdapter().updateRuntimeMeta?.({
|
|
41214
|
+
...launchMeshNodeId ? { meshNodeId: launchMeshNodeId } : {},
|
|
41215
|
+
...launchMeshNodeFor ? { meshNodeFor: launchMeshNodeFor } : {},
|
|
41216
|
+
...settings?.launchedByCoordinator === true ? { launchedByCoordinator: true } : {}
|
|
41217
|
+
});
|
|
41218
|
+
} catch {
|
|
41219
|
+
}
|
|
41220
|
+
}
|
|
41176
41221
|
this.startCliExitMonitor(key, cliType);
|
|
41177
41222
|
}
|
|
41178
41223
|
// ─── Session start/management ──────────────────────────────
|