@opendatalabs/personal-server-ts-core 1.35.1 → 1.35.3

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 (45) hide show
  1. package/dist/additions/budget.d.ts +6 -0
  2. package/dist/additions/budget.d.ts.map +1 -1
  3. package/dist/additions/budget.js +25 -0
  4. package/dist/additions/budget.js.map +1 -1
  5. package/dist/additions/durable.d.ts +1 -1
  6. package/dist/additions/durable.d.ts.map +1 -1
  7. package/dist/additions/durable.js +102 -19
  8. package/dist/additions/durable.js.map +1 -1
  9. package/dist/additions/version-inventory.d.ts +2 -0
  10. package/dist/additions/version-inventory.d.ts.map +1 -1
  11. package/dist/additions/version-inventory.js +2 -0
  12. package/dist/additions/version-inventory.js.map +1 -1
  13. package/dist/ports/index.d.ts +79 -1
  14. package/dist/ports/index.d.ts.map +1 -1
  15. package/dist/ports/index.js.map +1 -1
  16. package/dist/sync/delete-data-port.d.ts +2 -0
  17. package/dist/sync/delete-data-port.d.ts.map +1 -1
  18. package/dist/sync/delete-data-port.js +22 -1
  19. package/dist/sync/delete-data-port.js.map +1 -1
  20. package/dist/sync/engine/sync-manager.d.ts +6 -1
  21. package/dist/sync/engine/sync-manager.d.ts.map +1 -1
  22. package/dist/sync/engine/sync-manager.js +62 -9
  23. package/dist/sync/engine/sync-manager.js.map +1 -1
  24. package/dist/sync/index.d.ts +1 -0
  25. package/dist/sync/index.d.ts.map +1 -1
  26. package/dist/sync/index.js +1 -0
  27. package/dist/sync/index.js.map +1 -1
  28. package/dist/sync/pending-blob-deletions.d.ts.map +1 -1
  29. package/dist/sync/pending-blob-deletions.js +28 -0
  30. package/dist/sync/pending-blob-deletions.js.map +1 -1
  31. package/dist/sync/tombstone-finality.d.ts +36 -0
  32. package/dist/sync/tombstone-finality.d.ts.map +1 -0
  33. package/dist/sync/tombstone-finality.js +142 -0
  34. package/dist/sync/tombstone-finality.js.map +1 -0
  35. package/dist/sync/tombstone-resubmits.d.ts +61 -0
  36. package/dist/sync/tombstone-resubmits.d.ts.map +1 -0
  37. package/dist/sync/tombstone-resubmits.js +85 -0
  38. package/dist/sync/tombstone-resubmits.js.map +1 -0
  39. package/dist/sync/types.d.ts +8 -0
  40. package/dist/sync/types.d.ts.map +1 -1
  41. package/dist/sync/workers/delete.d.ts +54 -5
  42. package/dist/sync/workers/delete.d.ts.map +1 -1
  43. package/dist/sync/workers/delete.js +278 -44
  44. package/dist/sync/workers/delete.js.map +1 -1
  45. package/package.json +1 -1
@@ -2,6 +2,7 @@ import { withScopeLock } from "../../additions/scope-lock.js";
2
2
  import { computeDataPointId } from "../data-point-id.js";
3
3
  import { isGatewayReservedScope } from "../delete-data-port.js";
4
4
  import { createMemoryPendingBlobDeletionStore } from "../pending-blob-deletions.js";
5
+ import { DEFAULT_TOMBSTONE_RESUBMIT_MAX_ATTEMPTS, } from "../tombstone-resubmits.js";
5
6
  import { deletionTimestamp, isEntryCoveredByTombstone, tombstoneVersion, } from "../scope-deletions.js";
6
7
  /**
7
8
  * Exact blob deletes sent per pass. vana-storage allows 30 DELETE requests
@@ -99,12 +100,13 @@ async function eraseCoveredEntries(storage, scope, fence) {
99
100
  return erased;
100
101
  }
101
102
  /** Take up to `count` versions from the head of a range; `rest` is what remains. */
102
- function takeFromRange(range, count) {
103
+ function takeFromRange(range, count, cap = null) {
103
104
  const from = BigInt(range.from);
104
105
  const to = BigInt(range.to);
106
+ const last = cap !== null && cap < to ? cap : to;
105
107
  const versions = [];
106
108
  let cursor = from;
107
- while (cursor <= to && versions.length < count) {
109
+ while (cursor <= last && versions.length < count) {
108
110
  versions.push(cursor.toString());
109
111
  cursor += 1n;
110
112
  }
@@ -134,29 +136,7 @@ function countPendingKeys(markers) {
134
136
  ? Number.MAX_SAFE_INTEGER
135
137
  : Number(total);
136
138
  }
137
- /**
138
- * Durable scope deletion, in the only order that cannot resurrect data:
139
- *
140
- * 1. gateway tombstone (owner-signed AddData at current + 1; the fact)
141
- * 2. storage blobs (exact keys of every version the tombstone covers)
142
- * 3. local copy (index rows + files + sidecars)
143
- *
144
- * The local delete never runs before the gateway has acknowledged: until the
145
- * registry says "deleted", the next sync cycle would re-pull the point from
146
- * the still-live row. Step 2 deletes exact per-version keys, never the scope
147
- * prefix, so a re-add another replica lands at any time keeps its ciphertext
148
- * (it is registered above the tombstone version and stored under that key).
149
- * Keys that could not be deleted in this pass are queued as exact retry
150
- * markers; step 3 does not wait for them because the tombstone already makes
151
- * the deletion stick.
152
- *
153
- * Not serialised here: the sync manager runs this under the same lock as its
154
- * upload/download cycles so a delete cannot interleave with an upload of the
155
- * same scope on this replica (see engine/sync-manager.ts). Uploads racing on
156
- * another replica are handled by the upload worker's deletion guard and the
157
- * download worker's reconcile.
158
- */
159
- export async function deleteScope(deps, scope) {
139
+ export async function deleteScope(deps, scope, options = {}) {
160
140
  const { storage, deleteData, pendingBlobDeletions, scopeDeletions, logger } = deps;
161
141
  const now = deps.now ?? (() => new Date());
162
142
  const dataPointId = deps.serverOwner
@@ -188,8 +168,12 @@ export async function deleteScope(deps, scope) {
188
168
  // local delete that sync silently undoes.
189
169
  let tombstoneVersionValue = null;
190
170
  let tombstoneKnown = false;
171
+ let replacedHead = null;
191
172
  try {
192
- let outcome = await deleteData.tombstone(scope);
173
+ const tombstone = () => options.fence
174
+ ? deleteData.tombstone(scope, options.fence)
175
+ : deleteData.tombstone(scope);
176
+ let outcome = await tombstone();
193
177
  if (outcome.status === "not-registered") {
194
178
  // "Nothing to tombstone" is only durable if the registry still has
195
179
  // no row. A registration racing our lookup would otherwise survive
@@ -198,7 +182,7 @@ export async function deleteScope(deps, scope) {
198
182
  // registry cannot be asked, refuse rather than delete on a guess.
199
183
  let registry = await registryState(deps, scope);
200
184
  if (registry.status === "live") {
201
- outcome = await deleteData.tombstone(scope);
185
+ outcome = await tombstone();
202
186
  registry = await registryState(deps, scope);
203
187
  }
204
188
  if (outcome.status === "not-registered" &&
@@ -213,6 +197,9 @@ export async function deleteScope(deps, scope) {
213
197
  }
214
198
  else {
215
199
  tombstoneKnown = true;
200
+ if (outcome.status === "tombstoned") {
201
+ replacedHead = outcome.replaced ?? null;
202
+ }
216
203
  tombstoneVersionValue =
217
204
  outcome.version === null
218
205
  ? null
@@ -233,6 +220,9 @@ export async function deleteScope(deps, scope) {
233
220
  deletedAt: outcome.deletedAt ?? now().toISOString(),
234
221
  version: outcome.version,
235
222
  }, "local-delete");
223
+ // A tombstone was just queued (or re-confirmed): read its finality
224
+ // on the next pass instead of waiting out an earlier backoff.
225
+ deps.tombstoneFinality?.recheckNow?.(scope);
236
226
  }
237
227
  result.durable = true;
238
228
  }
@@ -264,7 +254,12 @@ export async function deleteScope(deps, scope) {
264
254
  }
265
255
  }
266
256
  const plan = planBlobDeletions(storage, scope, tombstoneVersionValue);
267
- const storageStep = await deleteScopeBlobs({ deleteData, pendingBlobDeletions, logger }, scope, plan, tombstoneKnown && tombstoneVersionValue === null);
257
+ const storageStep = await deleteScopeBlobs({
258
+ deleteData,
259
+ pendingBlobDeletions,
260
+ tombstoneFinality: deps.tombstoneFinality,
261
+ logger,
262
+ }, scope, plan, tombstoneKnown && tombstoneVersionValue === null, options.storagePass ?? true, replacedHead);
268
263
  result.steps.storage = storageStep.step;
269
264
  result.pendingBlobDeletion = storageStep.pending > 0;
270
265
  }
@@ -320,7 +315,11 @@ async function resumePoint(store, scope, markers) {
320
315
  * above `through`. Keys at or below `through` are already deleted or still
321
316
  * queued, so planning them again would only re-send confirmed deletes.
322
317
  */
323
- function unplannedWork(scope, plan, through) {
318
+ function unplannedWork(scope, plan, through, replacedHead = null) {
319
+ // A range is gated by its own `range.to`, the tombstone that covers it.
320
+ // The exact keys lie above that tombstone (or no tombstone exists), so
321
+ // their slots are still open: each is gated by its own version and waits
322
+ // for a finalized tombstone at or above it.
324
323
  const work = plan.keys.map((version) => ({
325
324
  scope,
326
325
  version,
@@ -334,6 +333,7 @@ function unplannedWork(scope, plan, through) {
334
333
  scope,
335
334
  version: null,
336
335
  range: { from: from.toString(), to: plan.range.to },
336
+ ...(replacedHead ? { replacedHead } : {}),
337
337
  });
338
338
  }
339
339
  }
@@ -346,6 +346,100 @@ async function recordPlannedWork(store, scope, work, through) {
346
346
  else
347
347
  await store.add(work);
348
348
  }
349
+ function sameHead(a, b) {
350
+ return (a.expectedVersion === b.expectedVersion &&
351
+ a.dataHash.toLowerCase() === b.dataHash.toLowerCase() &&
352
+ a.metadataHash.toLowerCase() === b.metadataHash.toLowerCase());
353
+ }
354
+ /**
355
+ * The tombstone version whose finality frees a marker's keys: its recorded
356
+ * gate, else a range's upper bound, else an exact key's own version (a key at
357
+ * or below a finalized tombstone can never be registered again). Null for an
358
+ * unexpanded marker, which is never sent.
359
+ */
360
+ function markerGate(marker) {
361
+ if (marker.tombstoneVersion !== undefined) {
362
+ return marker.version !== null || marker.range
363
+ ? BigInt(marker.tombstoneVersion)
364
+ : null;
365
+ }
366
+ if (marker.version !== null)
367
+ return BigInt(marker.version);
368
+ if (marker.range)
369
+ return BigInt(marker.range.to);
370
+ return null;
371
+ }
372
+ /**
373
+ * The markers whose keys may be sent now. Without a finality port, all of
374
+ * them (keys go on the tombstone's acknowledgement). With one, only markers
375
+ * gated at or below the scope's highest finalized tombstone: one inventory
376
+ * read per scope that has work. A read that fails holds the scope's markers
377
+ * for a later pass; holding a key only delays its deletion. Scopes whose
378
+ * deletion the registry rolled back are reported for re-submission.
379
+ */
380
+ async function releasableMarkers(finality, markers, logger) {
381
+ const rolledBack = new Map();
382
+ const converged = new Set();
383
+ if (!finality) {
384
+ return {
385
+ released: markers.map((marker) => ({ marker, through: null })),
386
+ rolledBack,
387
+ converged,
388
+ };
389
+ }
390
+ const lowestGate = new Map();
391
+ for (const marker of markers) {
392
+ const gate = markerGate(marker);
393
+ if (gate === null)
394
+ continue;
395
+ const lowest = lowestGate.get(marker.scope);
396
+ if (lowest === undefined || gate < lowest) {
397
+ lowestGate.set(marker.scope, gate);
398
+ }
399
+ }
400
+ const finalized = new Map();
401
+ for (const [scope, lowest] of lowestGate) {
402
+ try {
403
+ const state = await finality.tombstoneState(scope, lowest.toString());
404
+ finalized.set(scope, state.finalized === null ? null : BigInt(state.finalized));
405
+ if (state.rolledBack !== null)
406
+ rolledBack.set(scope, state.rolledBack);
407
+ else if (state.finalized !== null && !state.settling)
408
+ converged.add(scope);
409
+ }
410
+ catch (err) {
411
+ finalized.set(scope, null);
412
+ logger.warn({ scope, error: errorMessage(err) }, "Could not read tombstone finality; blob deletions wait for a later pass");
413
+ }
414
+ }
415
+ // A key at or below a finalized tombstone is free (see the safety argument
416
+ // on `TombstoneFinalityPort`): exact keys by their own version, ranges up
417
+ // to the finalized version, the rest of the range staying queued.
418
+ const released = [];
419
+ const held = new Map();
420
+ for (const marker of markers) {
421
+ const gate = markerGate(marker);
422
+ if (gate === null)
423
+ continue;
424
+ const through = finalized.get(marker.scope) ?? null;
425
+ const lowestKey = marker.version !== null
426
+ ? BigInt(marker.version)
427
+ : BigInt(marker.range.from);
428
+ if (through !== null && lowestKey <= through) {
429
+ released.push({ marker, through: marker.range ? through : null });
430
+ }
431
+ const highestKey = marker.version !== null
432
+ ? BigInt(marker.version)
433
+ : BigInt(marker.range.to);
434
+ if (through === null || highestKey > through) {
435
+ held.set(marker.scope, (held.get(marker.scope) ?? 0) + 1);
436
+ }
437
+ }
438
+ for (const [scope, count] of held) {
439
+ logger.info({ scope, markers: count }, "Blob deletions wait until the covering tombstone is finalized");
440
+ }
441
+ return { released, rolledBack, converged };
442
+ }
349
443
  /**
350
444
  * Send one rate-limited batch taken from `markers` (exact keys first, then
351
445
  * range heads, in stored order) and reconcile the store: acknowledged exact
@@ -353,11 +447,13 @@ async function recordPlannedWork(store, scope, work, through) {
353
447
  * exact marker, and each consumed range is advanced in place. A key queued
354
448
  * twice (an exact marker inside a range) is sent once.
355
449
  */
356
- async function drainOnePass(deleteData, store, markers) {
450
+ async function drainOnePass(deleteData, store, released) {
357
451
  let budget = BLOB_DELETE_BATCH_SIZE;
358
452
  const byScope = new Map();
359
453
  const queued = new Set();
360
454
  const exactOrigin = new Set();
455
+ // Gate of each key taken from a range, so a failed key keeps it.
456
+ const rangeGate = new Map();
361
457
  const advancedRanges = [];
362
458
  const keyOf = (scope, version) => `${scope}\u0000${version}`;
363
459
  const take = (scope, version) => {
@@ -370,7 +466,7 @@ async function drainOnePass(deleteData, store, markers) {
370
466
  byScope.set(scope, versions);
371
467
  return true;
372
468
  };
373
- for (const marker of markers) {
469
+ for (const { marker } of released) {
374
470
  if (budget === 0)
375
471
  break;
376
472
  if (marker.version !== null) {
@@ -379,19 +475,32 @@ async function drainOnePass(deleteData, store, markers) {
379
475
  budget -= 1;
380
476
  }
381
477
  }
382
- for (const marker of markers) {
478
+ for (const { marker, through } of released) {
383
479
  if (budget === 0)
384
480
  break;
385
481
  if (marker.version === null && marker.range) {
386
- const taken = takeFromRange(marker.range, budget);
482
+ const taken = takeFromRange(marker.range, budget, through);
483
+ const gate = marker.tombstoneVersion ?? marker.range.to;
387
484
  for (const version of taken.versions) {
388
- if (take(marker.scope, version))
485
+ if (take(marker.scope, version)) {
389
486
  budget -= 1;
487
+ rangeGate.set(keyOf(marker.scope, version), gate);
488
+ }
390
489
  }
391
490
  advancedRanges.push({
392
491
  old: marker,
393
492
  next: taken.rest
394
- ? { scope: marker.scope, version: null, range: taken.rest }
493
+ ? {
494
+ scope: marker.scope,
495
+ version: null,
496
+ range: taken.rest,
497
+ ...(marker.tombstoneVersion !== undefined
498
+ ? { tombstoneVersion: marker.tombstoneVersion }
499
+ : {}),
500
+ ...(marker.replacedHead
501
+ ? { replacedHead: marker.replacedHead }
502
+ : {}),
503
+ }
395
504
  : null,
396
505
  });
397
506
  }
@@ -422,7 +531,14 @@ async function drainOnePass(deleteData, store, markers) {
422
531
  // exact marker simply stays.
423
532
  const failedFromRange = outcome.failed
424
533
  .filter(({ version }) => !exactOrigin.has(keyOf(scope, version)))
425
- .map(({ version }) => ({ scope, version }));
534
+ .map(({ version }) => {
535
+ const gate = rangeGate.get(keyOf(scope, version));
536
+ return {
537
+ scope,
538
+ version,
539
+ ...(gate !== undefined ? { tombstoneVersion: gate } : {}),
540
+ };
541
+ });
426
542
  if (failedFromRange.length > 0)
427
543
  await store.add(failedFromRange);
428
544
  }
@@ -443,10 +559,10 @@ async function drainOnePass(deleteData, store, markers) {
443
559
  * the scope's queue and report what is still owed. A first delete and a
444
560
  * repeat of it run the same path, so a repeat resumes where the queue stands.
445
561
  */
446
- async function deleteScopeBlobs(deps, scope, plan, versionUnknown) {
562
+ async function deleteScopeBlobs(deps, scope, plan, versionUnknown, storagePass, replacedHead) {
447
563
  const { deleteData, logger } = deps;
448
564
  const withUnknown = (work) => versionUnknown ? [...work, { scope, version: null }] : work;
449
- let work = withUnknown(unplannedWork(scope, plan, null));
565
+ let work = withUnknown(unplannedWork(scope, plan, null, replacedHead));
450
566
  let store = deps.pendingBlobDeletions ?? null;
451
567
  // This scope's markers already in the durable store before this call.
452
568
  let queuedBefore = [];
@@ -455,7 +571,7 @@ async function deleteScopeBlobs(deps, scope, plan, versionUnknown) {
455
571
  const markers = await store.list();
456
572
  queuedBefore = markers.filter((m) => m.scope === scope);
457
573
  const through = await resumePoint(store, scope, markers);
458
- work = withUnknown(unplannedWork(scope, plan, through));
574
+ work = withUnknown(unplannedWork(scope, plan, through, replacedHead));
459
575
  await recordPlannedWork(store, scope, work, plan.range?.to ?? null);
460
576
  }
461
577
  catch (markerErr) {
@@ -475,7 +591,9 @@ async function deleteScopeBlobs(deps, scope, plan, versionUnknown) {
475
591
  let outcome;
476
592
  let remainingKeys;
477
593
  try {
478
- const queued = (await passStore.list()).filter((m) => m.scope === scope);
594
+ const { released: queued } = storagePass
595
+ ? await releasableMarkers(deps.tombstoneFinality, (await passStore.list()).filter((m) => m.scope === scope), logger)
596
+ : { released: [] };
479
597
  outcome = (await drainOnePass(deleteData, passStore, queued)).get(scope) ?? { deleted: [], missing: [], failed: [] };
480
598
  remainingKeys = countPendingKeys((await passStore.list()).filter((m) => m.scope === scope));
481
599
  }
@@ -527,8 +645,12 @@ async function deleteScopeBlobs(deps, scope, plan, versionUnknown) {
527
645
  * are expanded from the registry first; if the registry shows the scope live
528
646
  * again the old tombstone's version is unknowable, so the marker is dropped
529
647
  * and the pre-tombstone ciphertext stays (owner-decryptable only) until the
530
- * next delete of that scope.
648
+ * next delete of that scope. With `tombstoneFinality` wired, a key is sent
649
+ * only once a tombstone at or above its gate is finalized; a failed
650
+ * tombstone's keys stay queued (the deletion did not happen) until a later
651
+ * deletion of the scope is finalized.
531
652
  */
653
+ export const TOMBSTONE_RESUBMIT_MAX_ATTEMPTS = DEFAULT_TOMBSTONE_RESUBMIT_MAX_ATTEMPTS;
532
654
  export async function retryPendingBlobDeletions(deps) {
533
655
  const { deleteData, pendingBlobDeletions, logger } = deps;
534
656
  const result = {
@@ -574,8 +696,10 @@ export async function retryPendingBlobDeletions(deps) {
574
696
  await pendingBlobDeletions.remove([marker]);
575
697
  }
576
698
  markers = await pendingBlobDeletions.list();
577
- // One rate-limited batch in stored order: exact keys, then range heads.
578
- const outcomes = await drainOnePass(deleteData, pendingBlobDeletions, markers);
699
+ // One rate-limited batch in stored order: exact keys, then range heads,
700
+ // taken only from markers whose covering tombstone is final.
701
+ const decision = await releasableMarkers(deps.tombstoneFinality, markers, logger);
702
+ const outcomes = await drainOnePass(deleteData, pendingBlobDeletions, decision.released);
579
703
  for (const [scope, outcome] of outcomes) {
580
704
  result.completed.push(...[...outcome.deleted, ...outcome.missing].map((version) => ({ scope, version })));
581
705
  for (const failure of outcome.failed) {
@@ -596,9 +720,119 @@ export async function retryPendingBlobDeletions(deps) {
596
720
  }, "Pending blob deletion failed again");
597
721
  }
598
722
  }
599
- result.remaining = (await pendingBlobDeletions.list()).length;
723
+ for (const [scope, rollback] of decision.rolledBack) {
724
+ await resubmitRolledBackDeletion(deps, scope, rollback, markers.filter((marker) => marker.scope === scope));
725
+ }
726
+ const left = await pendingBlobDeletions.list();
727
+ // A scope with nothing left to free has converged; forget its attempts.
728
+ if (deps.tombstoneResubmits) {
729
+ const waiting = new Set(left.map((marker) => marker.scope));
730
+ const tracked = deps.tombstoneResubmits.snapshot();
731
+ for (const { scope } of [...tracked.retrying, ...tracked.failed]) {
732
+ if (!waiting.has(scope) || decision.converged.has(scope)) {
733
+ deps.tombstoneResubmits.reset(scope);
734
+ }
735
+ }
736
+ }
737
+ result.remaining = left.length;
600
738
  return result;
601
739
  }
740
+ /**
741
+ * The user deleted `scope`, its tombstone failed to settle, and the gateway
742
+ * shows the scope live again (the finality port only reports a rollback when
743
+ * no newer version of the scope exists). Re-submit the delete through the
744
+ * ordinary delete path, but only over exactly the head the user's tombstone
745
+ * replaced: the queued range marker remembers that head, the inventory read
746
+ * reports the restored one, and the port refuses any other. A different
747
+ * restored head is reported once as a failed delete instead. A write that
748
+ * recovered a failed slot below the tombstone, or that lands between the read
749
+ * and the re-submission, is therefore never deleted. This replica's own
750
+ * index is checked too: any unsynced entry (written after the delete erased
751
+ * the covered ones), or a synced one at or above the failed tombstone, is a
752
+ * re-add, and a re-add is never deleted again.
753
+ *
754
+ * Bounded by the tracker: attempts back off exponentially, and after the
755
+ * last one the scope is logged as an error and reported in the tracker's
756
+ * `failed` list. Its markers stay queued (nothing is freed while the scope
757
+ * is live) and drain if a later delete of the scope becomes final.
758
+ */
759
+ async function resubmitRolledBackDeletion(deps, scope, rollback, scopeMarkers) {
760
+ const { logger, tombstoneResubmits: tracker } = deps;
761
+ const failedVersion = rollback.tombstoneVersion;
762
+ if (!deps.resubmitDeletion || !tracker) {
763
+ logger.warn({ scope, tombstoneVersion: failedVersion }, "Scope tombstone failed and the scope is live again; its storage copies stay until the scope is deleted again");
764
+ return;
765
+ }
766
+ const remembered = scopeMarkers.find((marker) => marker.version === null &&
767
+ marker.range &&
768
+ BigInt(marker.range.to) === BigInt(failedVersion) &&
769
+ marker.replacedHead)?.replacedHead;
770
+ if (readdedLocally(deps.storage, scope, failedVersion)) {
771
+ logger.info({ scope, tombstoneVersion: failedVersion }, "Scope tombstone failed, but the scope was re-added after the delete; not deleting it again");
772
+ return;
773
+ }
774
+ if (tracker.exhausted(scope))
775
+ return;
776
+ if (!remembered || !sameHead(remembered, rollback.head)) {
777
+ // The user's delete did not happen and the scope is live again, but the
778
+ // restored head may be newer data, so it is not deleted automatically.
779
+ // Report it once, so no surface shows the scope as deleted.
780
+ const state = tracker.giveUp(scope, failedVersion, "head-changed");
781
+ logger.error({
782
+ scope,
783
+ tombstoneVersion: failedVersion,
784
+ head: rollback.head.expectedVersion,
785
+ remembered: remembered?.expectedVersion ?? null,
786
+ }, "Scope deletion did not complete: the gateway tombstone failed and the restored head is not the one the delete replaced, so it is not deleted again automatically. Delete it again to retry.");
787
+ deps.onDeletionAbandoned?.(state);
788
+ return;
789
+ }
790
+ if (tracker.outOfAttempts(scope)) {
791
+ const state = tracker.giveUp(scope, failedVersion);
792
+ logger.error({
793
+ scope,
794
+ attempts: state.attempts,
795
+ tombstoneVersion: failedVersion,
796
+ }, "Scope deletion did not complete: every gateway tombstone failed and the scope is live again. Delete it again to retry.");
797
+ deps.onDeletionAbandoned?.(state);
798
+ return;
799
+ }
800
+ if (!tracker.due(scope))
801
+ return;
802
+ const attempt = tracker.recordAttempt(scope, failedVersion);
803
+ logger.warn({ scope, tombstoneVersion: failedVersion, attempt }, "Scope tombstone failed and the scope is live again; re-submitting the user's delete");
804
+ try {
805
+ const outcome = await deps.resubmitDeletion(scope, {
806
+ fence: { head: rollback.head },
807
+ storagePass: false,
808
+ });
809
+ if (outcome.steps.gateway.status === "failed") {
810
+ logger.warn({ scope, attempt, error: outcome.steps.gateway.error }, "Re-submitted scope delete was refused by the gateway; will retry");
811
+ }
812
+ }
813
+ catch (err) {
814
+ logger.warn({ scope, attempt, error: errorMessage(err) }, "Re-submitted scope delete failed; will retry");
815
+ }
816
+ }
817
+ /** Whether this replica holds data of `scope` the failed delete did not cover. */
818
+ function readdedLocally(storage, scope, failedVersion) {
819
+ // Without a local index nothing proves the scope was not re-added.
820
+ if (!storage)
821
+ return true;
822
+ const failed = BigInt(failedVersion);
823
+ const PAGE_SIZE = 500;
824
+ for (let offset = 0;; offset += PAGE_SIZE) {
825
+ const entries = storage.listVersions(scope, { limit: PAGE_SIZE, offset });
826
+ for (const entry of entries) {
827
+ if (entry.dataPointId === null)
828
+ return true;
829
+ if (BigInt(entry.version) >= failed)
830
+ return true;
831
+ }
832
+ if (entries.length < PAGE_SIZE)
833
+ return false;
834
+ }
835
+ }
602
836
  /**
603
837
  * What the registry currently says about `scope`. "live" means a row exists
604
838
  * that is not a tombstone; "deleted" carries the tombstone's version;
@@ -1 +1 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/sync/workers/delete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/sync/workers/delete.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendatalabs/personal-server-ts-core",
3
- "version": "1.35.1",
3
+ "version": "1.35.3",
4
4
  "description": "Protocol logic for the Vana Personal Server — auth, grants, scopes, storage, keys",
5
5
  "license": "MIT",
6
6
  "repository": {