@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.
- package/dist/src/capture/auto-capture.d.ts +7 -0
- package/dist/src/capture/auto-capture.d.ts.map +1 -1
- package/dist/src/capture/auto-capture.js +27 -11
- package/dist/src/capture/auto-capture.js.map +1 -1
- package/dist/src/capture/observability.d.ts +6 -0
- package/dist/src/capture/observability.d.ts.map +1 -1
- package/dist/src/capture/observability.js +3 -0
- package/dist/src/capture/observability.js.map +1 -1
- package/dist/src/cli/commands/capture.d.ts.map +1 -1
- package/dist/src/cli/commands/capture.js +14 -1
- package/dist/src/cli/commands/capture.js.map +1 -1
- package/dist/src/cli/commands/feedback.d.ts.map +1 -1
- package/dist/src/cli/commands/feedback.js +3 -0
- package/dist/src/cli/commands/feedback.js.map +1 -1
- package/dist/src/cli/commands/onboard.d.ts +37 -1
- package/dist/src/cli/commands/onboard.d.ts.map +1 -1
- package/dist/src/cli/commands/onboard.js +193 -33
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/search.d.ts +2 -0
- package/dist/src/cli/commands/search.d.ts.map +1 -1
- package/dist/src/cli/commands/search.js +6 -0
- package/dist/src/cli/commands/search.js.map +1 -1
- package/dist/src/cli/feedback/feedback-config.d.ts +3 -0
- package/dist/src/cli/feedback/feedback-config.d.ts.map +1 -1
- package/dist/src/cli/feedback/feedback-config.js +5 -0
- package/dist/src/cli/feedback/feedback-config.js.map +1 -1
- package/dist/src/cli/feedback/feedback-history.d.ts +7 -0
- package/dist/src/cli/feedback/feedback-history.d.ts.map +1 -1
- package/dist/src/cli/feedback/feedback-history.js +39 -9
- package/dist/src/cli/feedback/feedback-history.js.map +1 -1
- package/dist/src/cli/feedback/feedback-payload.d.ts +22 -1
- package/dist/src/cli/feedback/feedback-payload.d.ts.map +1 -1
- package/dist/src/cli/feedback/feedback-payload.js.map +1 -1
- package/dist/src/cli/feedback/feedback-relay.d.ts +2 -2
- package/dist/src/cli/feedback/feedback-relay.d.ts.map +1 -1
- package/dist/src/cli/feedback/feedback-relay.js.map +1 -1
- package/dist/src/cli/status/friend-header.d.ts.map +1 -1
- package/dist/src/cli/status/friend-header.js +12 -3
- package/dist/src/cli/status/friend-header.js.map +1 -1
- package/dist/src/jobs/handlers/compact.js +4 -0
- package/dist/src/jobs/handlers/compact.js.map +1 -1
- package/dist/src/jobs/handlers/ingest.d.ts.map +1 -1
- package/dist/src/jobs/handlers/ingest.js +53 -3
- package/dist/src/jobs/handlers/ingest.js.map +1 -1
- package/dist/src/jobs/handlers/reconcile.d.ts +17 -0
- package/dist/src/jobs/handlers/reconcile.d.ts.map +1 -1
- package/dist/src/jobs/handlers/reconcile.js +92 -13
- package/dist/src/jobs/handlers/reconcile.js.map +1 -1
- package/dist/src/jobs/handlers/reindex.d.ts.map +1 -1
- package/dist/src/jobs/handlers/reindex.js +1 -0
- package/dist/src/jobs/handlers/reindex.js.map +1 -1
- package/dist/src/jobs/handlers/save.d.ts.map +1 -1
- package/dist/src/jobs/handlers/save.js +41 -0
- package/dist/src/jobs/handlers/save.js.map +1 -1
- package/dist/src/jobs/queue.d.ts +40 -1
- package/dist/src/jobs/queue.d.ts.map +1 -1
- package/dist/src/jobs/queue.js +448 -26
- package/dist/src/jobs/queue.js.map +1 -1
- package/dist/src/jobs/worker-entry.d.ts.map +1 -1
- package/dist/src/jobs/worker-entry.js +17 -4
- package/dist/src/jobs/worker-entry.js.map +1 -1
- package/dist/src/mcp/tools/search.d.ts.map +1 -1
- package/dist/src/mcp/tools/search.js +1 -0
- package/dist/src/mcp/tools/search.js.map +1 -1
- package/dist/src/providers/basic-metadata-extraction.d.ts +60 -0
- package/dist/src/providers/basic-metadata-extraction.d.ts.map +1 -0
- package/dist/src/providers/basic-metadata-extraction.js +114 -0
- package/dist/src/providers/basic-metadata-extraction.js.map +1 -0
- package/dist/src/providers/codex-cli-runner.d.ts +23 -0
- package/dist/src/providers/codex-cli-runner.d.ts.map +1 -1
- package/dist/src/providers/codex-cli-runner.js +131 -39
- package/dist/src/providers/codex-cli-runner.js.map +1 -1
- package/dist/src/providers/conversation-generation.d.ts.map +1 -1
- package/dist/src/providers/conversation-generation.js +24 -0
- package/dist/src/providers/conversation-generation.js.map +1 -1
- package/dist/src/providers/placeholder-embed.d.ts +56 -0
- package/dist/src/providers/placeholder-embed.d.ts.map +1 -0
- package/dist/src/providers/placeholder-embed.js +64 -0
- package/dist/src/providers/placeholder-embed.js.map +1 -0
- package/dist/src/retrieval/compact.d.ts +1 -0
- package/dist/src/retrieval/compact.d.ts.map +1 -1
- package/dist/src/retrieval/compact.js +4 -0
- package/dist/src/retrieval/compact.js.map +1 -1
- package/dist/src/retrieval/lexical.d.ts.map +1 -1
- package/dist/src/retrieval/lexical.js +19 -3
- package/dist/src/retrieval/lexical.js.map +1 -1
- package/dist/src/retrieval/locator-boost.d.ts +37 -0
- package/dist/src/retrieval/locator-boost.d.ts.map +1 -0
- package/dist/src/retrieval/locator-boost.js +129 -0
- package/dist/src/retrieval/locator-boost.js.map +1 -0
- package/dist/src/retrieval/report-demotion.d.ts +17 -1
- package/dist/src/retrieval/report-demotion.d.ts.map +1 -1
- package/dist/src/retrieval/report-demotion.js +67 -5
- package/dist/src/retrieval/report-demotion.js.map +1 -1
- package/dist/src/retrieval/vector.d.ts.map +1 -1
- package/dist/src/retrieval/vector.js +11 -2
- package/dist/src/retrieval/vector.js.map +1 -1
- package/dist/src/server/app.d.ts.map +1 -1
- package/dist/src/server/app.js +14 -9
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/server/routes/compact.d.ts.map +1 -1
- package/dist/src/server/routes/compact.js +4 -1
- package/dist/src/server/routes/compact.js.map +1 -1
- package/dist/src/server/routes/conversations-search.d.ts.map +1 -1
- package/dist/src/server/routes/conversations-search.js +28 -3
- package/dist/src/server/routes/conversations-search.js.map +1 -1
- package/dist/src/server/routes/enqueue.d.ts +11 -0
- package/dist/src/server/routes/enqueue.d.ts.map +1 -0
- package/dist/src/server/routes/enqueue.js +17 -0
- package/dist/src/server/routes/enqueue.js.map +1 -0
- package/dist/src/server/routes/friend-status.d.ts +3 -0
- package/dist/src/server/routes/friend-status.d.ts.map +1 -1
- package/dist/src/server/routes/friend-status.js +9 -2
- package/dist/src/server/routes/friend-status.js.map +1 -1
- package/dist/src/server/routes/ingest.d.ts.map +1 -1
- package/dist/src/server/routes/ingest.js +5 -2
- package/dist/src/server/routes/ingest.js.map +1 -1
- package/dist/src/server/routes/reconcile.d.ts.map +1 -1
- package/dist/src/server/routes/reconcile.js +4 -1
- package/dist/src/server/routes/reconcile.js.map +1 -1
- package/dist/src/server/routes/reindex.d.ts.map +1 -1
- package/dist/src/server/routes/reindex.js +4 -1
- package/dist/src/server/routes/reindex.js.map +1 -1
- package/dist/src/server/routes/save.d.ts.map +1 -1
- package/dist/src/server/routes/save.js +4 -1
- package/dist/src/server/routes/save.js.map +1 -1
- package/dist/src/server/routes/search.d.ts.map +1 -1
- package/dist/src/server/routes/search.js +98 -7
- package/dist/src/server/routes/search.js.map +1 -1
- package/dist/src/server/routes/triage.d.ts.map +1 -1
- package/dist/src/server/routes/triage.js +4 -1
- package/dist/src/server/routes/triage.js.map +1 -1
- package/dist/src/storage/rebuild.d.ts +21 -0
- package/dist/src/storage/rebuild.d.ts.map +1 -1
- package/dist/src/storage/rebuild.js +142 -66
- package/dist/src/storage/rebuild.js.map +1 -1
- package/dist/src/storage/tables.d.ts +20 -0
- package/dist/src/storage/tables.d.ts.map +1 -1
- package/dist/src/storage/tables.js +22 -12
- package/dist/src/storage/tables.js.map +1 -1
- package/package.json +6 -3
package/dist/src/jobs/queue.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
/**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
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
|
-
|
|
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;
|
|
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"}
|