@adonis-agora/durable 0.49.1 → 0.50.0

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.
Files changed (324) hide show
  1. package/CHANGELOG.md +251 -0
  2. package/README.md +53 -22
  3. package/dist/assets/spa/assets/index-DupjrK7N.js +16 -0
  4. package/dist/assets/spa/assets/index-DupjrK7N.js.map +1 -0
  5. package/dist/assets/spa/index.html +1 -1
  6. package/dist/commands/durable_worker.d.ts.map +1 -1
  7. package/dist/commands/durable_worker.js +9 -8
  8. package/dist/commands/durable_worker.js.map +1 -1
  9. package/dist/configure.d.ts.map +1 -1
  10. package/dist/configure.js +1 -0
  11. package/dist/configure.js.map +1 -1
  12. package/dist/providers/dashboard_provider.d.ts +2 -0
  13. package/dist/providers/dashboard_provider.d.ts.map +1 -1
  14. package/dist/providers/dashboard_provider.js +50 -6
  15. package/dist/providers/dashboard_provider.js.map +1 -1
  16. package/dist/providers/durable_provider.d.ts.map +1 -1
  17. package/dist/providers/durable_provider.js +143 -34
  18. package/dist/providers/durable_provider.js.map +1 -1
  19. package/dist/src/admission-redis/redis-admission-backend.d.ts.map +1 -1
  20. package/dist/src/admission-redis/redis-admission-backend.js +3 -1
  21. package/dist/src/admission-redis/redis-admission-backend.js.map +1 -1
  22. package/dist/src/ambient-step.d.ts +24 -0
  23. package/dist/src/ambient-step.d.ts.map +1 -0
  24. package/dist/src/ambient-step.js +42 -0
  25. package/dist/src/ambient-step.js.map +1 -0
  26. package/dist/src/base-workflow.d.ts +10 -1
  27. package/dist/src/base-workflow.d.ts.map +1 -1
  28. package/dist/src/base-workflow.js.map +1 -1
  29. package/dist/src/codec-state-store.d.ts +28 -2
  30. package/dist/src/codec-state-store.d.ts.map +1 -1
  31. package/dist/src/codec-state-store.js +61 -3
  32. package/dist/src/codec-state-store.js.map +1 -1
  33. package/dist/src/commands/worker.d.ts +4 -1
  34. package/dist/src/commands/worker.d.ts.map +1 -1
  35. package/dist/src/commands/worker.js +27 -3
  36. package/dist/src/commands/worker.js.map +1 -1
  37. package/dist/src/config_types.d.ts +6 -0
  38. package/dist/src/config_types.d.ts.map +1 -1
  39. package/dist/src/control-plane-redis/redis-control-plane.d.ts.map +1 -1
  40. package/dist/src/control-plane-redis/redis-control-plane.js +22 -6
  41. package/dist/src/control-plane-redis/redis-control-plane.js.map +1 -1
  42. package/dist/src/control-planes/factory.d.ts +6 -0
  43. package/dist/src/control-planes/factory.d.ts.map +1 -1
  44. package/dist/src/control-planes/factory.js +1 -0
  45. package/dist/src/control-planes/factory.js.map +1 -1
  46. package/dist/src/dashboard/gateway-adapter.d.ts +15 -5
  47. package/dist/src/dashboard/gateway-adapter.d.ts.map +1 -1
  48. package/dist/src/dashboard/gateway-adapter.js +71 -7
  49. package/dist/src/dashboard/gateway-adapter.js.map +1 -1
  50. package/dist/src/dashboard/handlers.d.ts +53 -1
  51. package/dist/src/dashboard/handlers.d.ts.map +1 -1
  52. package/dist/src/dashboard/handlers.js +200 -20
  53. package/dist/src/dashboard/handlers.js.map +1 -1
  54. package/dist/src/dashboard/index.d.ts +2 -2
  55. package/dist/src/dashboard/index.d.ts.map +1 -1
  56. package/dist/src/dashboard/index.js +2 -2
  57. package/dist/src/dashboard/index.js.map +1 -1
  58. package/dist/src/dashboard/openapi.d.ts.map +1 -1
  59. package/dist/src/dashboard/openapi.js +71 -1
  60. package/dist/src/dashboard/openapi.js.map +1 -1
  61. package/dist/src/define_config.d.ts +122 -8
  62. package/dist/src/define_config.d.ts.map +1 -1
  63. package/dist/src/define_config.js.map +1 -1
  64. package/dist/src/diagnostics-bridge.d.ts +16 -3
  65. package/dist/src/diagnostics-bridge.d.ts.map +1 -1
  66. package/dist/src/diagnostics-bridge.js +9 -3
  67. package/dist/src/diagnostics-bridge.js.map +1 -1
  68. package/dist/src/discovery-roots.d.ts +92 -0
  69. package/dist/src/discovery-roots.d.ts.map +1 -0
  70. package/dist/src/discovery-roots.js +150 -0
  71. package/dist/src/discovery-roots.js.map +1 -0
  72. package/dist/src/engine.d.ts +418 -20
  73. package/dist/src/engine.d.ts.map +1 -1
  74. package/dist/src/engine.js +1523 -159
  75. package/dist/src/engine.js.map +1 -1
  76. package/dist/src/entities.d.ts +36 -1
  77. package/dist/src/entities.d.ts.map +1 -1
  78. package/dist/src/entities.js +65 -4
  79. package/dist/src/entities.js.map +1 -1
  80. package/dist/src/errors.d.ts +36 -0
  81. package/dist/src/errors.d.ts.map +1 -1
  82. package/dist/src/errors.js +44 -0
  83. package/dist/src/errors.js.map +1 -1
  84. package/dist/src/event-trigger-bridge.d.ts +8 -0
  85. package/dist/src/event-trigger-bridge.d.ts.map +1 -1
  86. package/dist/src/event-trigger-bridge.js +24 -3
  87. package/dist/src/event-trigger-bridge.js.map +1 -1
  88. package/dist/src/handshake/announced.d.ts +27 -0
  89. package/dist/src/handshake/announced.d.ts.map +1 -1
  90. package/dist/src/handshake/announced.js +62 -0
  91. package/dist/src/handshake/announced.js.map +1 -1
  92. package/dist/src/handshake/directory.d.ts +92 -0
  93. package/dist/src/handshake/directory.d.ts.map +1 -0
  94. package/dist/src/handshake/directory.js +139 -0
  95. package/dist/src/handshake/directory.js.map +1 -0
  96. package/dist/src/hooks/barrel-sources.d.ts +28 -0
  97. package/dist/src/hooks/barrel-sources.d.ts.map +1 -0
  98. package/dist/src/hooks/barrel-sources.js +92 -0
  99. package/dist/src/hooks/barrel-sources.js.map +1 -0
  100. package/dist/src/hooks/steps.d.ts +12 -3
  101. package/dist/src/hooks/steps.d.ts.map +1 -1
  102. package/dist/src/hooks/steps.js +7 -11
  103. package/dist/src/hooks/steps.js.map +1 -1
  104. package/dist/src/hooks/workflows.d.ts +12 -3
  105. package/dist/src/hooks/workflows.d.ts.map +1 -1
  106. package/dist/src/hooks/workflows.js +7 -13
  107. package/dist/src/hooks/workflows.js.map +1 -1
  108. package/dist/src/index.d.ts +12 -3
  109. package/dist/src/index.d.ts.map +1 -1
  110. package/dist/src/index.js +12 -3
  111. package/dist/src/index.js.map +1 -1
  112. package/dist/src/interfaces.d.ts +309 -21
  113. package/dist/src/interfaces.d.ts.map +1 -1
  114. package/dist/src/interfaces.js +10 -0
  115. package/dist/src/interfaces.js.map +1 -1
  116. package/dist/src/metrics.d.ts.map +1 -1
  117. package/dist/src/metrics.js +5 -0
  118. package/dist/src/metrics.js.map +1 -1
  119. package/dist/src/namespaces.d.ts +17 -0
  120. package/dist/src/namespaces.d.ts.map +1 -0
  121. package/dist/src/namespaces.js +24 -0
  122. package/dist/src/namespaces.js.map +1 -0
  123. package/dist/src/otel/durable-metrics.d.ts.map +1 -1
  124. package/dist/src/otel/durable-metrics.js +5 -0
  125. package/dist/src/otel/durable-metrics.js.map +1 -1
  126. package/dist/src/otel/durable-otel.d.ts.map +1 -1
  127. package/dist/src/otel/durable-otel.js +5 -0
  128. package/dist/src/otel/durable-otel.js.map +1 -1
  129. package/dist/src/pollers.d.ts +10 -1
  130. package/dist/src/pollers.d.ts.map +1 -1
  131. package/dist/src/pollers.js +15 -5
  132. package/dist/src/pollers.js.map +1 -1
  133. package/dist/src/protocol.d.ts +12 -0
  134. package/dist/src/protocol.d.ts.map +1 -1
  135. package/dist/src/protocol.js +27 -1
  136. package/dist/src/protocol.js.map +1 -1
  137. package/dist/src/remote-event.d.ts +6 -0
  138. package/dist/src/remote-event.d.ts.map +1 -0
  139. package/dist/src/remote-event.js +19 -0
  140. package/dist/src/remote-event.js.map +1 -0
  141. package/dist/src/remote-workflow-executor.d.ts +34 -12
  142. package/dist/src/remote-workflow-executor.d.ts.map +1 -1
  143. package/dist/src/remote-workflow-executor.js +42 -40
  144. package/dist/src/remote-workflow-executor.js.map +1 -1
  145. package/dist/src/run-detail-summary.d.ts +90 -3
  146. package/dist/src/run-detail-summary.d.ts.map +1 -1
  147. package/dist/src/run-detail-summary.js +360 -2
  148. package/dist/src/run-detail-summary.js.map +1 -1
  149. package/dist/src/run-facets.d.ts +48 -0
  150. package/dist/src/run-facets.d.ts.map +1 -0
  151. package/dist/src/run-facets.js +100 -0
  152. package/dist/src/run-facets.js.map +1 -0
  153. package/dist/src/run-gateway/interface.d.ts +27 -1
  154. package/dist/src/run-gateway/interface.d.ts.map +1 -1
  155. package/dist/src/run-gateway/proxy-run-gateway.d.ts +32 -4
  156. package/dist/src/run-gateway/proxy-run-gateway.d.ts.map +1 -1
  157. package/dist/src/run-gateway/proxy-run-gateway.js +101 -5
  158. package/dist/src/run-gateway/proxy-run-gateway.js.map +1 -1
  159. package/dist/src/run-gateway/run-request-responder.d.ts +18 -5
  160. package/dist/src/run-gateway/run-request-responder.d.ts.map +1 -1
  161. package/dist/src/run-gateway/run-request-responder.js +155 -32
  162. package/dist/src/run-gateway/run-request-responder.js.map +1 -1
  163. package/dist/src/run-gateway/store-run-gateway.d.ts +23 -1
  164. package/dist/src/run-gateway/store-run-gateway.d.ts.map +1 -1
  165. package/dist/src/run-gateway/store-run-gateway.js +38 -0
  166. package/dist/src/run-gateway/store-run-gateway.js.map +1 -1
  167. package/dist/src/search-attributes-schema.d.ts +44 -0
  168. package/dist/src/search-attributes-schema.d.ts.map +1 -0
  169. package/dist/src/search-attributes-schema.js +51 -0
  170. package/dist/src/search-attributes-schema.js.map +1 -0
  171. package/dist/src/singleton-admission.d.ts +75 -0
  172. package/dist/src/singleton-admission.d.ts.map +1 -0
  173. package/dist/src/singleton-admission.js +156 -0
  174. package/dist/src/singleton-admission.js.map +1 -0
  175. package/dist/src/singleton-gate.d.ts +23 -8
  176. package/dist/src/singleton-gate.d.ts.map +1 -1
  177. package/dist/src/singleton-gate.js +59 -12
  178. package/dist/src/singleton-gate.js.map +1 -1
  179. package/dist/src/standard-schema.d.ts +83 -0
  180. package/dist/src/standard-schema.d.ts.map +1 -0
  181. package/dist/src/standard-schema.js +31 -0
  182. package/dist/src/standard-schema.js.map +1 -0
  183. package/dist/src/step-discovery.d.ts +21 -11
  184. package/dist/src/step-discovery.d.ts.map +1 -1
  185. package/dist/src/step-discovery.js +86 -45
  186. package/dist/src/step-discovery.js.map +1 -1
  187. package/dist/src/step-ref.d.ts +38 -12
  188. package/dist/src/step-ref.d.ts.map +1 -1
  189. package/dist/src/step-ref.js +5 -13
  190. package/dist/src/step-ref.js.map +1 -1
  191. package/dist/src/stores/factory.d.ts +6 -0
  192. package/dist/src/stores/factory.d.ts.map +1 -1
  193. package/dist/src/stores/factory.js +4 -1
  194. package/dist/src/stores/factory.js.map +1 -1
  195. package/dist/src/stores/lucid-helpers.d.ts +2 -0
  196. package/dist/src/stores/lucid-helpers.d.ts.map +1 -1
  197. package/dist/src/stores/lucid-helpers.js +7 -0
  198. package/dist/src/stores/lucid-helpers.js.map +1 -1
  199. package/dist/src/stores/lucid-mappers.d.ts +25 -0
  200. package/dist/src/stores/lucid-mappers.d.ts.map +1 -1
  201. package/dist/src/stores/lucid-mappers.js +81 -18
  202. package/dist/src/stores/lucid-mappers.js.map +1 -1
  203. package/dist/src/stores/lucid-schema.d.ts +59 -1
  204. package/dist/src/stores/lucid-schema.d.ts.map +1 -1
  205. package/dist/src/stores/lucid-schema.js +271 -25
  206. package/dist/src/stores/lucid-schema.js.map +1 -1
  207. package/dist/src/stores/lucid.d.ts +61 -2
  208. package/dist/src/stores/lucid.d.ts.map +1 -1
  209. package/dist/src/stores/lucid.js +346 -41
  210. package/dist/src/stores/lucid.js.map +1 -1
  211. package/dist/src/telescope/dashboard.d.ts.map +1 -1
  212. package/dist/src/telescope/dashboard.js +30 -1
  213. package/dist/src/telescope/dashboard.js.map +1 -1
  214. package/dist/src/telescope/data-providers.d.ts +19 -1
  215. package/dist/src/telescope/data-providers.d.ts.map +1 -1
  216. package/dist/src/telescope/data-providers.js +119 -3
  217. package/dist/src/telescope/data-providers.js.map +1 -1
  218. package/dist/src/telescope/extension.d.ts.map +1 -1
  219. package/dist/src/telescope/extension.js +2 -1
  220. package/dist/src/telescope/extension.js.map +1 -1
  221. package/dist/src/telescope/index.d.ts +1 -1
  222. package/dist/src/telescope/index.d.ts.map +1 -1
  223. package/dist/src/telescope/index.js +1 -1
  224. package/dist/src/telescope/index.js.map +1 -1
  225. package/dist/src/testing/in-memory-state-store.d.ts +44 -15
  226. package/dist/src/testing/in-memory-state-store.d.ts.map +1 -1
  227. package/dist/src/testing/in-memory-state-store.js +204 -41
  228. package/dist/src/testing/in-memory-state-store.js.map +1 -1
  229. package/dist/src/testing-kit/checkpoint-aggregation-contract.d.ts +16 -0
  230. package/dist/src/testing-kit/checkpoint-aggregation-contract.d.ts.map +1 -0
  231. package/dist/src/testing-kit/checkpoint-aggregation-contract.js +228 -0
  232. package/dist/src/testing-kit/checkpoint-aggregation-contract.js.map +1 -0
  233. package/dist/src/testing-kit/state-store-conformance.d.ts.map +1 -1
  234. package/dist/src/testing-kit/state-store-conformance.js +355 -3
  235. package/dist/src/testing-kit/state-store-conformance.js.map +1 -1
  236. package/dist/src/transport-pool.d.ts +15 -1
  237. package/dist/src/transport-pool.d.ts.map +1 -1
  238. package/dist/src/transport-pool.js +50 -4
  239. package/dist/src/transport-pool.js.map +1 -1
  240. package/dist/src/transports/adaptive-concurrency.d.ts +168 -0
  241. package/dist/src/transports/adaptive-concurrency.d.ts.map +1 -0
  242. package/dist/src/transports/adaptive-concurrency.js +353 -0
  243. package/dist/src/transports/adaptive-concurrency.js.map +1 -0
  244. package/dist/src/transports/bullmq/adaptive-concurrency.d.ts +1 -165
  245. package/dist/src/transports/bullmq/adaptive-concurrency.d.ts.map +1 -1
  246. package/dist/src/transports/bullmq/adaptive-concurrency.js +3 -351
  247. package/dist/src/transports/bullmq/adaptive-concurrency.js.map +1 -1
  248. package/dist/src/transports/bullmq/bullmq-transport.d.ts +49 -1
  249. package/dist/src/transports/bullmq/bullmq-transport.d.ts.map +1 -1
  250. package/dist/src/transports/bullmq/bullmq-transport.js +330 -38
  251. package/dist/src/transports/bullmq/bullmq-transport.js.map +1 -1
  252. package/dist/src/transports/bullmq/deps.d.ts +18 -2
  253. package/dist/src/transports/bullmq/deps.d.ts.map +1 -1
  254. package/dist/src/transports/bullmq/deps.js +44 -2
  255. package/dist/src/transports/bullmq/deps.js.map +1 -1
  256. package/dist/src/transports/db-helpers.d.ts +39 -0
  257. package/dist/src/transports/db-helpers.d.ts.map +1 -1
  258. package/dist/src/transports/db-helpers.js +73 -0
  259. package/dist/src/transports/db-helpers.js.map +1 -1
  260. package/dist/src/transports/db-remote.d.ts +53 -0
  261. package/dist/src/transports/db-remote.d.ts.map +1 -0
  262. package/dist/src/transports/db-remote.js +147 -0
  263. package/dist/src/transports/db-remote.js.map +1 -0
  264. package/dist/src/transports/db-schema.d.ts +44 -1
  265. package/dist/src/transports/db-schema.d.ts.map +1 -1
  266. package/dist/src/transports/db-schema.js +227 -88
  267. package/dist/src/transports/db-schema.js.map +1 -1
  268. package/dist/src/transports/db.d.ts +189 -6
  269. package/dist/src/transports/db.d.ts.map +1 -1
  270. package/dist/src/transports/db.js +1291 -137
  271. package/dist/src/transports/db.js.map +1 -1
  272. package/dist/src/transports/event-emitter.d.ts +8 -0
  273. package/dist/src/transports/event-emitter.d.ts.map +1 -1
  274. package/dist/src/transports/event-emitter.js +36 -3
  275. package/dist/src/transports/event-emitter.js.map +1 -1
  276. package/dist/src/transports/factory.d.ts +110 -5
  277. package/dist/src/transports/factory.d.ts.map +1 -1
  278. package/dist/src/transports/factory.js +56 -9
  279. package/dist/src/transports/factory.js.map +1 -1
  280. package/dist/src/transports/queue-mock-adapter.d.ts +7 -2
  281. package/dist/src/transports/queue-mock-adapter.d.ts.map +1 -1
  282. package/dist/src/transports/queue-mock-adapter.js +18 -2
  283. package/dist/src/transports/queue-mock-adapter.js.map +1 -1
  284. package/dist/src/transports/queue-remote.d.ts +146 -0
  285. package/dist/src/transports/queue-remote.d.ts.map +1 -0
  286. package/dist/src/transports/queue-remote.js +398 -0
  287. package/dist/src/transports/queue-remote.js.map +1 -0
  288. package/dist/src/transports/queue.d.ts +159 -6
  289. package/dist/src/transports/queue.d.ts.map +1 -1
  290. package/dist/src/transports/queue.js +747 -37
  291. package/dist/src/transports/queue.js.map +1 -1
  292. package/dist/src/transports/task-failure.d.ts +31 -0
  293. package/dist/src/transports/task-failure.d.ts.map +1 -0
  294. package/dist/src/transports/task-failure.js +50 -0
  295. package/dist/src/transports/task-failure.js.map +1 -0
  296. package/dist/src/workflow-als.d.ts +1 -1
  297. package/dist/src/workflow-als.d.ts.map +1 -1
  298. package/dist/src/workflow-ctx.d.ts +10 -0
  299. package/dist/src/workflow-ctx.d.ts.map +1 -1
  300. package/dist/src/workflow-ctx.js +97 -15
  301. package/dist/src/workflow-ctx.js.map +1 -1
  302. package/dist/src/workflow-discovery.d.ts +32 -41
  303. package/dist/src/workflow-discovery.d.ts.map +1 -1
  304. package/dist/src/workflow-discovery.js +65 -88
  305. package/dist/src/workflow-discovery.js.map +1 -1
  306. package/dist/src/workflow-ref.d.ts +24 -0
  307. package/dist/src/workflow-ref.d.ts.map +1 -1
  308. package/dist/src/workflow-ref.js.map +1 -1
  309. package/dist/stubs/config/durable.stub +6 -0
  310. package/dist/stubs/config/durable_dashboard.stub +7 -3
  311. package/dist/stubs/database/migrations/create_durable_tables.stub +2 -1
  312. package/dist/stubs/database/migrations/create_durable_transport_messages.stub +43 -0
  313. package/dist/stubs/database/migrations/create_durable_transport_tables.stub +12 -9
  314. package/dist/stubs/database/migrations/create_durable_transport_worker_keys.stub +1 -1
  315. package/dist/stubs/make/workflow/main.stub +1 -1
  316. package/package.json +6 -4
  317. package/skills/durable-cluster/SKILL.md +80 -11
  318. package/skills/durable-determinism/SKILL.md +11 -5
  319. package/skills/durable-reliability/SKILL.md +77 -37
  320. package/skills/durable-setup/SKILL.md +51 -22
  321. package/skills/durable-transports-stores/SKILL.md +128 -18
  322. package/skills/durable-workflows/SKILL.md +71 -18
  323. package/dist/assets/spa/assets/index-DdB9zxuX.js +0 -16
  324. package/dist/assets/spa/assets/index-DdB9zxuX.js.map +0 -1
@@ -1,10 +1,30 @@
1
- import { runStepHandler } from '../../protocol.js';
1
+ import { runStepHandler, withTurnHeartbeat } from '../../protocol.js';
2
2
  import { swallowSubscribe } from '../../safe-subscribe.js';
3
3
  import { isWorkflowTask } from '../../workflow-turn.js';
4
+ import { failedTaskIdentity, fanOutDecision, infrastructureFailure, } from '../task-failure.js';
4
5
  import { AdaptiveController } from './adaptive-concurrency.js';
5
6
  import { workerConcurrency, } from './deps.js';
6
7
  import { decisionsName, effectivePrefix, heartbeatChannel, resultsName, routingToken, runReplyChannel, runRequestName, startRunName, stepEventsName, tasksName, tenantEventsChannel, workerDescriptorTokenPrefix, workerHeartbeatKey, workerHeartbeatKeyPrefix, } from './naming.js';
7
8
  import { buildInstanceId, heartbeatKeyValue, jobOptions, parseHeartbeatValue, resultJobOptions, taskJobOptions, WORKER_HEARTBEAT_INTERVAL_MS, WORKER_HEARTBEAT_TTL_SECONDS, } from './serialization.js';
9
+ /** Default {@link BullMQTransportOptions.pingIntervalMs}. */
10
+ const DEFAULT_PING_INTERVAL_MS = 30_000;
11
+ /** How long one watchdog PING may take before its subscriber connection is presumed dead. */
12
+ const SUBSCRIBER_PING_TIMEOUT_MS = 5_000;
13
+ /** `undefined` → the default, `0`/`false` → disabled, any other number → itself. */
14
+ function normalizePingInterval(value) {
15
+ if (value === undefined)
16
+ return DEFAULT_PING_INTERVAL_MS;
17
+ if (value === false || value === 0)
18
+ return false;
19
+ // setInterval turns a negative, NaN or > 2^31-1 delay into ~1ms: a PING hot loop. Treat those as
20
+ // unset (the default), like a non-positive stepTimeoutMs.
21
+ if (!Number.isFinite(value) || value < 0 || value > MAX_TIMER_DELAY_MS) {
22
+ return DEFAULT_PING_INTERVAL_MS;
23
+ }
24
+ return value;
25
+ }
26
+ /** The largest delay `setInterval` honours (a signed 32-bit int); anything above fires at ~1ms. */
27
+ const MAX_TIMER_DELAY_MS = 2 ** 31 - 1;
8
28
  /**
9
29
  * A queue-backed {@link Transport} over BullMQ/Redis, BYTE-COMPATIBLE with the aviary
10
30
  * (`nestjs-durable`) BullMQ transport and its Python raw-redis worker — so an Adonis engine can
@@ -37,6 +57,9 @@ export class BullMQTransport {
37
57
  // Shared by every task worker: tracks in-flight work and the step-completion window, snapshots the
38
58
  // heartbeat status and, in adaptive mode, sets every task worker's `concurrency` on each move.
39
59
  #controller;
60
+ // Deferred consumption (see deferConsumers): worker constructions parked until startConsumers().
61
+ #consumersDeferred = false;
62
+ #deferredWorkers = [];
40
63
  #handlers = new Map();
41
64
  // Worker-side workflow turn consumers, keyed by workflow name — a `workflow`-shaped job routes here.
42
65
  #workflowTurns = new Map();
@@ -45,6 +68,7 @@ export class BullMQTransport {
45
68
  #taskWorkers = new Map();
46
69
  #resultsWorker;
47
70
  #decisionsWorker;
71
+ #decisionHandlers = new Set();
48
72
  #stepEventsWorker;
49
73
  // Long-step heartbeat pub/sub (distinct from the worker-liveness key registry below).
50
74
  #heartbeatPub;
@@ -64,6 +88,12 @@ export class BullMQTransport {
64
88
  #tenantEventSub;
65
89
  #tenantEventChannels = new Set();
66
90
  #tenantEventHandlers = new Map();
91
+ // Every pub/sub SUBSCRIBER connection, probed by the one shared watchdog interval. Publish-only
92
+ // connections are not tracked: they write, so a dead one fails its next publish instead of silently.
93
+ #subscribers = new Set();
94
+ #pingIntervalMs;
95
+ #stepTimeoutMs;
96
+ #pingWatchdogTimer;
67
97
  constructor(options) {
68
98
  this.#deps = options.deps;
69
99
  this.#partition = options.partition;
@@ -76,6 +106,93 @@ export class BullMQTransport {
76
106
  this.#closeTimeoutMs = options.closeTimeoutMs ?? DEFAULT_CLOSE_TIMEOUT_MS;
77
107
  this.#resultConcurrency = workerConcurrency(options.resultConcurrency);
78
108
  this.#concurrency = options.concurrency;
109
+ this.#pingIntervalMs = normalizePingInterval(options.pingIntervalMs);
110
+ this.#stepTimeoutMs =
111
+ options.stepTimeoutMs !== undefined &&
112
+ Number.isFinite(options.stepTimeoutMs) &&
113
+ options.stepTimeoutMs > 0
114
+ ? options.stepTimeoutMs
115
+ : undefined;
116
+ }
117
+ /**
118
+ * A subscriber-mode connection: a fresh `makeRedis()` client registered with the ping watchdog and
119
+ * given an `error` listener. Every pub/sub subscriber goes through here, because a subscriber never
120
+ * writes on its own and so cannot surface a silent connection loss by itself.
121
+ */
122
+ #subscriberRedis(label) {
123
+ const sub = this.#deps.makeRedis();
124
+ this.#trackSubscriber(sub, label);
125
+ return sub;
126
+ }
127
+ /**
128
+ * Attach a de-duplicated `error` listener and register `sub` with the watchdog. The listener is not
129
+ * hygiene: an `error` emitted with no listener throws on a plain EventEmitter (and a dead,
130
+ * reconnecting subscriber emits them in bursts), so a connection nothing else listens to could take
131
+ * the process down. The first error of each reconnect burst goes to `onError` when one is
132
+ * configured, else to `console.warn`.
133
+ */
134
+ #trackSubscriber(sub, label) {
135
+ this.#subscribers.add(sub);
136
+ let loggedSinceReady = false;
137
+ sub.on('error', ((err) => {
138
+ if (loggedSinceReady)
139
+ return; // one report per reconnect burst, not one per retry
140
+ loggedSinceReady = true;
141
+ if (this.#hasOnError)
142
+ this.#onError(err);
143
+ else
144
+ console.warn(`[adonis-durable] bullmq ${label} subscriber error: ${err?.message ?? err}`);
145
+ }));
146
+ sub.on('ready', (() => {
147
+ loggedSinceReady = false;
148
+ }));
149
+ this.#startPingWatchdog();
150
+ }
151
+ /** Start the ONE shared watchdog interval (idempotent; unref'd; cleared in {@link close}). */
152
+ #startPingWatchdog() {
153
+ if (this.#pingWatchdogTimer || this.#pingIntervalMs === false)
154
+ return;
155
+ this.#pingWatchdogTimer = setInterval(() => {
156
+ for (const sub of this.#subscribers)
157
+ void this.#pingSubscriber(sub);
158
+ }, this.#pingIntervalMs);
159
+ this.#pingWatchdogTimer.unref?.();
160
+ }
161
+ /**
162
+ * PING one subscriber; on rejection or timeout, `disconnect(true)` it so ioredis reconnects and
163
+ * `autoResubscribe` restores its channels. A connection that is not `'ready'` is already
164
+ * mid-(re)connect and is skipped. The timeout is capped at the interval, so a short interval
165
+ * shortens the whole detect-and-reconnect cycle.
166
+ */
167
+ async #pingSubscriber(sub) {
168
+ if (typeof sub.ping !== 'function')
169
+ return;
170
+ if (sub.status !== undefined && sub.status !== 'ready')
171
+ return;
172
+ const timeoutMs = this.#pingIntervalMs === false
173
+ ? SUBSCRIBER_PING_TIMEOUT_MS
174
+ : Math.min(SUBSCRIBER_PING_TIMEOUT_MS, this.#pingIntervalMs);
175
+ try {
176
+ await new Promise((resolve, reject) => {
177
+ const timer = setTimeout(() => reject(new Error('ping timed out')), timeoutMs);
178
+ sub.ping().then(() => {
179
+ clearTimeout(timer);
180
+ resolve();
181
+ }, (err) => {
182
+ clearTimeout(timer);
183
+ reject(err instanceof Error ? err : new Error(String(err)));
184
+ });
185
+ });
186
+ }
187
+ catch (err) {
188
+ // A ping in flight when close() lands must not resurrect the connection close() just dropped:
189
+ // disconnect(true) reconnects rather than closes.
190
+ if (this.#closing)
191
+ return;
192
+ const message = err instanceof Error ? err.message : String(err);
193
+ console.warn(`[adonis-durable] bullmq subscriber connection unresponsive (${message}); reconnecting to restore its subscription`);
194
+ sub.disconnect(true);
195
+ }
79
196
  }
80
197
  /** The shared concurrency controller, created on first use (a task worker, a job or a heartbeat). */
81
198
  #concurrencyController() {
@@ -90,6 +207,78 @@ export class BullMQTransport {
90
207
  }
91
208
  return this.#controller;
92
209
  }
210
+ /**
211
+ * Park every point-to-point consumer registered from now on — the task, results, decisions,
212
+ * step-events, start-run and run-request workers — until {@link startConsumers}.
213
+ *
214
+ * WHY: a BullMQ `Worker` starts fetching the moment it is constructed, and these queues hand each
215
+ * job to ONE consumer. Any process that registers them competes with the real worker fleet: a
216
+ * `node ace` command or REPL claims jobs it then dies holding, and steals results addressed to the
217
+ * long-lived engine (the bug the `queue` transport fixed the same way). Deferring construction makes
218
+ * such a process a pure producer — it still dispatches and publishes; the jobs stay on the queues.
219
+ * Pub/sub subscriptions (heartbeats, run replies, tenant events) are broadcast, take nothing from
220
+ * anyone, and are left alone.
221
+ *
222
+ * Call it before any subscription is made (the provider does, right after building the transport);
223
+ * workers already started are not stopped.
224
+ */
225
+ deferConsumers() {
226
+ this.#consumersDeferred = true;
227
+ }
228
+ /** Construct every worker parked by {@link deferConsumers} and stop deferring — the explicit "this
229
+ * process IS a worker" declaration (`durable:work` makes it via `engine.startConsumers()`).
230
+ * Idempotent; a no-op when consumption was never deferred. */
231
+ startConsumers() {
232
+ if (!this.#consumersDeferred)
233
+ return;
234
+ this.#consumersDeferred = false;
235
+ for (const start of this.#deferredWorkers.splice(0))
236
+ start();
237
+ }
238
+ /**
239
+ * `deps.makeWorker`, unless consumption is deferred: then a stand-in that records `failed` listeners
240
+ * and `concurrency` assignments (the adaptive controller keeps setting it) and builds the real
241
+ * worker — replaying both — on {@link startConsumers}. `close()` on a never-started stand-in is a
242
+ * no-op, so a producer process shuts down without ever touching the broker's consumer side.
243
+ */
244
+ #makeWorker(name, process, opts) {
245
+ if (!this.#consumersDeferred)
246
+ return this.#deps.makeWorker(name, process, opts);
247
+ const listeners = [];
248
+ let real;
249
+ let closed = false;
250
+ let concurrency = opts?.concurrency;
251
+ const standIn = {
252
+ get concurrency() {
253
+ return real ? real.concurrency : concurrency;
254
+ },
255
+ set concurrency(limit) {
256
+ if (real)
257
+ real.concurrency = limit;
258
+ else
259
+ concurrency = limit;
260
+ },
261
+ on: (_event, listener) => {
262
+ if (real)
263
+ real.on('failed', listener);
264
+ else
265
+ listeners.push(listener);
266
+ return standIn;
267
+ },
268
+ close: async () => {
269
+ closed = true;
270
+ await real?.close();
271
+ },
272
+ };
273
+ this.#deferredWorkers.push(() => {
274
+ if (closed)
275
+ return;
276
+ real = this.#deps.makeWorker(name, process, concurrency !== undefined ? { ...opts, concurrency } : opts);
277
+ for (const listener of listeners)
278
+ real.on('failed', listener);
279
+ });
280
+ return standIn;
281
+ }
93
282
  /** Stable id stamped on this instance's worker-liveness keys. */
94
283
  get instanceId() {
95
284
  return this.#instanceId;
@@ -178,7 +367,7 @@ export class BullMQTransport {
178
367
  const controller = this.#concurrencyController();
179
368
  // A new worker starts at the controller's live limit, so a token registered after an adaptive
180
369
  // move joins at the current limit rather than at `start`.
181
- const worker = this.#deps.makeWorker(tasksName(this.#effectivePrefix(), token), (job) => this.#runJob(job.data), this.#concurrency !== undefined ? { concurrency: controller.limit } : undefined);
370
+ const worker = this.#makeWorker(tasksName(this.#effectivePrefix(), token), (job) => this.#runJob(job.data), this.#concurrency !== undefined ? { concurrency: controller.limit } : undefined);
182
371
  // Terminal-failure bridge: a task job reaching a TERMINAL `failed` state is an INFRASTRUCTURE
183
372
  // failure (worker crash / stalled-count exhaustion), never a handler business error —
184
373
  // `runStepHandler` catches every handler throw and publishes a failed StepResult so the job
@@ -186,7 +375,7 @@ export class BullMQTransport {
186
375
  // its `pending` checkpoint forever. Synthesize a RETRYABLE failed StepResult so the engine settles
187
376
  // the checkpoint and re-dispatches. A PEER replica's worker fails a crashed worker's stalled job,
188
377
  // so this still fires cross-process. (A failed WORKFLOW job carries no step identity, so the bridge
189
- // no-ops for it — the engine's RemoteWorkflowExecutor re-drives the turn on recovery instead.)
378
+ // no-ops for it — the turn's liveness window (`remoteAdvanceSilenceMs`) re-drives it instead.)
190
379
  worker.on('failed', (job, error) => {
191
380
  const identity = failedTaskIdentity(job?.data);
192
381
  if (!identity)
@@ -195,7 +384,18 @@ export class BullMQTransport {
195
384
  });
196
385
  this.#taskWorkers.set(token, worker);
197
386
  controller.start();
198
- this.#startWorkerHeartbeat(token);
387
+ // Liveness says "a worker consumes this token". A deferred process (a `node ace` producer) has
388
+ // no worker yet, so it must not show up in groupHealth / the dashboard as one: the heartbeat
389
+ // starts with the parked worker, on startConsumers() (the queue and db transports do the same).
390
+ if (this.#consumersDeferred) {
391
+ this.#deferredWorkers.push(() => {
392
+ if (!this.#closing)
393
+ this.#startWorkerHeartbeat(token);
394
+ });
395
+ }
396
+ else {
397
+ this.#startWorkerHeartbeat(token);
398
+ }
199
399
  }
200
400
  /** Route one task job by SHAPE (spec §6.3): a workflow turn runs the replay → decision path, a step
201
401
  * runs the `runStepHandler` → result path. Both kinds share a token's queue but never each other's. */
@@ -229,7 +429,7 @@ export class BullMQTransport {
229
429
  try {
230
430
  const turn = this.#workflowTurns.get(task.workflow);
231
431
  decision = turn
232
- ? await turn(task)
432
+ ? await withTurnHeartbeat(task, (beat) => this.heartbeat(beat), () => turn(task))
233
433
  : {
234
434
  taskId: task.taskId,
235
435
  runId: task.runId,
@@ -267,7 +467,7 @@ export class BullMQTransport {
267
467
  async #runTask(task) {
268
468
  let result;
269
469
  try {
270
- result = await runStepHandler(task, this.#handlers.get(task.name), (beat) => this.heartbeat(beat));
470
+ result = await this.#withStepTimeout(task, runStepHandler(task, this.#handlers.get(task.name), (beat) => this.heartbeat(beat)));
271
471
  }
272
472
  catch (err) {
273
473
  // runStepHandler is pure (a handler throw becomes a failed StepResult), so reaching here is a
@@ -296,6 +496,32 @@ export class BullMQTransport {
296
496
  throw err;
297
497
  }
298
498
  }
499
+ /**
500
+ * Race a step handler against {@link BullMQTransportOptions.stepTimeoutMs}. At the ceiling, resolve
501
+ * with a RETRYABLE failed StepResult and abandon the still-pending handler (a wedged await cannot be
502
+ * cancelled from outside; what matters is that the run stops waiting on it). A rejection settles
503
+ * through the caller's catch, as before. No ceiling configured: pass-through.
504
+ */
505
+ #withStepTimeout(task, run) {
506
+ const ms = this.#stepTimeoutMs;
507
+ if (ms === undefined)
508
+ return run;
509
+ let timer;
510
+ const ceiling = new Promise((resolve) => {
511
+ timer = setTimeout(() => resolve({
512
+ runId: task.runId,
513
+ seq: task.seq,
514
+ stepId: task.stepId,
515
+ status: 'failed',
516
+ error: {
517
+ message: `remote step worker failed: step exceeded stepTimeoutMs (${ms}ms), presumed wedged`,
518
+ retryable: true,
519
+ },
520
+ }), ms);
521
+ timer.unref?.();
522
+ });
523
+ return Promise.race([run, ceiling]).finally(() => clearTimeout(timer));
524
+ }
299
525
  /** Worker side: publish a liveness heartbeat for an in-flight long step on the `${P}-heartbeat`
300
526
  * pub/sub channel (resets the engine's `timeoutMs` window on whichever pod is awaiting it). */
301
527
  async heartbeat(beat) {
@@ -306,13 +532,7 @@ export class BullMQTransport {
306
532
  /** Publish a synthetic FAILED StepResult for a task that failed at the infrastructure level (see the
307
533
  * `handle()` bridge). Correlated purely by runId/seq/stepId (StepResult has no `name`). Best-effort. */
308
534
  async #bridgeTaskFailure(identity, reason) {
309
- const result = {
310
- runId: identity.runId,
311
- seq: identity.seq,
312
- stepId: identity.stepId,
313
- status: 'failed',
314
- error: { message: `remote step worker failed: ${reason}`, retryable: true },
315
- };
535
+ const result = infrastructureFailure(identity, reason);
316
536
  try {
317
537
  await this.#queue(resultsName(this.#effectivePrefix())).add('result', result, resultJobOptions());
318
538
  }
@@ -326,7 +546,7 @@ export class BullMQTransport {
326
546
  onResult(handler) {
327
547
  if (this.#resultsWorker)
328
548
  return;
329
- this.#resultsWorker = this.#deps.makeWorker(resultsName(this.#effectivePrefix()), (job) => handler(job.data), { concurrency: this.#resultConcurrency });
549
+ this.#resultsWorker = this.#makeWorker(resultsName(this.#effectivePrefix()), (job) => handler(job.data), { concurrency: this.#resultConcurrency });
330
550
  this.#resultsWorker.on('failed', (job, err) => {
331
551
  if (!job || (job.attemptsMade ?? 0) < (job.opts?.attempts ?? 1))
332
552
  return;
@@ -339,9 +559,23 @@ export class BullMQTransport {
339
559
  });
340
560
  }
341
561
  onDecision(handler) {
562
+ // EVERY handler gets every decision. An engine subscribes one stable handler (it applies a decision
563
+ // by run id, dropping any its run no longer awaits); a set keeps a second registration of it, or a
564
+ // second engine sharing this transport, from being lost — keeping only the first handler (an old
565
+ // behaviour) silently dropped decisions, so runs never advanced.
566
+ this.#decisionHandlers.add(handler);
342
567
  if (this.#decisionsWorker)
343
568
  return;
344
- this.#decisionsWorker = this.#deps.makeWorker(decisionsName(this.#effectivePrefix()), (job) => handler(job.data));
569
+ this.#decisionsWorker = this.#makeWorker(decisionsName(this.#effectivePrefix()), async (job) => {
570
+ const decision = job.data;
571
+ // Every handler, concurrently; all settle before a failure fails (and retries) the job.
572
+ await fanOutDecision(this.#decisionHandlers, decision, (err) => {
573
+ if (this.#hasOnError)
574
+ this.#onError(err);
575
+ else
576
+ console.warn(`[adonis-durable] bullmq decision handler failed: ${String(err)}`);
577
+ });
578
+ });
345
579
  }
346
580
  /** workflow worker → engine: stream a local step's lifecycle on `${P}-step-events` (job `stepEvent`),
347
581
  * point-to-point so one engine instance checkpoints each once. */
@@ -351,17 +585,18 @@ export class BullMQTransport {
351
585
  onStepEvent(handler) {
352
586
  if (this.#stepEventsWorker)
353
587
  return;
354
- this.#stepEventsWorker = this.#deps.makeWorker(stepEventsName(this.#effectivePrefix()), (job) => handler(job.data));
588
+ this.#stepEventsWorker = this.#makeWorker(stepEventsName(this.#effectivePrefix()), (job) => handler(job.data));
355
589
  }
356
590
  onHeartbeat(handler) {
357
591
  if (this.#heartbeatSub)
358
592
  return; // one subscription per transport
359
- const sub = this.#deps.makeRedis();
593
+ const sub = this.#subscriberRedis('heartbeat');
360
594
  this.#heartbeatSub = sub;
361
595
  swallowSubscribe(sub.subscribe(heartbeatChannel(this.#effectivePrefix())), () => this.#closing, 'bullmq heartbeat', this.#subscribeErrorSink());
362
596
  sub.on('message', ((_channel, payload) => {
363
597
  try {
364
- void handler(JSON.parse(payload));
598
+ // The engine's handler writes to the store: report a rejection, never leave it unhandled.
599
+ void handler(JSON.parse(payload)).catch((err) => this.#onError(err));
365
600
  }
366
601
  catch {
367
602
  /* ignore malformed heartbeats */
@@ -475,6 +710,76 @@ export class BullMQTransport {
475
710
  this.#descriptorCache.set(token, { at: Date.now(), descriptors });
476
711
  return descriptors;
477
712
  }
713
+ /** Every live descriptor on every token: SCAN `${P}-worker-descriptor:*`, MGET per page. Degrades
714
+ * to `[]` (reported through `onError`) when the keyspace cannot be read. */
715
+ async readAllWorkerDescriptors() {
716
+ const client = this.#workerRedisClient();
717
+ const descriptors = [];
718
+ try {
719
+ await this.#scanValues(client, `${this.#effectivePrefix()}-worker-descriptor:`, (_key, raw) => {
720
+ if (raw == null)
721
+ return;
722
+ try {
723
+ descriptors.push(JSON.parse(raw));
724
+ }
725
+ catch {
726
+ /* a malformed descriptor reads as absent */
727
+ }
728
+ });
729
+ }
730
+ catch (err) {
731
+ this.#onError(err);
732
+ return [];
733
+ }
734
+ return descriptors;
735
+ }
736
+ /** Every live worker heartbeat on every token: SCAN `${P}-worker-heartbeat:*`. A key is
737
+ * `<prefix><token>:<instance>` and neither segment carries a `:`. Degrades to `[]`. */
738
+ async readAllWorkerHeartbeats() {
739
+ const client = this.#workerRedisClient();
740
+ const prefix = workerHeartbeatKeyPrefix(this.#effectivePrefix());
741
+ const beats = [];
742
+ try {
743
+ await this.#scanValues(client, prefix, (key, raw) => {
744
+ const rest = key.slice(prefix.length);
745
+ const sep = rest.indexOf(':');
746
+ if (sep <= 0)
747
+ return;
748
+ const parsed = parseHeartbeatValue(raw);
749
+ beats.push({
750
+ group: rest.slice(0, sep),
751
+ instanceId: rest.slice(sep + 1),
752
+ lastBeatAt: parsed.lastBeatAt,
753
+ ...(parsed.status !== undefined
754
+ ? { status: parsed.status }
755
+ : {}),
756
+ });
757
+ });
758
+ }
759
+ catch (err) {
760
+ this.#onError(err);
761
+ return [];
762
+ }
763
+ return beats;
764
+ }
765
+ /** SCAN every key under `prefix` (never KEYS) and hand each key and its value to `visit`. */
766
+ async #scanValues(client, prefix, visit) {
767
+ let cursor = '0';
768
+ do {
769
+ const [next, keys] = await client.scan(cursor, 'MATCH', `${prefix}*`, 'COUNT', 100);
770
+ cursor = next;
771
+ if (keys.length === 0)
772
+ continue;
773
+ const raws = client.mget
774
+ ? await client.mget(...keys)
775
+ : await Promise.all(keys.map((k) => client.get(k)));
776
+ for (let i = 0; i < keys.length; i += 1) {
777
+ const key = keys[i];
778
+ if (key !== undefined)
779
+ visit(key, raws[i] ?? null);
780
+ }
781
+ } while (cursor !== '0');
782
+ }
478
783
  /** Per-group worker-health: queue depth (waiting+active+delayed+prioritized) + live workers (their
479
784
  * non-expired heartbeat keys). `group` is a routing token — the same value a dispatch targets. */
480
785
  async groupHealth(group) {
@@ -535,7 +840,7 @@ export class BullMQTransport {
535
840
  onStartRun(handler) {
536
841
  if (this.#startRunWorker)
537
842
  return;
538
- this.#startRunWorker = this.#deps.makeWorker(startRunName(this.#effectivePrefix()), (job) => handler(job.data));
843
+ this.#startRunWorker = this.#makeWorker(startRunName(this.#effectivePrefix()), (job) => handler(job.data));
539
844
  }
540
845
  /** tenant → control plane: enqueue a {@link RunRequest} on `${P}-run-request` (job `runRequest`). */
541
846
  async dispatchRunRequest(msg) {
@@ -545,7 +850,7 @@ export class BullMQTransport {
545
850
  onRunRequest(handler) {
546
851
  if (this.#runRequestWorker)
547
852
  return;
548
- this.#runRequestWorker = this.#deps.makeWorker(runRequestName(this.#effectivePrefix()), (job) => handler(job.data));
853
+ this.#runRequestWorker = this.#makeWorker(runRequestName(this.#effectivePrefix()), (job) => handler(job.data));
549
854
  }
550
855
  /** control plane → tenant: publish a correlated {@link RunReply} on `${P}-run-reply` (pub/sub). */
551
856
  async publishRunReply(reply) {
@@ -558,7 +863,7 @@ export class BullMQTransport {
558
863
  if (this.#runReplySub)
559
864
  return; // one subscription per transport
560
865
  const channel = runReplyChannel(this.#effectivePrefix());
561
- const sub = this.#deps.makeRedis();
866
+ const sub = this.#subscriberRedis('run-reply');
562
867
  this.#runReplySub = sub;
563
868
  swallowSubscribe(sub.subscribe(channel), () => this.#closing, 'bullmq run-reply', this.#subscribeErrorSink());
564
869
  sub.on('message', ((msgChannel, payload) => {
@@ -606,7 +911,7 @@ export class BullMQTransport {
606
911
  #tenantEventSubscriber() {
607
912
  if (this.#tenantEventSub)
608
913
  return this.#tenantEventSub;
609
- const sub = this.#deps.makeRedis();
914
+ const sub = this.#subscriberRedis('tenant-event');
610
915
  this.#tenantEventSub = sub;
611
916
  sub.on('message', ((msgChannel, payload) => {
612
917
  const handlers = this.#tenantEventHandlers.get(msgChannel);
@@ -634,6 +939,9 @@ export class BullMQTransport {
634
939
  if (this.#workerHeartbeatTimer)
635
940
  clearInterval(this.#workerHeartbeatTimer);
636
941
  this.#workerHeartbeatTimer = undefined;
942
+ if (this.#pingWatchdogTimer)
943
+ clearInterval(this.#pingWatchdogTimer);
944
+ this.#pingWatchdogTimer = undefined;
637
945
  // Workers first (concurrently with each other), THEN queues: a worker's close() waits for its
638
946
  // in-flight job, which publishes its result/decision through a queue, so that queue must still be
639
947
  // open until every worker has settled. One shared deadline bounds both phases: a graceful
@@ -659,22 +967,6 @@ export class BullMQTransport {
659
967
  this.#tenantEventSub?.disconnect();
660
968
  }
661
969
  }
662
- /**
663
- * Narrow a FAILED task job's `data` to the {@link RemoteTask} fields the terminal-failure bridge needs
664
- * (runId/seq/stepId), WITHOUT an unsafe cast. Returns `undefined` for a payload BullMQ has already
665
- * GC'd or a malformed job — so the bridge safely no-ops instead of publishing a bogus result.
666
- */
667
- function failedTaskIdentity(data) {
668
- if (typeof data !== 'object' || data === null)
669
- return undefined;
670
- if (!('runId' in data) || !('seq' in data) || !('stepId' in data))
671
- return undefined;
672
- const { runId, seq, stepId } = data;
673
- if (typeof runId !== 'string' || typeof seq !== 'number' || typeof stepId !== 'string') {
674
- return undefined;
675
- }
676
- return { runId, seq, stepId };
677
- }
678
970
  /** Resolve when `work` settles or `ms` elapses (the loser is abandoned). `ms <= 0` skips the wait. */
679
971
  async function withTimeout(work, ms) {
680
972
  if (ms <= 0)
@@ -1 +1 @@
1
- {"version":3,"file":"bullmq-transport.js","sourceRoot":"","sources":["../../../../src/transports/bullmq/bullmq-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bullmq-transport.js","sourceRoot":"","sources":["../../../../src/transports/bullmq/bullmq-transport.ts"],"names":[],"mappings":"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"}