@kb-labs/workflow-daemon 2.119.0 → 2.119.1-canary.b53bbee1d

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
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { makeAssemblyHook } from '@kb-labs/plugin-runtime';
3
- import { WorkflowEngine, WorkflowService } from '@kb-labs/workflow-engine';
3
+ import { WorkflowEngine, DAEMON_LEASE_HEARTBEAT_INTERVAL_MS, WorkflowService } from '@kb-labs/workflow-engine';
4
4
  import { getListenOptions, HttpObservabilityCollector, createDaemonServer, createServiceReadyResponse, metricLine } from '@kb-labs/shared-http';
5
5
  import { runService } from '@kb-labs/shared-daemon';
6
6
  import { logDiagnosticEvent, createContextLogger } from '@kb-labs/core-platform';
@@ -3272,6 +3272,14 @@ async function bootstrap(_cwd = process.cwd()) {
3272
3272
  "Cleaning up stale runs from previous daemon process"
3273
3273
  );
3274
3274
  await engine.cleanupStaleRuns();
3275
+ const leaseHeartbeat = setInterval(() => {
3276
+ engine.renewDaemonLease().catch((error) => {
3277
+ bootstrapLogger.warn("Failed to renew daemon liveness lease", {
3278
+ err: error instanceof Error ? error.message : String(error)
3279
+ });
3280
+ });
3281
+ }, DAEMON_LEASE_HEARTBEAT_INTERVAL_MS);
3282
+ leaseHeartbeat.unref?.();
3275
3283
  bootstrapLogger.info("Resuming interrupted jobs");
3276
3284
  await engine.resumeInterruptedJobs();
3277
3285
  bootstrapLogger.info("Reconciling persisted child workflow invocations");
@@ -3363,6 +3371,7 @@ async function bootstrap(_cwd = process.cwd()) {
3363
3371
  bootstrapLogger.info("Workflow daemon started successfully", { port });
3364
3372
  return async () => {
3365
3373
  bootstrapLogger.warn("Stopping workflow daemon components");
3374
+ clearInterval(leaseHeartbeat);
3366
3375
  fileWatcher.close();
3367
3376
  await cronScheduler.stop();
3368
3377
  await worker.stop();