@blokjs/runner 0.2.1 → 0.4.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 (159) hide show
  1. package/dist/Blok.js +11 -11
  2. package/dist/Blok.js.map +1 -1
  3. package/dist/Configuration.d.ts +39 -2
  4. package/dist/Configuration.js +337 -28
  5. package/dist/Configuration.js.map +1 -1
  6. package/dist/ConfigurationResolver.d.ts +9 -0
  7. package/dist/ConfigurationResolver.js +17 -1
  8. package/dist/ConfigurationResolver.js.map +1 -1
  9. package/dist/PayloadTooLargeError.d.ts +19 -0
  10. package/dist/PayloadTooLargeError.js +29 -0
  11. package/dist/PayloadTooLargeError.js.map +1 -0
  12. package/dist/RunCancelledError.d.ts +17 -0
  13. package/dist/RunCancelledError.js +25 -0
  14. package/dist/RunCancelledError.js.map +1 -0
  15. package/dist/RunnerSteps.js +363 -23
  16. package/dist/RunnerSteps.js.map +1 -1
  17. package/dist/RuntimeAdapterNode.d.ts +32 -2
  18. package/dist/RuntimeAdapterNode.js +122 -27
  19. package/dist/RuntimeAdapterNode.js.map +1 -1
  20. package/dist/SubworkflowNode.d.ts +75 -0
  21. package/dist/SubworkflowNode.js +221 -0
  22. package/dist/SubworkflowNode.js.map +1 -0
  23. package/dist/TriggerBase.d.ts +128 -0
  24. package/dist/TriggerBase.js +808 -6
  25. package/dist/TriggerBase.js.map +1 -1
  26. package/dist/WaitDispatchRequest.d.ts +38 -0
  27. package/dist/WaitDispatchRequest.js +13 -0
  28. package/dist/WaitDispatchRequest.js.map +1 -0
  29. package/dist/WaitNode.d.ts +23 -0
  30. package/dist/WaitNode.js +26 -0
  31. package/dist/WaitNode.js.map +1 -0
  32. package/dist/adapters/BunRuntimeAdapter.d.ts +1 -0
  33. package/dist/adapters/BunRuntimeAdapter.js +1 -0
  34. package/dist/adapters/BunRuntimeAdapter.js.map +1 -1
  35. package/dist/adapters/DockerRuntimeAdapter.d.ts +2 -1
  36. package/dist/adapters/DockerRuntimeAdapter.js +10 -1
  37. package/dist/adapters/DockerRuntimeAdapter.js.map +1 -1
  38. package/dist/adapters/HttpRuntimeAdapter.d.ts +26 -5
  39. package/dist/adapters/HttpRuntimeAdapter.js +97 -16
  40. package/dist/adapters/HttpRuntimeAdapter.js.map +1 -1
  41. package/dist/adapters/NodeJsRuntimeAdapter.d.ts +1 -0
  42. package/dist/adapters/NodeJsRuntimeAdapter.js +1 -0
  43. package/dist/adapters/NodeJsRuntimeAdapter.js.map +1 -1
  44. package/dist/adapters/RuntimeAdapter.d.ts +17 -0
  45. package/dist/adapters/WasmRuntimeAdapter.d.ts +1 -0
  46. package/dist/adapters/WasmRuntimeAdapter.js +1 -0
  47. package/dist/adapters/WasmRuntimeAdapter.js.map +1 -1
  48. package/dist/adapters/grpc/GrpcChannelOptions.d.ts +31 -0
  49. package/dist/adapters/grpc/GrpcChannelOptions.js +68 -0
  50. package/dist/adapters/grpc/GrpcChannelOptions.js.map +1 -0
  51. package/dist/adapters/grpc/GrpcClientPool.d.ts +43 -0
  52. package/dist/adapters/grpc/GrpcClientPool.js +89 -0
  53. package/dist/adapters/grpc/GrpcClientPool.js.map +1 -0
  54. package/dist/adapters/grpc/GrpcCodec.d.ts +226 -0
  55. package/dist/adapters/grpc/GrpcCodec.js +275 -0
  56. package/dist/adapters/grpc/GrpcCodec.js.map +1 -0
  57. package/dist/adapters/grpc/GrpcErrors.d.ts +59 -0
  58. package/dist/adapters/grpc/GrpcErrors.js +190 -0
  59. package/dist/adapters/grpc/GrpcErrors.js.map +1 -0
  60. package/dist/adapters/grpc/GrpcHealthChecker.d.ts +69 -0
  61. package/dist/adapters/grpc/GrpcHealthChecker.js +96 -0
  62. package/dist/adapters/grpc/GrpcHealthChecker.js.map +1 -0
  63. package/dist/adapters/grpc/GrpcRuntimeAdapter.d.ts +98 -0
  64. package/dist/adapters/grpc/GrpcRuntimeAdapter.js +478 -0
  65. package/dist/adapters/grpc/GrpcRuntimeAdapter.js.map +1 -0
  66. package/dist/adapters/grpc/index.d.ts +13 -0
  67. package/dist/adapters/grpc/index.js +14 -0
  68. package/dist/adapters/grpc/index.js.map +1 -0
  69. package/dist/adapters/grpc/proto/blok/runtime/v1/runtime.proto +302 -0
  70. package/dist/adapters/grpc/types.d.ts +97 -0
  71. package/dist/adapters/grpc/types.js +41 -0
  72. package/dist/adapters/grpc/types.js.map +1 -0
  73. package/dist/adapters/transport.d.ts +108 -0
  74. package/dist/adapters/transport.js +196 -0
  75. package/dist/adapters/transport.js.map +1 -0
  76. package/dist/concurrency/ConcurrencyBackend.d.ts +61 -0
  77. package/dist/concurrency/ConcurrencyBackend.js +20 -0
  78. package/dist/concurrency/ConcurrencyBackend.js.map +1 -0
  79. package/dist/concurrency/ConcurrencyLimitError.d.ts +37 -0
  80. package/dist/concurrency/ConcurrencyLimitError.js +16 -0
  81. package/dist/concurrency/ConcurrencyLimitError.js.map +1 -0
  82. package/dist/concurrency/NatsKvConcurrencyBackend.d.ts +64 -0
  83. package/dist/concurrency/NatsKvConcurrencyBackend.js +297 -0
  84. package/dist/concurrency/NatsKvConcurrencyBackend.js.map +1 -0
  85. package/dist/concurrency/QueueExpiredError.d.ts +40 -0
  86. package/dist/concurrency/QueueExpiredError.js +15 -0
  87. package/dist/concurrency/QueueExpiredError.js.map +1 -0
  88. package/dist/concurrency/createConcurrencyBackend.d.ts +23 -0
  89. package/dist/concurrency/createConcurrencyBackend.js +34 -0
  90. package/dist/concurrency/createConcurrencyBackend.js.map +1 -0
  91. package/dist/concurrency/readConcurrencyConfig.d.ts +60 -0
  92. package/dist/concurrency/readConcurrencyConfig.js +60 -0
  93. package/dist/concurrency/readConcurrencyConfig.js.map +1 -0
  94. package/dist/idempotency/resolveIdempotencyKey.d.ts +20 -0
  95. package/dist/idempotency/resolveIdempotencyKey.js +37 -0
  96. package/dist/idempotency/resolveIdempotencyKey.js.map +1 -0
  97. package/dist/index.d.ts +35 -3
  98. package/dist/index.js +61 -2
  99. package/dist/index.js.map +1 -1
  100. package/dist/monitoring/ConcurrencyMetrics.d.ts +56 -0
  101. package/dist/monitoring/ConcurrencyMetrics.js +107 -0
  102. package/dist/monitoring/ConcurrencyMetrics.js.map +1 -0
  103. package/dist/monitoring/JanitorMetrics.d.ts +27 -0
  104. package/dist/monitoring/JanitorMetrics.js +48 -0
  105. package/dist/monitoring/JanitorMetrics.js.map +1 -0
  106. package/dist/scheduling/DebounceCoordinator.d.ts +88 -0
  107. package/dist/scheduling/DebounceCoordinator.js +141 -0
  108. package/dist/scheduling/DebounceCoordinator.js.map +1 -0
  109. package/dist/scheduling/DeferredDispatchSignal.d.ts +50 -0
  110. package/dist/scheduling/DeferredDispatchSignal.js +14 -0
  111. package/dist/scheduling/DeferredDispatchSignal.js.map +1 -0
  112. package/dist/scheduling/DeferredRunScheduler.d.ts +68 -0
  113. package/dist/scheduling/DeferredRunScheduler.js +154 -0
  114. package/dist/scheduling/DeferredRunScheduler.js.map +1 -0
  115. package/dist/scheduling/readSchedulingConfig.d.ts +24 -0
  116. package/dist/scheduling/readSchedulingConfig.js +52 -0
  117. package/dist/scheduling/readSchedulingConfig.js.map +1 -0
  118. package/dist/testing/WorkflowTestRunner.js +12 -0
  119. package/dist/testing/WorkflowTestRunner.js.map +1 -1
  120. package/dist/timeouts/StepTimeoutError.d.ts +22 -0
  121. package/dist/timeouts/StepTimeoutError.js +31 -0
  122. package/dist/timeouts/StepTimeoutError.js.map +1 -0
  123. package/dist/tracing/InMemoryRunStore.d.ts +28 -1
  124. package/dist/tracing/InMemoryRunStore.js +150 -0
  125. package/dist/tracing/InMemoryRunStore.js.map +1 -1
  126. package/dist/tracing/Janitor.d.ts +70 -0
  127. package/dist/tracing/Janitor.js +150 -0
  128. package/dist/tracing/Janitor.js.map +1 -0
  129. package/dist/tracing/PostgresRunStore.d.ts +30 -0
  130. package/dist/tracing/PostgresRunStore.js +435 -3
  131. package/dist/tracing/PostgresRunStore.js.map +1 -1
  132. package/dist/tracing/RunStore.d.ts +100 -1
  133. package/dist/tracing/RunTracker.d.ts +261 -11
  134. package/dist/tracing/RunTracker.js +691 -11
  135. package/dist/tracing/RunTracker.js.map +1 -1
  136. package/dist/tracing/SqliteRunStore.d.ts +23 -1
  137. package/dist/tracing/SqliteRunStore.js +421 -6
  138. package/dist/tracing/SqliteRunStore.js.map +1 -1
  139. package/dist/tracing/TraceRouter.d.ts +20 -2
  140. package/dist/tracing/TraceRouter.js +494 -9
  141. package/dist/tracing/TraceRouter.js.map +1 -1
  142. package/dist/tracing/sanitize.d.ts +11 -0
  143. package/dist/tracing/sanitize.js +29 -0
  144. package/dist/tracing/sanitize.js.map +1 -1
  145. package/dist/tracing/types.d.ts +429 -11
  146. package/dist/types/GlobalOptions.d.ts +9 -2
  147. package/dist/utils/createChildContext.d.ts +32 -0
  148. package/dist/utils/createChildContext.js +113 -0
  149. package/dist/utils/createChildContext.js.map +1 -0
  150. package/dist/workflow/PersistenceHelper.d.ts +46 -0
  151. package/dist/workflow/PersistenceHelper.js +57 -0
  152. package/dist/workflow/PersistenceHelper.js.map +1 -0
  153. package/dist/workflow/WorkflowNormalizer.d.ts +79 -0
  154. package/dist/workflow/WorkflowNormalizer.js +486 -0
  155. package/dist/workflow/WorkflowNormalizer.js.map +1 -0
  156. package/dist/workflow/WorkflowRegistry.d.ts +64 -0
  157. package/dist/workflow/WorkflowRegistry.js +81 -0
  158. package/dist/workflow/WorkflowRegistry.js.map +1 -0
  159. package/package.json +10 -7
@@ -156,6 +156,101 @@ export class PostgresRunStore {
156
156
  `);
157
157
  },
158
158
  },
159
+ {
160
+ // Tier 2 follow-up · durable schema for Tier 1 idempotency
161
+ // cache, Tier 2 #6 concurrency locks, and Tier 2 #5+#7
162
+ // scheduled dispatches. Previously these all delegated to
163
+ // the in-memory mirror only, so a process restart lost the
164
+ // state. The hybrid pattern (sync memory + async PG mirror)
165
+ // matches the existing workflow_runs/node_runs flow.
166
+ version: 3,
167
+ up: async () => {
168
+ await client.query(`
169
+ CREATE TABLE IF NOT EXISTS idempotency_cache (
170
+ workflow_name TEXT NOT NULL,
171
+ step_id TEXT NOT NULL,
172
+ idempotency_key TEXT NOT NULL,
173
+ data_json JSONB NOT NULL,
174
+ cached_at BIGINT NOT NULL,
175
+ expires_at BIGINT,
176
+ source_run_id TEXT NOT NULL,
177
+ source_node_run_id TEXT NOT NULL,
178
+ PRIMARY KEY (workflow_name, step_id, idempotency_key)
179
+ )
180
+ `);
181
+ await client.query("CREATE INDEX IF NOT EXISTS idx_idem_cache_expires ON idempotency_cache(expires_at)");
182
+ await client.query(`
183
+ CREATE TABLE IF NOT EXISTS concurrency_locks (
184
+ workflow_name TEXT NOT NULL,
185
+ concurrency_key TEXT NOT NULL,
186
+ run_id TEXT NOT NULL,
187
+ acquired_at BIGINT NOT NULL,
188
+ expires_at BIGINT NOT NULL,
189
+ PRIMARY KEY (workflow_name, concurrency_key, run_id)
190
+ )
191
+ `);
192
+ await client.query("CREATE INDEX IF NOT EXISTS idx_locks_expires ON concurrency_locks(expires_at)");
193
+ await client.query("CREATE INDEX IF NOT EXISTS idx_locks_workflow_key ON concurrency_locks(workflow_name, concurrency_key)");
194
+ await client.query(`
195
+ CREATE TABLE IF NOT EXISTS scheduled_dispatches (
196
+ run_id TEXT PRIMARY KEY,
197
+ workflow_name TEXT NOT NULL,
198
+ trigger_type TEXT NOT NULL,
199
+ scheduled_at BIGINT NOT NULL,
200
+ expires_at BIGINT,
201
+ dispatch_status TEXT NOT NULL,
202
+ payload_json JSONB NOT NULL,
203
+ created_at BIGINT NOT NULL
204
+ )
205
+ `);
206
+ await client.query("CREATE INDEX IF NOT EXISTS idx_scheduled_dispatches_at ON scheduled_dispatches(scheduled_at)");
207
+ await client.query("CREATE INDEX IF NOT EXISTS idx_scheduled_dispatches_trigger ON scheduled_dispatches(trigger_type, workflow_name)");
208
+ },
209
+ },
210
+ {
211
+ // PR 4 — wait.for / wait.until step primitive needs a
212
+ // resume cursor so dispatchDeferred re-entry skips
213
+ // already-completed pre-wait steps. Mirror sqlite v10.
214
+ version: 4,
215
+ up: async () => {
216
+ await client.query("ALTER TABLE workflow_runs ADD COLUMN IF NOT EXISTS last_completed_step_index INTEGER");
217
+ },
218
+ },
219
+ {
220
+ // PR 1-5 polish · catch up to sqlite's workflow_runs columns.
221
+ // PG migrations historically lagged: v3 added the cache /
222
+ // locks / dispatches tables and v4 added
223
+ // `last_completed_step_index`, but the columns sqlite added
224
+ // across migrations 3 / 5 / 6 / 8 (`environment`,
225
+ // `replay_of`, `parent_run_id`, `parent_node_run_id`,
226
+ // `scheduled_at`, `expires_at`, `debounce_key`,
227
+ // `debounce_mode`, `ping_count`) were never mirrored.
228
+ // `saveRun`/`updateRun`/`rowToRun` silently dropped them
229
+ // across restarts, so PG-backed deployments lost replay
230
+ // lineage, sub-workflow lineage, and ALL Tier 2 #5+#7
231
+ // scheduling state on every restart. This migration adds
232
+ // the columns + indexes so PG matches sqlite. Pre-existing
233
+ // rows get NULL on every new column (backward-compat;
234
+ // `rowToRun` reads NULL `environment` as "production" to
235
+ // match sqlite's legacy default).
236
+ version: 5,
237
+ up: async () => {
238
+ await client.query("ALTER TABLE workflow_runs ADD COLUMN IF NOT EXISTS environment TEXT");
239
+ await client.query("ALTER TABLE workflow_runs ADD COLUMN IF NOT EXISTS replay_of TEXT");
240
+ await client.query("ALTER TABLE workflow_runs ADD COLUMN IF NOT EXISTS parent_run_id TEXT");
241
+ await client.query("ALTER TABLE workflow_runs ADD COLUMN IF NOT EXISTS parent_node_run_id TEXT");
242
+ await client.query("ALTER TABLE workflow_runs ADD COLUMN IF NOT EXISTS scheduled_at BIGINT");
243
+ await client.query("ALTER TABLE workflow_runs ADD COLUMN IF NOT EXISTS expires_at BIGINT");
244
+ await client.query("ALTER TABLE workflow_runs ADD COLUMN IF NOT EXISTS debounce_key TEXT");
245
+ await client.query("ALTER TABLE workflow_runs ADD COLUMN IF NOT EXISTS debounce_mode TEXT");
246
+ await client.query("ALTER TABLE workflow_runs ADD COLUMN IF NOT EXISTS ping_count INTEGER");
247
+ await client.query("CREATE INDEX IF NOT EXISTS idx_runs_environment ON workflow_runs(environment)");
248
+ await client.query("CREATE INDEX IF NOT EXISTS idx_runs_replay_of ON workflow_runs(replay_of)");
249
+ await client.query("CREATE INDEX IF NOT EXISTS idx_runs_parent_run ON workflow_runs(parent_run_id)");
250
+ await client.query("CREATE INDEX IF NOT EXISTS idx_runs_scheduled_at ON workflow_runs(scheduled_at)");
251
+ await client.query("CREATE INDEX IF NOT EXISTS idx_runs_debounce_key ON workflow_runs(workflow_name, debounce_key)");
252
+ },
253
+ },
159
254
  ];
160
255
  for (const m of migrations) {
161
256
  if (!applied.has(m.version)) {
@@ -176,6 +271,20 @@ export class PostgresRunStore {
176
271
  client.release();
177
272
  }
178
273
  }
274
+ /**
275
+ * Review fix-up · CONCERN-2. Per-table cap on `loadRecent`'s rehydration
276
+ * queries. Without it, a deployment with 1M+ idempotency cache entries
277
+ * spends seconds + memory on every boot loading rows it'll never read
278
+ * before the Janitor sweeps them. Default 100K rows per table — well
279
+ * above any reasonable hot-set size yet bounded for boot latency.
280
+ */
281
+ getLoadRecentLimit() {
282
+ const raw = process.env.BLOK_PG_LOADRECENT_LIMIT;
283
+ if (!raw || !/^\d+$/.test(raw))
284
+ return 100_000;
285
+ const n = Number(raw);
286
+ return n > 0 ? n : 100_000;
287
+ }
179
288
  async loadRecent() {
180
289
  const client = await this.pool.connect();
181
290
  try {
@@ -207,6 +316,85 @@ export class PostgresRunStore {
207
316
  for (const row of dashRows) {
208
317
  this.memory.saveDashboard(this.rowToDashboard(row));
209
318
  }
319
+ // Tier 2 follow-up · rehydrate idempotency cache (un-expired entries only).
320
+ //
321
+ // Review fix-up · CONCERN-2. Add `ORDER BY cached_at DESC LIMIT N`.
322
+ // Newest cache entries are most likely to be re-hit by the next
323
+ // idempotent step; older ones the Janitor will sweep on its next
324
+ // pass. Without this LIMIT, deployments with 1M+ rows OOM at boot.
325
+ const now = Date.now();
326
+ const loadRecentLimit = this.getLoadRecentLimit();
327
+ try {
328
+ const { rows: idemRows } = await client.query(`SELECT * FROM idempotency_cache
329
+ WHERE expires_at IS NULL OR expires_at > $1
330
+ ORDER BY cached_at DESC
331
+ LIMIT $2`, [now, loadRecentLimit]);
332
+ for (const row of idemRows) {
333
+ this.memory.setIdempotencyCache(row.workflow_name, row.step_id, row.idempotency_key, {
334
+ data: typeof row.data_json === "string" ? JSON.parse(row.data_json) : row.data_json,
335
+ cachedAt: Number(row.cached_at),
336
+ expiresAt: row.expires_at !== null ? Number(row.expires_at) : null,
337
+ sourceRunId: row.source_run_id,
338
+ sourceNodeRunId: row.source_node_run_id,
339
+ });
340
+ }
341
+ }
342
+ catch (err) {
343
+ // Pre-v3 PG schema may not have the table yet — fall through quietly.
344
+ if (!String(err.message).match(/relation .* does not exist/i)) {
345
+ console.error("[PostgresRunStore] idempotency_cache load failed:", err.message);
346
+ }
347
+ }
348
+ // Tier 2 follow-up · rehydrate concurrency leases (un-expired only).
349
+ //
350
+ // Review fix-up · CONCERN-2. Add `ORDER BY expires_at DESC LIMIT N`.
351
+ // Locks with the longest remaining lease are most likely still
352
+ // active and worth restoring; expired ones are filtered already.
353
+ try {
354
+ const { rows: lockRows } = await client.query(`SELECT * FROM concurrency_locks
355
+ WHERE expires_at > $1
356
+ ORDER BY expires_at DESC
357
+ LIMIT $2`, [now, loadRecentLimit]);
358
+ for (const row of lockRows) {
359
+ this.memory.acquireConcurrencySlot(row.workflow_name, row.concurrency_key, Number.MAX_SAFE_INTEGER, // skip the limit check — we're restoring, not granting
360
+ row.run_id, Number(row.expires_at));
361
+ }
362
+ }
363
+ catch (err) {
364
+ if (!String(err.message).match(/relation .* does not exist/i)) {
365
+ console.error("[PostgresRunStore] concurrency_locks load failed:", err.message);
366
+ }
367
+ }
368
+ // Tier 2 follow-up · rehydrate scheduled dispatches.
369
+ // PR 2 A5 — ORDER BY scheduled_at ASC so past-due dispatches
370
+ // hydrate first. recoverDispatches's past-due → fire-immediately
371
+ // path benefits from the ordering.
372
+ //
373
+ // Review fix-up · CONCERN-2. Add LIMIT for defense-in-depth.
374
+ // Even with the 1MB payload cap (PR 2 A4), 100K dispatches × 1MB
375
+ // = 100GB of JSON-decode work at boot. Past-due first means the
376
+ // LIMIT caps how many recover per boot; the rest surface on the
377
+ // Janitor's next sweep or a subsequent boot.
378
+ try {
379
+ const { rows: dispatchRows } = await client.query("SELECT * FROM scheduled_dispatches ORDER BY scheduled_at ASC LIMIT $1", [loadRecentLimit]);
380
+ for (const row of dispatchRows) {
381
+ this.memory.upsertScheduledDispatch({
382
+ runId: row.run_id,
383
+ workflowName: row.workflow_name,
384
+ triggerType: row.trigger_type,
385
+ scheduledAt: Number(row.scheduled_at),
386
+ expiresAt: row.expires_at !== null ? Number(row.expires_at) : undefined,
387
+ dispatchStatus: row.dispatch_status,
388
+ payload: typeof row.payload_json === "string" ? JSON.parse(row.payload_json) : row.payload_json,
389
+ createdAt: Number(row.created_at),
390
+ });
391
+ }
392
+ }
393
+ catch (err) {
394
+ if (!String(err.message).match(/relation .* does not exist/i)) {
395
+ console.error("[PostgresRunStore] scheduled_dispatches load failed:", err.message);
396
+ }
397
+ }
210
398
  }
211
399
  finally {
212
400
  client.release();
@@ -215,12 +403,22 @@ export class PostgresRunStore {
215
403
  // === Writes (sync via memory + async queue to PG) ===
216
404
  saveRun(run) {
217
405
  this.memory.saveRun(run);
406
+ // PR 1-5 polish · column set mirrors sqlite saveRun (24 columns).
407
+ // PG migration v5 added the trailing 9 (environment / replay_of /
408
+ // parent_run_id / parent_node_run_id / scheduled_at / expires_at /
409
+ // debounce_key / debounce_mode / ping_count); PG migration v4 added
410
+ // last_completed_step_index. Without these the PG mirror silently
411
+ // dropped scheduling + lineage + resume-cursor state across restart.
218
412
  this.enqueueWrite(() => this.pool
219
413
  .query(`INSERT INTO workflow_runs
220
414
  (id, workflow_name, workflow_path, trigger_type, trigger_summary,
221
415
  status, started_at, finished_at, duration_ms, error_json,
222
- tags_json, metadata_json, node_count, completed_nodes)
223
- VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)
416
+ tags_json, metadata_json, node_count, completed_nodes,
417
+ environment, replay_of, parent_run_id, parent_node_run_id,
418
+ scheduled_at, expires_at, debounce_key, debounce_mode,
419
+ ping_count, last_completed_step_index)
420
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14,
421
+ $15, $16, $17, $18, $19, $20, $21, $22, $23, $24)
224
422
  ON CONFLICT (id) DO UPDATE SET
225
423
  status = EXCLUDED.status,
226
424
  finished_at = EXCLUDED.finished_at,
@@ -228,7 +426,17 @@ export class PostgresRunStore {
228
426
  error_json = EXCLUDED.error_json,
229
427
  tags_json = EXCLUDED.tags_json,
230
428
  metadata_json = EXCLUDED.metadata_json,
231
- completed_nodes = EXCLUDED.completed_nodes`, [
429
+ completed_nodes = EXCLUDED.completed_nodes,
430
+ environment = EXCLUDED.environment,
431
+ replay_of = EXCLUDED.replay_of,
432
+ parent_run_id = EXCLUDED.parent_run_id,
433
+ parent_node_run_id = EXCLUDED.parent_node_run_id,
434
+ scheduled_at = EXCLUDED.scheduled_at,
435
+ expires_at = EXCLUDED.expires_at,
436
+ debounce_key = EXCLUDED.debounce_key,
437
+ debounce_mode = EXCLUDED.debounce_mode,
438
+ ping_count = EXCLUDED.ping_count,
439
+ last_completed_step_index = EXCLUDED.last_completed_step_index`, [
232
440
  run.id,
233
441
  run.workflowName,
234
442
  run.workflowPath,
@@ -243,6 +451,16 @@ export class PostgresRunStore {
243
451
  run.metadata ? JSON.stringify(run.metadata) : null,
244
452
  run.nodeCount,
245
453
  run.completedNodes,
454
+ run.environment ?? null,
455
+ run.replayOf ?? null,
456
+ run.parentRunId ?? null,
457
+ run.parentNodeRunId ?? null,
458
+ run.scheduledAt ?? null,
459
+ run.expiresAt ?? null,
460
+ run.debounceKey ?? null,
461
+ run.debounceMode ?? null,
462
+ run.pingCount ?? null,
463
+ run.lastCompletedStepIndex ?? null,
246
464
  ])
247
465
  .then(() => { }));
248
466
  }
@@ -279,6 +497,55 @@ export class PostgresRunStore {
279
497
  setClauses.push(`metadata_json = $${paramIdx++}`);
280
498
  values.push(JSON.stringify(updates.metadata));
281
499
  }
500
+ // PR 1-5 polish · scheduling, lineage, and resume-cursor fields
501
+ // updateRun must mirror sqlite. Each marker tracker method
502
+ // (markRunDelayed / markRunQueued / markRunDebounced / markRunExpired
503
+ // / recordDebouncePing / transitionRunToRunning / RunnerSteps wait
504
+ // branch) updates one or more of these. Without these clauses the
505
+ // in-memory mirror has the value but PG keeps the original (or
506
+ // NULL).
507
+ if (updates.replayOf !== undefined) {
508
+ setClauses.push(`replay_of = $${paramIdx++}`);
509
+ values.push(updates.replayOf);
510
+ }
511
+ if (updates.parentRunId !== undefined) {
512
+ setClauses.push(`parent_run_id = $${paramIdx++}`);
513
+ values.push(updates.parentRunId);
514
+ }
515
+ if (updates.parentNodeRunId !== undefined) {
516
+ setClauses.push(`parent_node_run_id = $${paramIdx++}`);
517
+ values.push(updates.parentNodeRunId);
518
+ }
519
+ if (updates.scheduledAt !== undefined) {
520
+ setClauses.push(`scheduled_at = $${paramIdx++}`);
521
+ values.push(updates.scheduledAt);
522
+ }
523
+ if (updates.expiresAt !== undefined) {
524
+ setClauses.push(`expires_at = $${paramIdx++}`);
525
+ values.push(updates.expiresAt);
526
+ }
527
+ if (updates.debounceKey !== undefined) {
528
+ setClauses.push(`debounce_key = $${paramIdx++}`);
529
+ values.push(updates.debounceKey);
530
+ }
531
+ if (updates.debounceMode !== undefined) {
532
+ setClauses.push(`debounce_mode = $${paramIdx++}`);
533
+ values.push(updates.debounceMode);
534
+ }
535
+ if (updates.pingCount !== undefined) {
536
+ setClauses.push(`ping_count = $${paramIdx++}`);
537
+ values.push(updates.pingCount);
538
+ }
539
+ if (updates.lastCompletedStepIndex !== undefined) {
540
+ setClauses.push(`last_completed_step_index = $${paramIdx++}`);
541
+ values.push(updates.lastCompletedStepIndex);
542
+ }
543
+ // `transitionRunToRunning` (Tier 2 #5+#7) preserves the original
544
+ // startedAt by updating it. Mirror sqlite, which also accepts it.
545
+ if (updates.startedAt !== undefined) {
546
+ setClauses.push(`started_at = $${paramIdx++}`);
547
+ values.push(updates.startedAt);
548
+ }
282
549
  if (setClauses.length === 0)
283
550
  return;
284
551
  values.push(runId);
@@ -402,6 +669,12 @@ export class PostgresRunStore {
402
669
  getNodeRun(nodeRunId) {
403
670
  return this.memory.getNodeRun(nodeRunId);
404
671
  }
672
+ getRunsByParent(parentRunId) {
673
+ // Tier 2 sub-workflow lineage. Same in-memory delegation strategy
674
+ // as the idempotency cache — durable PG schema for parent_run_id
675
+ // is deferred to a follow-up.
676
+ return this.memory.getRunsByParent(parentRunId);
677
+ }
405
678
  getEvents(runId, since) {
406
679
  return this.memory.getEvents(runId, since);
407
680
  }
@@ -489,6 +762,23 @@ export class PostgresRunStore {
489
762
  await this.pool.query("DELETE FROM node_runs");
490
763
  await this.pool.query("DELETE FROM workflow_runs");
491
764
  await this.pool.query("DELETE FROM dashboards");
765
+ // Tier 2 follow-up — wipe durable tables too. Wrapped in
766
+ // individual try blocks so a missing table (pre-v3 schema) on
767
+ // one doesn't abort the others.
768
+ for (const sql of [
769
+ "DELETE FROM idempotency_cache",
770
+ "DELETE FROM concurrency_locks",
771
+ "DELETE FROM scheduled_dispatches",
772
+ ]) {
773
+ try {
774
+ await this.pool.query(sql);
775
+ }
776
+ catch (err) {
777
+ if (!String(err.message).match(/relation .* does not exist/i)) {
778
+ console.error(`[PostgresRunStore] ${sql} failed:`, err.message);
779
+ }
780
+ }
781
+ }
492
782
  });
493
783
  return count;
494
784
  }
@@ -513,6 +803,133 @@ export class PostgresRunStore {
513
803
  });
514
804
  this.closed = true;
515
805
  }
806
+ // === Idempotency cache (Tier 1) ===
807
+ //
808
+ // PG durable cache is out of scope for this PR — delegate to the
809
+ // in-memory layer this store already uses for hot reads. Same-process
810
+ // hits work exactly like the SQLite store; cross-process / cross-restart
811
+ // hits are deferred to a follow-up PG schema migration. Operators
812
+ // running PG today retain pre-Phase-3 behaviour (no caching) on a fresh
813
+ // process and gain in-memory caching within a single process lifetime.
814
+ //
815
+ // Tier 2 follow-up (migration v3) — sync reads stay on the in-memory
816
+ // mirror; writes async-persist to PG. On boot, `loadRecent()` rehydrates
817
+ // the in-memory cache from PG so deferred dispatches + idempotency
818
+ // entries + concurrency leases survive restarts.
819
+ getIdempotencyCache(workflowName, stepId, key) {
820
+ return this.memory.getIdempotencyCache(workflowName, stepId, key);
821
+ }
822
+ setIdempotencyCache(workflowName, stepId, key, entry) {
823
+ this.memory.setIdempotencyCache(workflowName, stepId, key, entry);
824
+ this.enqueueWrite(() => this.pool
825
+ .query(`INSERT INTO idempotency_cache
826
+ (workflow_name, step_id, idempotency_key, data_json,
827
+ cached_at, expires_at, source_run_id, source_node_run_id)
828
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
829
+ ON CONFLICT (workflow_name, step_id, idempotency_key) DO UPDATE SET
830
+ data_json = EXCLUDED.data_json,
831
+ cached_at = EXCLUDED.cached_at,
832
+ expires_at = EXCLUDED.expires_at,
833
+ source_run_id = EXCLUDED.source_run_id,
834
+ source_node_run_id = EXCLUDED.source_node_run_id`, [
835
+ workflowName,
836
+ stepId,
837
+ key,
838
+ JSON.stringify(entry.data),
839
+ entry.cachedAt,
840
+ entry.expiresAt,
841
+ entry.sourceRunId,
842
+ entry.sourceNodeRunId,
843
+ ])
844
+ .then(() => { }));
845
+ }
846
+ purgeExpiredIdempotencyCache(now) {
847
+ const removed = this.memory.purgeExpiredIdempotencyCache(now);
848
+ this.enqueueWrite(() => this.pool
849
+ .query("DELETE FROM idempotency_cache WHERE expires_at IS NOT NULL AND expires_at <= $1", [now])
850
+ .then(() => { }));
851
+ return removed;
852
+ }
853
+ // === Concurrency gating (Tier 2 #6) ===
854
+ // Sync grants happen on the in-memory mirror; PG mirror is async-only.
855
+ // Cross-process coordination via the gate itself requires the dedicated
856
+ // `BLOK_CONCURRENCY_BACKEND=nats-kv` backend (Tier 2 #6 follow-up).
857
+ // PG persistence here is purely for crash-recovery — boot loads active
858
+ // (un-expired) leases back into memory so a process restart doesn't
859
+ // over-grant.
860
+ acquireConcurrencySlot(workflowName, concurrencyKey, concurrencyLimit, runId, leaseExpiresAt) {
861
+ const result = this.memory.acquireConcurrencySlot(workflowName, concurrencyKey, concurrencyLimit, runId, leaseExpiresAt);
862
+ if (result.acquired) {
863
+ this.enqueueWrite(() => this.pool
864
+ .query(`INSERT INTO concurrency_locks
865
+ (workflow_name, concurrency_key, run_id, acquired_at, expires_at)
866
+ VALUES ($1, $2, $3, $4, $5)
867
+ ON CONFLICT (workflow_name, concurrency_key, run_id) DO UPDATE SET
868
+ expires_at = EXCLUDED.expires_at`, [workflowName, concurrencyKey, runId, Date.now(), leaseExpiresAt])
869
+ .then(() => { }));
870
+ }
871
+ return result;
872
+ }
873
+ releaseConcurrencySlot(workflowName, concurrencyKey, runId) {
874
+ this.memory.releaseConcurrencySlot(workflowName, concurrencyKey, runId);
875
+ this.enqueueWrite(() => this.pool
876
+ .query("DELETE FROM concurrency_locks WHERE workflow_name = $1 AND concurrency_key = $2 AND run_id = $3", [
877
+ workflowName,
878
+ concurrencyKey,
879
+ runId,
880
+ ])
881
+ .then(() => { }));
882
+ }
883
+ purgeExpiredConcurrencySlots(now) {
884
+ const removed = this.memory.purgeExpiredConcurrencySlots(now);
885
+ this.enqueueWrite(() => this.pool.query("DELETE FROM concurrency_locks WHERE expires_at <= $1", [now]).then(() => { }));
886
+ return removed;
887
+ }
888
+ getConcurrencySnapshot(now) {
889
+ return this.memory.getConcurrencySnapshot(now);
890
+ }
891
+ // === Durable scheduling (Tier 2 #5+#7 follow-up) ===
892
+ // Tier 2 follow-up (migration v3) — PG mirror is now real durable
893
+ // storage. Boot recovery (`HttpTrigger.recoverDispatches`) reads the
894
+ // in-memory mirror, which is rehydrated from PG on init.
895
+ upsertScheduledDispatch(row) {
896
+ this.memory.upsertScheduledDispatch(row);
897
+ this.enqueueWrite(() => this.pool
898
+ .query(`INSERT INTO scheduled_dispatches
899
+ (run_id, workflow_name, trigger_type, scheduled_at, expires_at,
900
+ dispatch_status, payload_json, created_at)
901
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
902
+ ON CONFLICT (run_id) DO UPDATE SET
903
+ scheduled_at = EXCLUDED.scheduled_at,
904
+ expires_at = EXCLUDED.expires_at,
905
+ dispatch_status = EXCLUDED.dispatch_status,
906
+ payload_json = EXCLUDED.payload_json`, [
907
+ row.runId,
908
+ row.workflowName,
909
+ row.triggerType,
910
+ row.scheduledAt,
911
+ row.expiresAt ?? null,
912
+ row.dispatchStatus,
913
+ JSON.stringify(row.payload ?? null),
914
+ row.createdAt,
915
+ ])
916
+ .then(() => { }));
917
+ }
918
+ deleteScheduledDispatch(runId) {
919
+ const removed = this.memory.deleteScheduledDispatch(runId);
920
+ this.enqueueWrite(() => this.pool.query("DELETE FROM scheduled_dispatches WHERE run_id = $1", [runId]).then(() => { }));
921
+ return removed;
922
+ }
923
+ getScheduledDispatches(opts) {
924
+ return this.memory.getScheduledDispatches(opts);
925
+ }
926
+ purgeExpiredScheduledDispatches(now) {
927
+ const removed = this.memory.purgeExpiredScheduledDispatches(now);
928
+ this.enqueueWrite(() => this.pool
929
+ .query("DELETE FROM scheduled_dispatches WHERE expires_at IS NOT NULL AND expires_at < $1", [now])
930
+ .then(() => { }));
931
+ return removed;
932
+ }
516
933
  // === Write Queue ===
517
934
  enqueueWrite(fn) {
518
935
  if (this.closed)
@@ -565,6 +982,21 @@ export class PostgresRunStore {
565
982
  metadata: row.metadata_json ? parseJson(row.metadata_json) : undefined,
566
983
  nodeCount: Number(row.node_count),
567
984
  completedNodes: Number(row.completed_nodes),
985
+ // PR 1-5 polish · pre-v5 PG rows have NULL on the columns added
986
+ // by migration v5. Mirror sqlite's `rowToRun`: NULL `environment`
987
+ // reads as "production" (the legacy default scope) so historical
988
+ // data still surfaces under the EnvChip default. Every other new
989
+ // column maps NULL → undefined.
990
+ environment: (row.environment ?? "production"),
991
+ replayOf: row.replay_of ?? undefined,
992
+ parentRunId: row.parent_run_id ?? undefined,
993
+ parentNodeRunId: row.parent_node_run_id ?? undefined,
994
+ scheduledAt: row.scheduled_at != null ? Number(row.scheduled_at) : undefined,
995
+ expiresAt: row.expires_at != null ? Number(row.expires_at) : undefined,
996
+ debounceKey: row.debounce_key ?? undefined,
997
+ debounceMode: (row.debounce_mode ?? undefined),
998
+ pingCount: row.ping_count != null ? Number(row.ping_count) : undefined,
999
+ lastCompletedStepIndex: row.last_completed_step_index != null ? Number(row.last_completed_step_index) : undefined,
568
1000
  };
569
1001
  }
570
1002
  rowToNodeRun(row) {
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresRunStore.js","sourceRoot":"","sources":["../../src/tracing/PostgresRunStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresRunStore.js","sourceRoot":"","sources":["../../src/tracing/PostgresRunStore.ts"],"names":[],"mappings":"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"}