@getrift/rift 0.1.0-beta.16 → 0.1.0-beta.18

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 (141) hide show
  1. package/dist/src/capture/auto-capture.d.ts +7 -0
  2. package/dist/src/capture/auto-capture.d.ts.map +1 -1
  3. package/dist/src/capture/auto-capture.js +27 -11
  4. package/dist/src/capture/auto-capture.js.map +1 -1
  5. package/dist/src/capture/observability.d.ts +6 -0
  6. package/dist/src/capture/observability.d.ts.map +1 -1
  7. package/dist/src/capture/observability.js +3 -0
  8. package/dist/src/capture/observability.js.map +1 -1
  9. package/dist/src/cli/commands/capture.d.ts.map +1 -1
  10. package/dist/src/cli/commands/capture.js +14 -1
  11. package/dist/src/cli/commands/capture.js.map +1 -1
  12. package/dist/src/cli/commands/feedback.d.ts.map +1 -1
  13. package/dist/src/cli/commands/feedback.js +3 -0
  14. package/dist/src/cli/commands/feedback.js.map +1 -1
  15. package/dist/src/cli/commands/onboard.d.ts +37 -1
  16. package/dist/src/cli/commands/onboard.d.ts.map +1 -1
  17. package/dist/src/cli/commands/onboard.js +193 -33
  18. package/dist/src/cli/commands/onboard.js.map +1 -1
  19. package/dist/src/cli/commands/search.d.ts +2 -0
  20. package/dist/src/cli/commands/search.d.ts.map +1 -1
  21. package/dist/src/cli/commands/search.js +6 -0
  22. package/dist/src/cli/commands/search.js.map +1 -1
  23. package/dist/src/cli/feedback/feedback-config.d.ts +3 -0
  24. package/dist/src/cli/feedback/feedback-config.d.ts.map +1 -1
  25. package/dist/src/cli/feedback/feedback-config.js +5 -0
  26. package/dist/src/cli/feedback/feedback-config.js.map +1 -1
  27. package/dist/src/cli/feedback/feedback-history.d.ts +7 -0
  28. package/dist/src/cli/feedback/feedback-history.d.ts.map +1 -1
  29. package/dist/src/cli/feedback/feedback-history.js +39 -9
  30. package/dist/src/cli/feedback/feedback-history.js.map +1 -1
  31. package/dist/src/cli/feedback/feedback-payload.d.ts +22 -1
  32. package/dist/src/cli/feedback/feedback-payload.d.ts.map +1 -1
  33. package/dist/src/cli/feedback/feedback-payload.js.map +1 -1
  34. package/dist/src/cli/feedback/feedback-relay.d.ts +2 -2
  35. package/dist/src/cli/feedback/feedback-relay.d.ts.map +1 -1
  36. package/dist/src/cli/feedback/feedback-relay.js.map +1 -1
  37. package/dist/src/cli/status/friend-header.d.ts.map +1 -1
  38. package/dist/src/cli/status/friend-header.js +12 -3
  39. package/dist/src/cli/status/friend-header.js.map +1 -1
  40. package/dist/src/jobs/handlers/compact.js +4 -0
  41. package/dist/src/jobs/handlers/compact.js.map +1 -1
  42. package/dist/src/jobs/handlers/ingest.d.ts.map +1 -1
  43. package/dist/src/jobs/handlers/ingest.js +53 -3
  44. package/dist/src/jobs/handlers/ingest.js.map +1 -1
  45. package/dist/src/jobs/handlers/reconcile.d.ts +17 -0
  46. package/dist/src/jobs/handlers/reconcile.d.ts.map +1 -1
  47. package/dist/src/jobs/handlers/reconcile.js +92 -13
  48. package/dist/src/jobs/handlers/reconcile.js.map +1 -1
  49. package/dist/src/jobs/handlers/reindex.d.ts.map +1 -1
  50. package/dist/src/jobs/handlers/reindex.js +1 -0
  51. package/dist/src/jobs/handlers/reindex.js.map +1 -1
  52. package/dist/src/jobs/handlers/save.d.ts.map +1 -1
  53. package/dist/src/jobs/handlers/save.js +41 -0
  54. package/dist/src/jobs/handlers/save.js.map +1 -1
  55. package/dist/src/jobs/queue.d.ts +40 -1
  56. package/dist/src/jobs/queue.d.ts.map +1 -1
  57. package/dist/src/jobs/queue.js +448 -26
  58. package/dist/src/jobs/queue.js.map +1 -1
  59. package/dist/src/jobs/worker-entry.d.ts.map +1 -1
  60. package/dist/src/jobs/worker-entry.js +17 -4
  61. package/dist/src/jobs/worker-entry.js.map +1 -1
  62. package/dist/src/mcp/tools/search.d.ts.map +1 -1
  63. package/dist/src/mcp/tools/search.js +1 -0
  64. package/dist/src/mcp/tools/search.js.map +1 -1
  65. package/dist/src/providers/basic-metadata-extraction.d.ts +60 -0
  66. package/dist/src/providers/basic-metadata-extraction.d.ts.map +1 -0
  67. package/dist/src/providers/basic-metadata-extraction.js +114 -0
  68. package/dist/src/providers/basic-metadata-extraction.js.map +1 -0
  69. package/dist/src/providers/codex-cli-runner.d.ts +23 -0
  70. package/dist/src/providers/codex-cli-runner.d.ts.map +1 -1
  71. package/dist/src/providers/codex-cli-runner.js +131 -39
  72. package/dist/src/providers/codex-cli-runner.js.map +1 -1
  73. package/dist/src/providers/conversation-generation.d.ts.map +1 -1
  74. package/dist/src/providers/conversation-generation.js +24 -0
  75. package/dist/src/providers/conversation-generation.js.map +1 -1
  76. package/dist/src/providers/placeholder-embed.d.ts +56 -0
  77. package/dist/src/providers/placeholder-embed.d.ts.map +1 -0
  78. package/dist/src/providers/placeholder-embed.js +64 -0
  79. package/dist/src/providers/placeholder-embed.js.map +1 -0
  80. package/dist/src/retrieval/compact.d.ts +1 -0
  81. package/dist/src/retrieval/compact.d.ts.map +1 -1
  82. package/dist/src/retrieval/compact.js +4 -0
  83. package/dist/src/retrieval/compact.js.map +1 -1
  84. package/dist/src/retrieval/lexical.d.ts.map +1 -1
  85. package/dist/src/retrieval/lexical.js +19 -3
  86. package/dist/src/retrieval/lexical.js.map +1 -1
  87. package/dist/src/retrieval/locator-boost.d.ts +37 -0
  88. package/dist/src/retrieval/locator-boost.d.ts.map +1 -0
  89. package/dist/src/retrieval/locator-boost.js +129 -0
  90. package/dist/src/retrieval/locator-boost.js.map +1 -0
  91. package/dist/src/retrieval/report-demotion.d.ts +17 -1
  92. package/dist/src/retrieval/report-demotion.d.ts.map +1 -1
  93. package/dist/src/retrieval/report-demotion.js +67 -5
  94. package/dist/src/retrieval/report-demotion.js.map +1 -1
  95. package/dist/src/retrieval/vector.d.ts.map +1 -1
  96. package/dist/src/retrieval/vector.js +11 -2
  97. package/dist/src/retrieval/vector.js.map +1 -1
  98. package/dist/src/server/app.d.ts.map +1 -1
  99. package/dist/src/server/app.js +14 -9
  100. package/dist/src/server/app.js.map +1 -1
  101. package/dist/src/server/routes/compact.d.ts.map +1 -1
  102. package/dist/src/server/routes/compact.js +4 -1
  103. package/dist/src/server/routes/compact.js.map +1 -1
  104. package/dist/src/server/routes/conversations-search.d.ts.map +1 -1
  105. package/dist/src/server/routes/conversations-search.js +28 -3
  106. package/dist/src/server/routes/conversations-search.js.map +1 -1
  107. package/dist/src/server/routes/enqueue.d.ts +11 -0
  108. package/dist/src/server/routes/enqueue.d.ts.map +1 -0
  109. package/dist/src/server/routes/enqueue.js +17 -0
  110. package/dist/src/server/routes/enqueue.js.map +1 -0
  111. package/dist/src/server/routes/friend-status.d.ts +3 -0
  112. package/dist/src/server/routes/friend-status.d.ts.map +1 -1
  113. package/dist/src/server/routes/friend-status.js +9 -2
  114. package/dist/src/server/routes/friend-status.js.map +1 -1
  115. package/dist/src/server/routes/ingest.d.ts.map +1 -1
  116. package/dist/src/server/routes/ingest.js +5 -2
  117. package/dist/src/server/routes/ingest.js.map +1 -1
  118. package/dist/src/server/routes/reconcile.d.ts.map +1 -1
  119. package/dist/src/server/routes/reconcile.js +4 -1
  120. package/dist/src/server/routes/reconcile.js.map +1 -1
  121. package/dist/src/server/routes/reindex.d.ts.map +1 -1
  122. package/dist/src/server/routes/reindex.js +4 -1
  123. package/dist/src/server/routes/reindex.js.map +1 -1
  124. package/dist/src/server/routes/save.d.ts.map +1 -1
  125. package/dist/src/server/routes/save.js +4 -1
  126. package/dist/src/server/routes/save.js.map +1 -1
  127. package/dist/src/server/routes/search.d.ts.map +1 -1
  128. package/dist/src/server/routes/search.js +98 -7
  129. package/dist/src/server/routes/search.js.map +1 -1
  130. package/dist/src/server/routes/triage.d.ts.map +1 -1
  131. package/dist/src/server/routes/triage.js +4 -1
  132. package/dist/src/server/routes/triage.js.map +1 -1
  133. package/dist/src/storage/rebuild.d.ts +21 -0
  134. package/dist/src/storage/rebuild.d.ts.map +1 -1
  135. package/dist/src/storage/rebuild.js +142 -66
  136. package/dist/src/storage/rebuild.js.map +1 -1
  137. package/dist/src/storage/tables.d.ts +20 -0
  138. package/dist/src/storage/tables.d.ts.map +1 -1
  139. package/dist/src/storage/tables.js +22 -12
  140. package/dist/src/storage/tables.js.map +1 -1
  141. package/package.json +6 -3
@@ -1,6 +1,46 @@
1
1
  import crypto from "node:crypto";
2
2
  import fs from "node:fs";
3
+ import path from "node:path";
3
4
  import { EXCLUSIVE_JOBS } from "./types.js";
5
+ /**
6
+ * Terminal statuses: the job is done and its `payload` (full
7
+ * conversation / export text) is dead weight — the durable record lives
8
+ * in raw files + the vector index, not the queue ledger. Only
9
+ * queued/running/interrupted jobs still need their payload.
10
+ */
11
+ const TERMINAL_STATUSES = new Set([
12
+ "completed",
13
+ "failed",
14
+ "cancelled",
15
+ ]);
16
+ /**
17
+ * Terminal statuses whose `payload` is safe to drop. A `failed` job is
18
+ * still retryable — `create()` with the same idempotency_key turns it into
19
+ * a retry whose chain root (the failed job) must still carry the canonical
20
+ * source/raw payload (save.ts resolveChainRoot). The failure path persists
21
+ * (and thus compacts) the job the instant it fails, before any retry exists,
22
+ * so stripping `failed` payloads here would silently break changed-source
23
+ * retries. Failed jobs are few (cap still bounds them); keep their payload.
24
+ */
25
+ const STRIPPABLE_STATUSES = new Set([
26
+ "completed",
27
+ "cancelled",
28
+ ]);
29
+ /**
30
+ * Cap on retained terminal-job records. Metadata is tiny (~200 B/job),
31
+ * but unbounded retention eventually blows `JSON.stringify`'s max string
32
+ * length (V8 ~512 MB) — the failure that turned every save into a 500.
33
+ * We keep the most recent N; idempotency dedup and the friend-status
34
+ * projection only need recent terminal jobs, and older sessions are
35
+ * re-guarded by capture-state.json + content-hash dedup.
36
+ */
37
+ const MAX_TERMINAL_JOBS = 2000;
38
+ const PAYLOAD_OFFLOAD_THRESHOLD_BYTES = 64 * 1024;
39
+ const MAX_LEDGER_BYTES = 64 * 1024 * 1024;
40
+ const PAYLOAD_REF_MARKER = "__rift_queue_payload_ref";
41
+ const PERSIST_RETRY_DELAY_MS = 100;
42
+ const START_RETRY_INITIAL_DELAY_MS = 100;
43
+ const START_RETRY_MAX_DELAY_MS = 5000;
4
44
  /**
5
45
  * In-process job queue with:
6
46
  * - Persistence to `queue.json` (atomic write: temp + rename)
@@ -12,9 +52,13 @@ import { EXCLUSIVE_JOBS } from "./types.js";
12
52
  export class JobQueue {
13
53
  queuePath;
14
54
  jobs = new Map();
55
+ payloadRefs = new Map();
15
56
  handlers = new Map();
16
57
  processing = false;
17
58
  held = false;
59
+ persistRetryTimer;
60
+ startRetryTimer;
61
+ startRetryDelayMs = START_RETRY_INITIAL_DELAY_MS;
18
62
  constructor(queuePath) {
19
63
  this.queuePath = queuePath;
20
64
  }
@@ -53,9 +97,11 @@ export class JobQueue {
53
97
  const raw = fs.readFileSync(this.queuePath, "utf-8");
54
98
  const entries = JSON.parse(raw);
55
99
  this.jobs.clear();
100
+ this.payloadRefs.clear();
56
101
  // Collect jobs that need recovery (were running at crash time).
57
102
  const toRequeue = [];
58
- for (const job of entries) {
103
+ for (const entry of entries) {
104
+ const job = this.hydrateJob(entry);
59
105
  if (job.status === "running") {
60
106
  job.status = "interrupted";
61
107
  job.updated_at = new Date().toISOString();
@@ -79,7 +125,10 @@ export class JobQueue {
79
125
  job.retried_by = requeuedId;
80
126
  this.jobs.set(requeuedId, requeued);
81
127
  }
82
- if (toRequeue.length > 0) {
128
+ // Heal a ledger that bloated before this fix shipped: strip terminal
129
+ // payloads / cap retention on load, even when nothing needs re-queuing.
130
+ const compacted = this.compactLedger();
131
+ if (toRequeue.length > 0 || compacted) {
83
132
  await this.persist();
84
133
  }
85
134
  }
@@ -134,8 +183,16 @@ export class JobQueue {
134
183
  ...(key !== undefined ? { idempotency_key: key } : {}),
135
184
  ...(opts?.payload !== undefined ? { payload: opts.payload } : {}),
136
185
  };
186
+ const snapshot = this.snapshotState();
137
187
  this.jobs.set(job.id, job);
138
- await this.persist();
188
+ try {
189
+ await this.persist();
190
+ }
191
+ catch (err) {
192
+ this.restoreSnapshot(snapshot);
193
+ this.deletePayloadFilesForJob(job.id);
194
+ throw err;
195
+ }
139
196
  this.processNext();
140
197
  return { job, duplicate: false };
141
198
  }
@@ -187,9 +244,16 @@ export class JobQueue {
187
244
  if (!job)
188
245
  return undefined;
189
246
  if (job.status === "queued" || job.status === "interrupted") {
247
+ const snapshot = this.snapshotState();
190
248
  job.status = "cancelled";
191
249
  job.updated_at = new Date().toISOString();
192
- await this.persist();
250
+ try {
251
+ await this.persist();
252
+ }
253
+ catch (err) {
254
+ this.restoreSnapshot(snapshot);
255
+ throw err;
256
+ }
193
257
  return job;
194
258
  }
195
259
  if (job.status === "running") {
@@ -197,12 +261,274 @@ export class JobQueue {
197
261
  }
198
262
  return undefined;
199
263
  }
200
- /** Atomic write: temp file + rename. */
264
+ /**
265
+ * Keep the persisted ledger bounded so `JSON.stringify` can never exceed
266
+ * V8's max string length (the failure mode that turned every save into a
267
+ * 500). Two cheap, safe reductions on terminal jobs only:
268
+ * 1. Drop `payload` — only active jobs need it.
269
+ * 2. Cap how many terminal jobs we retain (oldest dropped first).
270
+ * Non-terminal jobs (queued/running/interrupted) are never touched.
271
+ * Returns true if anything changed.
272
+ */
273
+ compactLedger() {
274
+ let changed = false;
275
+ // Protect every job reachable by walking `retry_of` from a non-terminal
276
+ // job. The save/ingest handlers call resolveChainRoot() to recover the
277
+ // canonical row id + source from the chain root. If an ancestor is
278
+ // dropped (payload stripped OR row deleted) while a retry is still
279
+ // queued/running, resolveChainRoot stops short (save.ts:55), the handler
280
+ // falls back to the retry's own id/source, and a duplicate row is
281
+ // created. So these ancestors are exempt from BOTH reductions below.
282
+ const protectedIds = new Set();
283
+ for (const job of this.jobs.values()) {
284
+ if (TERMINAL_STATUSES.has(job.status))
285
+ continue;
286
+ let cursor = job;
287
+ let depth = 0;
288
+ while (cursor?.retry_of && depth < 50) {
289
+ const parent = this.jobs.get(cursor.retry_of);
290
+ if (!parent)
291
+ break;
292
+ protectedIds.add(parent.id);
293
+ cursor = parent;
294
+ depth++;
295
+ }
296
+ }
297
+ const terminal = [];
298
+ for (const job of this.jobs.values()) {
299
+ if (TERMINAL_STATUSES.has(job.status)) {
300
+ // Keep payload on retry-chain ancestors: the save handler walks
301
+ // `retry_of` to the root job and reads its payload to resolve the
302
+ // canonical source/raw artifact (src/jobs/handlers/save.ts). A job
303
+ // with `retried_by` set is such an ancestor, as is any ancestor of
304
+ // a still-active retry (protectedIds). Standalone/leaf terminal jobs
305
+ // no longer need their payload.
306
+ if (job.payload !== undefined &&
307
+ STRIPPABLE_STATUSES.has(job.status) &&
308
+ job.retried_by === undefined &&
309
+ !protectedIds.has(job.id)) {
310
+ delete job.payload;
311
+ changed = true;
312
+ }
313
+ terminal.push(job);
314
+ }
315
+ }
316
+ if (terminal.length > MAX_TERMINAL_JOBS) {
317
+ // Drop the oldest terminal jobs beyond the cap (oldest by updated_at),
318
+ // but never an ancestor of a still-active retry chain. If protected
319
+ // jobs prevent reaching the cap, the ledger stays slightly above it —
320
+ // correctness over a hard bound (the overflow is bounded by in-flight
321
+ // work, which is small).
322
+ terminal.sort((a, b) => a.updated_at.localeCompare(b.updated_at));
323
+ const overflow = terminal.length - MAX_TERMINAL_JOBS;
324
+ let dropped = 0;
325
+ for (const job of terminal) {
326
+ if (dropped >= overflow)
327
+ break;
328
+ if (protectedIds.has(job.id))
329
+ continue;
330
+ this.jobs.delete(job.id);
331
+ dropped++;
332
+ changed = true;
333
+ }
334
+ }
335
+ return changed;
336
+ }
337
+ /** Atomic write: temp file + rename. Ledger is compacted first so the
338
+ * serialized form stays well under V8's max string length. */
201
339
  async persist() {
202
- const data = JSON.stringify([...this.jobs.values()], null, 2);
340
+ this.compactLedger();
341
+ this.prunePayloadRefCache();
342
+ const activePayloadRefs = new Set();
343
+ const entries = [...this.jobs.values()].map((job) => this.serializeJobForLedger(job, activePayloadRefs));
344
+ let data;
345
+ try {
346
+ data = JSON.stringify(entries, null, 2);
347
+ if (Buffer.byteLength(data, "utf-8") > MAX_LEDGER_BYTES) {
348
+ throw this.createLedgerTooLargeError(`Job ledger exceeds ${MAX_LEDGER_BYTES} bytes after payload offload.`);
349
+ }
350
+ }
351
+ catch (err) {
352
+ // Defense in depth: even after compaction, a pathological volume of
353
+ // active payloads could exceed V8's max string length. Surface a
354
+ // typed, actionable error instead of a bare 500 — and never silently
355
+ // corrupt active jobs by dropping their payloads.
356
+ if (err instanceof RangeError) {
357
+ throw this.createLedgerTooLargeError("Job ledger too large to serialize (exceeds V8 max string length).");
358
+ }
359
+ throw err;
360
+ }
203
361
  const tmp = this.queuePath + `.tmp.${process.pid}`;
204
362
  fs.writeFileSync(tmp, data, "utf-8");
205
363
  fs.renameSync(tmp, this.queuePath);
364
+ this.cleanupPayloadFiles(activePayloadRefs);
365
+ this.clearPersistRetry();
366
+ }
367
+ createLedgerTooLargeError(message) {
368
+ const e = new Error(`${message} Payloads above ${PAYLOAD_OFFLOAD_THRESHOLD_BYTES} bytes are ` +
369
+ "offloaded automatically, so this means there are too many queued jobs " +
370
+ "or a malformed payload reference. Retry after current jobs drain, or " +
371
+ "see reports/2026-05-25-capture-500-queue-bloat.md for manual recovery.");
372
+ e.code = "queue_ledger_too_large";
373
+ return e;
374
+ }
375
+ snapshotState() {
376
+ return {
377
+ jobs: new Map([...this.jobs.entries()].map(([id, job]) => [id, { ...job }])),
378
+ payloadRefs: new Map([...this.payloadRefs.entries()].map(([id, entry]) => [
379
+ id,
380
+ { ref: { ...entry.ref }, value: entry.value },
381
+ ])),
382
+ };
383
+ }
384
+ restoreSnapshot(snapshot) {
385
+ this.jobs = snapshot.jobs;
386
+ this.payloadRefs = snapshot.payloadRefs;
387
+ }
388
+ payloadDir() {
389
+ return path.join(path.dirname(this.queuePath), "payloads");
390
+ }
391
+ payloadPath(jobId, sha256) {
392
+ return path.join(this.payloadDir(), `${jobId}.${sha256}.json`);
393
+ }
394
+ payloadRefPath(jobId, sha256) {
395
+ return `payloads/${jobId}.${sha256}.json`;
396
+ }
397
+ payloadAbsPath(ref) {
398
+ return path.isAbsolute(ref.path)
399
+ ? ref.path
400
+ : path.join(path.dirname(this.queuePath), ref.path);
401
+ }
402
+ isPayloadRef(payload) {
403
+ return (typeof payload === "object" &&
404
+ payload !== null &&
405
+ payload[PAYLOAD_REF_MARKER] === true &&
406
+ typeof payload["path"] === "string" &&
407
+ typeof payload["byte_length"] === "number" &&
408
+ typeof payload["sha256"] === "string");
409
+ }
410
+ hydrateJob(entry) {
411
+ const job = { ...entry };
412
+ if (this.isPayloadRef(entry.payload)) {
413
+ const payload = this.readPayloadRef(entry.payload);
414
+ job.payload = payload;
415
+ this.payloadRefs.set(job.id, {
416
+ ref: { ...entry.payload },
417
+ value: payload,
418
+ });
419
+ }
420
+ return job;
421
+ }
422
+ readPayloadRef(ref) {
423
+ const refPath = this.payloadAbsPath(ref);
424
+ const raw = fs.readFileSync(refPath, "utf-8");
425
+ const bytes = Buffer.byteLength(raw, "utf-8");
426
+ const sha256 = crypto.createHash("sha256").update(raw).digest("hex");
427
+ if (bytes !== ref.byte_length || sha256 !== ref.sha256) {
428
+ throw new Error(`Job payload ref failed integrity check: ${ref.path}`);
429
+ }
430
+ return JSON.parse(raw);
431
+ }
432
+ serializeJobForLedger(job, activePayloadRefs) {
433
+ const persisted = { ...job };
434
+ if (job.payload === undefined) {
435
+ delete persisted.payload;
436
+ this.payloadRefs.delete(job.id);
437
+ return persisted;
438
+ }
439
+ const cached = this.payloadRefs.get(job.id);
440
+ if (cached &&
441
+ cached.value === job.payload &&
442
+ fs.existsSync(this.payloadAbsPath(cached.ref))) {
443
+ activePayloadRefs.add(this.payloadAbsPath(cached.ref));
444
+ persisted.payload = cached.ref;
445
+ return persisted;
446
+ }
447
+ const payloadJson = JSON.stringify(job.payload);
448
+ if (payloadJson === undefined) {
449
+ throw new Error(`Job ${job.id} payload is not JSON-serializable`);
450
+ }
451
+ const byteLength = Buffer.byteLength(payloadJson, "utf-8");
452
+ if (byteLength <= PAYLOAD_OFFLOAD_THRESHOLD_BYTES) {
453
+ this.payloadRefs.delete(job.id);
454
+ persisted.payload = job.payload;
455
+ return persisted;
456
+ }
457
+ const sha256 = crypto.createHash("sha256").update(payloadJson).digest("hex");
458
+ const refPath = this.payloadRefPath(job.id, sha256);
459
+ const ref = {
460
+ [PAYLOAD_REF_MARKER]: true,
461
+ path: refPath,
462
+ byte_length: byteLength,
463
+ sha256,
464
+ };
465
+ this.writePayloadFile(this.payloadPath(job.id, sha256), payloadJson);
466
+ this.payloadRefs.set(job.id, { ref, value: job.payload });
467
+ activePayloadRefs.add(this.payloadAbsPath(ref));
468
+ persisted.payload = ref;
469
+ return persisted;
470
+ }
471
+ writePayloadFile(filePath, data) {
472
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
473
+ const tmp = `${filePath}.tmp.${process.pid}`;
474
+ fs.writeFileSync(tmp, data, "utf-8");
475
+ fs.renameSync(tmp, filePath);
476
+ }
477
+ prunePayloadRefCache() {
478
+ for (const jobId of this.payloadRefs.keys()) {
479
+ if (!this.jobs.has(jobId)) {
480
+ this.payloadRefs.delete(jobId);
481
+ }
482
+ }
483
+ }
484
+ deletePayloadFilesForJob(jobId) {
485
+ const dir = this.payloadDir();
486
+ let files;
487
+ try {
488
+ if (!fs.existsSync(dir))
489
+ return;
490
+ files = fs.readdirSync(dir);
491
+ }
492
+ catch (err) {
493
+ process.stderr.write(`queue: warning: failed to scan payload files for ${jobId}: ${err instanceof Error ? err.message : String(err)}\n`);
494
+ return;
495
+ }
496
+ for (const file of files) {
497
+ if (file === `${jobId}.json` || file.startsWith(`${jobId}.`)) {
498
+ this.deletePayloadPath(path.join(dir, file), jobId);
499
+ }
500
+ }
501
+ }
502
+ cleanupPayloadFiles(activePayloadRefs) {
503
+ const dir = this.payloadDir();
504
+ let files;
505
+ try {
506
+ if (!fs.existsSync(dir))
507
+ return;
508
+ files = fs.readdirSync(dir);
509
+ }
510
+ catch (err) {
511
+ process.stderr.write(`queue: warning: failed to scan payload directory for cleanup: ${err instanceof Error ? err.message : String(err)}\n`);
512
+ return;
513
+ }
514
+ for (const file of files) {
515
+ if (!file.endsWith(".json"))
516
+ continue;
517
+ const filePath = path.join(dir, file);
518
+ if (!activePayloadRefs.has(filePath)) {
519
+ this.deletePayloadPath(filePath, file);
520
+ }
521
+ }
522
+ }
523
+ deletePayloadPath(filePath, label) {
524
+ try {
525
+ fs.unlinkSync(filePath);
526
+ }
527
+ catch (err) {
528
+ if (err.code !== "ENOENT") {
529
+ process.stderr.write(`queue: warning: failed to remove payload file ${label}: ${err instanceof Error ? err.message : String(err)}\n`);
530
+ }
531
+ }
206
532
  }
207
533
  /**
208
534
  * Find the active job for a given idempotency key.
@@ -237,13 +563,21 @@ export class JobQueue {
237
563
  };
238
564
  // Rebuild the Map with this job first so findNextQueued() picks it up
239
565
  // before any previously queued work.
566
+ const snapshot = this.snapshotState();
240
567
  const entries = [...this.jobs.entries()];
241
568
  this.jobs.clear();
242
569
  this.jobs.set(job.id, job);
243
570
  for (const [id, j] of entries) {
244
571
  this.jobs.set(id, j);
245
572
  }
246
- await this.persist();
573
+ try {
574
+ await this.persist();
575
+ }
576
+ catch (err) {
577
+ this.restoreSnapshot(snapshot);
578
+ this.deletePayloadFilesForJob(job.id);
579
+ throw err;
580
+ }
247
581
  this.processNext();
248
582
  return { job, duplicate: false };
249
583
  }
@@ -286,10 +620,18 @@ export class JobQueue {
286
620
  retry_of: failed.id,
287
621
  ...(opts?.payload !== undefined ? { payload: opts.payload } : {}),
288
622
  };
623
+ const snapshot = this.snapshotState();
289
624
  failed.retried_by = retryId;
290
625
  failed.updated_at = new Date().toISOString();
291
626
  this.jobs.set(retryId, retry);
292
- await this.persist();
627
+ try {
628
+ await this.persist();
629
+ }
630
+ catch (err) {
631
+ this.restoreSnapshot(snapshot);
632
+ this.deletePayloadFilesForJob(retryId);
633
+ throw err;
634
+ }
293
635
  this.processNext();
294
636
  return { job: retry, duplicate: false };
295
637
  }
@@ -306,25 +648,105 @@ export class JobQueue {
306
648
  if (!handler)
307
649
  return; // No handler registered — leave queued.
308
650
  this.processing = true;
309
- next.status = "running";
310
- next.updated_at = new Date().toISOString();
311
- this.persist().then(() => {
312
- handler(next)
313
- .then(() => {
314
- next.status = "completed";
315
- next.updated_at = new Date().toISOString();
316
- })
317
- .catch((err) => {
318
- next.status = "failed";
319
- next.error =
320
- err instanceof Error ? err.message : String(err);
321
- next.updated_at = new Date().toISOString();
322
- })
323
- .finally(() => {
651
+ void (async () => {
652
+ try {
653
+ await this.applyPersistedMutation(() => {
654
+ next.status = "running";
655
+ next.updated_at = new Date().toISOString();
656
+ });
657
+ }
658
+ catch (err) {
324
659
  this.processing = false;
325
- this.persist().then(() => this.processNext());
326
- });
327
- });
660
+ process.stderr.write(`queue: failed to persist start of job ${next.id}: ${err instanceof Error ? err.message : String(err)}\n`);
661
+ this.scheduleStartRetry();
662
+ return;
663
+ }
664
+ this.clearStartRetry();
665
+ try {
666
+ await handler(next);
667
+ await this.applyTerminalMutation(`completion of job ${next.id}`, () => {
668
+ next.status = "completed";
669
+ next.updated_at = new Date().toISOString();
670
+ });
671
+ }
672
+ catch (err) {
673
+ await this.applyTerminalMutation(`failure of job ${next.id}`, () => {
674
+ next.status = "failed";
675
+ next.error = err instanceof Error ? err.message : String(err);
676
+ next.updated_at = new Date().toISOString();
677
+ });
678
+ }
679
+ finally {
680
+ this.processing = false;
681
+ this.processNext();
682
+ }
683
+ })();
684
+ }
685
+ async applyPersistedMutation(mutator) {
686
+ const snapshot = this.snapshotState();
687
+ mutator();
688
+ try {
689
+ await this.persist();
690
+ }
691
+ catch (err) {
692
+ this.restoreSnapshot(snapshot);
693
+ throw err;
694
+ }
695
+ }
696
+ async applyTerminalMutation(label, mutator) {
697
+ mutator();
698
+ try {
699
+ await this.persist();
700
+ }
701
+ catch (err) {
702
+ this.markPersistDirty(label, err);
703
+ }
704
+ }
705
+ markPersistDirty(label, err) {
706
+ process.stderr.write(`queue: failed to persist ${label}: ${err instanceof Error ? err.message : String(err)}; will retry\n`);
707
+ this.schedulePersistRetry();
708
+ }
709
+ schedulePersistRetry() {
710
+ if (this.persistRetryTimer)
711
+ return;
712
+ this.persistRetryTimer = setTimeout(() => {
713
+ this.persistRetryTimer = undefined;
714
+ void this.retryDirtyPersist();
715
+ }, PERSIST_RETRY_DELAY_MS);
716
+ this.persistRetryTimer.unref?.();
717
+ }
718
+ scheduleStartRetry() {
719
+ if (this.startRetryTimer)
720
+ return;
721
+ const delayMs = this.startRetryDelayMs;
722
+ this.startRetryDelayMs = Math.min(this.startRetryDelayMs * 2, START_RETRY_MAX_DELAY_MS);
723
+ this.startRetryTimer = setTimeout(() => {
724
+ this.startRetryTimer = undefined;
725
+ this.processNext();
726
+ }, delayMs);
727
+ this.startRetryTimer.unref?.();
728
+ }
729
+ clearStartRetry() {
730
+ if (this.startRetryTimer) {
731
+ clearTimeout(this.startRetryTimer);
732
+ this.startRetryTimer = undefined;
733
+ }
734
+ this.startRetryDelayMs = START_RETRY_INITIAL_DELAY_MS;
735
+ }
736
+ clearPersistRetry() {
737
+ if (!this.persistRetryTimer)
738
+ return;
739
+ clearTimeout(this.persistRetryTimer);
740
+ this.persistRetryTimer = undefined;
741
+ }
742
+ async retryDirtyPersist() {
743
+ try {
744
+ await this.persist();
745
+ }
746
+ catch (err) {
747
+ process.stderr.write(`queue: failed to retry dirty ledger persist: ${err instanceof Error ? err.message : String(err)}\n`);
748
+ this.schedulePersistRetry();
749
+ }
328
750
  }
329
751
  findNextQueued() {
330
752
  for (const job of this.jobs.values()) {
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/jobs/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/jobs/queue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker-entry.d.ts","sourceRoot":"","sources":["../../../src/jobs/worker-entry.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAUjD,OAAO,KAAK,EAAO,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA6F3D;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GACpC,UAAU,CA+GZ"}
1
+ {"version":3,"file":"worker-entry.d.ts","sourceRoot":"","sources":["../../../src/jobs/worker-entry.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAWjD,OAAO,KAAK,EAAO,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA6F3D;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GACpC,UAAU,CA+HZ"}