@izagood/avcs 0.17.0 → 0.19.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 (43) hide show
  1. package/dist/api/repo.d.ts +78 -0
  2. package/dist/api/repo.d.ts.map +1 -1
  3. package/dist/api/repo.js +221 -5
  4. package/dist/api/repo.js.map +1 -1
  5. package/dist/cli.js +42 -0
  6. package/dist/cli.js.map +1 -1
  7. package/dist/hub/hubServer.d.ts +9 -2
  8. package/dist/hub/hubServer.d.ts.map +1 -1
  9. package/dist/hub/hubServer.js +106 -4
  10. package/dist/hub/hubServer.js.map +1 -1
  11. package/dist/hub/syncWatch.d.ts +56 -0
  12. package/dist/hub/syncWatch.d.ts.map +1 -0
  13. package/dist/hub/syncWatch.js +186 -0
  14. package/dist/hub/syncWatch.js.map +1 -0
  15. package/dist/index.d.ts +3 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +2 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/mcp/guide.d.ts +5 -0
  20. package/dist/mcp/guide.d.ts.map +1 -0
  21. package/dist/mcp/guide.js +67 -0
  22. package/dist/mcp/guide.js.map +1 -0
  23. package/dist/mcp/respond.d.ts +32 -0
  24. package/dist/mcp/respond.d.ts.map +1 -0
  25. package/dist/mcp/respond.js +74 -0
  26. package/dist/mcp/respond.js.map +1 -0
  27. package/dist/mcp/server.d.ts +19 -0
  28. package/dist/mcp/server.d.ts.map +1 -1
  29. package/dist/mcp/server.js +200 -37
  30. package/dist/mcp/server.js.map +1 -1
  31. package/dist/merge/merge3.d.ts +13 -0
  32. package/dist/merge/merge3.d.ts.map +1 -1
  33. package/dist/merge/merge3.js +1 -1
  34. package/dist/merge/merge3.js.map +1 -1
  35. package/dist/query/diff.d.ts +13 -0
  36. package/dist/query/diff.d.ts.map +1 -1
  37. package/dist/query/diff.js +61 -0
  38. package/dist/query/diff.js.map +1 -1
  39. package/dist/store/lock.d.ts +8 -0
  40. package/dist/store/lock.d.ts.map +1 -1
  41. package/dist/store/lock.js +33 -0
  42. package/dist/store/lock.js.map +1 -1
  43. package/package.json +1 -1
@@ -88,6 +88,31 @@ export interface RemoteConfig {
88
88
  autoSync?: boolean;
89
89
  freshnessMs?: number;
90
90
  }
91
+ /**
92
+ * Early conflict warning for one contended entity key (Phase 15.3, docs/17 §15.3).
93
+ * `theirs` are operations by OTHER actors that (a) are outside the caller's causal
94
+ * closure — concurrent work the caller has not built on, (b) have not been rejected by
95
+ * a decision, and (c) have not been built upon by any later op on the same key (i.e.
96
+ * not superseded). `leaseHolders` are other actors holding an active lease whose scope
97
+ * overlaps the key. Leases gossip as ordinary objects, so combined with the sync-watch
98
+ * daemon this warning works ACROSS machines, not just across local processes.
99
+ */
100
+ export interface ContentionWarning {
101
+ key: string;
102
+ theirs: {
103
+ op: string;
104
+ actor: string;
105
+ lamport: number;
106
+ purpose: string;
107
+ createdAt: string;
108
+ }[];
109
+ leaseHolders: {
110
+ actor: string;
111
+ leaseOid: string;
112
+ scope: string;
113
+ expiresAt: string;
114
+ }[];
115
+ }
91
116
  export declare class Repo {
92
117
  #private;
93
118
  readonly dir: string;
@@ -123,6 +148,11 @@ export declare class Repo {
123
148
  saveLocalKey(actorId: string, privateKey: string): Promise<void>;
124
149
  /** Load a locally-held private key for `actorId`, or null if none is stored. */
125
150
  loadLocalKey(actorId: string): Promise<string | null>;
151
+ /** The replica's local actor identity, resolved by the same order #resolveHubSigner
152
+ * uses (explicit → AVCS_ACTOR → config.json → sole private key) but WITHOUT requiring
153
+ * a private key to exist — a contention check (Phase 15.3) needs a perspective, not a
154
+ * credential. Returns undefined when nothing resolves. */
155
+ localActorId(explicitActorId?: string): Promise<string | undefined>;
126
156
  /**
127
157
  * Provision an owner key: mint a keypair, register the public half as trusted, and
128
158
  * store the private half in the LOCAL keystore so the MCP server can sign the
@@ -172,6 +202,10 @@ export declare class Repo {
172
202
  keyId: string;
173
203
  privateKey: string;
174
204
  };
205
+ /** Phase 15.3: after authoring, run a contention check on the op's keys and emit
206
+ * structured-log warnings + a metric. Additive only — the return type is unchanged
207
+ * (surfaces that want the warnings themselves call {@link contention} directly). */
208
+ warnContention?: boolean;
175
209
  }): Promise<string>;
176
210
  /** Convenience: write file content as a blob + a put_file operation. */
177
211
  proposeFileWrite(args: {
@@ -189,6 +223,7 @@ export declare class Repo {
189
223
  keyId: string;
190
224
  privateKey: string;
191
225
  };
226
+ warnContention?: boolean;
192
227
  }): Promise<string>;
193
228
  /**
194
229
  * Language-neutral edit (docs/15): submit the FULL new content of a file together with
@@ -216,6 +251,7 @@ export declare class Repo {
216
251
  keyId: string;
217
252
  privateKey: string;
218
253
  };
254
+ warnContention?: boolean;
219
255
  }): Promise<string>;
220
256
  attachEvidence(args: {
221
257
  forOps: string[];
@@ -265,6 +301,25 @@ export declare class Repo {
265
301
  granted: false;
266
302
  conflicts: LeaseConflict[];
267
303
  }>;
304
+ /**
305
+ * Report contention on entity keys BEFORE finalize would discover it: for each key,
306
+ * the operations by other actors that the caller has not built on (outside the
307
+ * caller's causal closure) and are still live (neither decision-rejected nor built
308
+ * upon by a later op on the key), plus other actors' active leases overlapping the
309
+ * key. Discovery is via the entity index — O(ops-on-key), no reduce.
310
+ *
311
+ * Perspective resolution ("mine"), first hit wins:
312
+ * - `sessionOid`: that session's actor; its ops seed both the key set and the closure.
313
+ * - `actorId` (+ optional `keys`): that actor's ops on the resolved keys seed the
314
+ * closure; with no `keys` given, every key the actor has authored on is checked.
315
+ * - `keys` alone: no closure filter — everything live by anyone on the key reports.
316
+ */
317
+ contention(args: {
318
+ keys?: string[];
319
+ sessionOid?: string;
320
+ actorId?: string;
321
+ line?: string;
322
+ }): Promise<ContentionWarning[]>;
268
323
  /** Build a minimal repair packet for ops whose validation failed. */
269
324
  repairContext(opOids: string[]): Promise<import("../validation/repair.ts").RepairContext>;
270
325
  getView(name: string): Promise<View>;
@@ -466,6 +521,29 @@ export declare class Repo {
466
521
  pushed: number;
467
522
  rejected: number;
468
523
  }>;
524
+ /** Freshness window applied to an `autoSync` remote that doesn't set `freshnessMs`. */
525
+ static readonly DEFAULT_FRESHNESS_MS = 30000;
526
+ /** Milliseconds since the last successful sync with `remote` (Infinity when never). */
527
+ syncAgeMs(remote?: string): Promise<number>;
528
+ /**
529
+ * BLOCKING freshness sync (Phase 15.2): sync each named remote (default: every
530
+ * `autoSync` remote) whose last successful sync is older than its freshness window.
531
+ * For callers that must not read stale state (e.g. just before a submit). The read
532
+ * path itself never calls this — materialize only ever fires a BACKGROUND revalidate.
533
+ */
534
+ syncIfStale(remote?: string, opts?: {
535
+ as?: string;
536
+ }): Promise<{
537
+ synced: string[];
538
+ }>;
539
+ /**
540
+ * Await any in-flight background revalidation, resolving immediately when idle. The
541
+ * quiesce handle for the fire-and-forget path, mirroring the promise `runSyncWatch`
542
+ * returns for the daemon: call it before tearing a repo down (shutdown, teardown) so
543
+ * no `.avcs` write is still outstanding. Never rejects — a failed revalidate is logged
544
+ * and swallowed, exactly as it is on the read path.
545
+ */
546
+ settleBackgroundSync(): Promise<void>;
469
547
  /** List the workspaces that have landed onto their base line. */
470
548
  landedWorkspaces(): Promise<string[]>;
471
549
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/api/repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/api/repo.ts"],"names":[],"mappings":"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"}
package/dist/api/repo.js CHANGED
@@ -18,7 +18,7 @@ import { encodeCbor, decodeCbor } from "../core/cbor.js";
18
18
  import { computeReliability } from "../policy/reliability.js";
19
19
  import { defaultPolicy, MATERIALIZER_VERSION } from "../reducer/policy.js";
20
20
  import { Keyring, generateKeypair, signMessage, } from "../core/identity.js";
21
- import { checkLease, isActive } from "../concurrency/lease.js";
21
+ import { checkLease, isActive, scopesOverlap } from "../concurrency/lease.js";
22
22
  import { Metrics } from "../observe/metrics.js";
23
23
  import { silentLogger } from "../observe/logger.js";
24
24
  // Sidecar: ignore EVERYTHING under .avcs/ (the `*` also ignores this file itself), so the
@@ -205,6 +205,17 @@ export class Repo {
205
205
  * a no-auth/read-public hub, so signing is opt-in by having a key, not mandatory.
206
206
  */
207
207
  async #resolveHubSigner(explicitActorId) {
208
+ const actorId = await this.localActorId(explicitActorId);
209
+ if (!actorId)
210
+ return undefined;
211
+ const privateKey = await this.loadLocalKey(actorId);
212
+ return privateKey ? { keyId: actorId, privateKey } : undefined;
213
+ }
214
+ /** The replica's local actor identity, resolved by the same order #resolveHubSigner
215
+ * uses (explicit → AVCS_ACTOR → config.json → sole private key) but WITHOUT requiring
216
+ * a private key to exist — a contention check (Phase 15.3) needs a perspective, not a
217
+ * credential. Returns undefined when nothing resolves. */
218
+ async localActorId(explicitActorId) {
208
219
  let actorId = explicitActorId ?? process.env.AVCS_ACTOR;
209
220
  if (!actorId) {
210
221
  const cfg = await this.#readConfig();
@@ -219,10 +230,7 @@ export class Repo {
219
230
  }
220
231
  catch { /* no private keystore yet */ }
221
232
  }
222
- if (!actorId)
223
- return undefined;
224
- const privateKey = await this.loadLocalKey(actorId);
225
- return privateKey ? { keyId: actorId, privateKey } : undefined;
233
+ return actorId;
226
234
  }
227
235
  /**
228
236
  * Provision an owner key: mint a keypair, register the public half as trusted, and
@@ -386,6 +394,18 @@ export class Repo {
386
394
  // Maintain the entity index (Phase 9): key → op oids for fast history/blame.
387
395
  for (const key of keysOf({ ...op, oid }))
388
396
  await this.store.appendEntityIndex(key, oid);
397
+ if (args.warnContention) {
398
+ const warnings = await this.contention({ keys: [...keysOf({ ...op, oid })], actorId: op.actor.id, line: args.line });
399
+ for (const w of warnings) {
400
+ this.metrics.inc("contention.warnings");
401
+ this.logger.warn("contention.warn", {
402
+ key: w.key,
403
+ op: oid,
404
+ theirs: w.theirs.map((t) => `${t.actor}:${t.op.slice(0, 16)}`),
405
+ leaseHolders: w.leaseHolders.map((l) => l.actor),
406
+ });
407
+ }
408
+ }
389
409
  return oid;
390
410
  }
391
411
  /** Convenience: write file content as a blob + a put_file operation. */
@@ -403,6 +423,7 @@ export class Repo {
403
423
  line: args.line,
404
424
  workspace: args.workspace,
405
425
  signWith: args.signWith,
426
+ warnContention: args.warnContention,
406
427
  });
407
428
  }
408
429
  /**
@@ -429,6 +450,7 @@ export class Repo {
429
450
  line: args.line,
430
451
  workspace: args.workspace,
431
452
  signWith: args.signWith,
453
+ warnContention: args.warnContention,
432
454
  });
433
455
  }
434
456
  async attachEvidence(args) {
@@ -492,6 +514,88 @@ export class Repo {
492
514
  return { granted: true, leaseOid: await this.store.put(lease) };
493
515
  });
494
516
  }
517
+ // ── contention: early conflict warning (Phase 15.3, docs/17 §15.3) ──────────
518
+ /**
519
+ * Report contention on entity keys BEFORE finalize would discover it: for each key,
520
+ * the operations by other actors that the caller has not built on (outside the
521
+ * caller's causal closure) and are still live (neither decision-rejected nor built
522
+ * upon by a later op on the key), plus other actors' active leases overlapping the
523
+ * key. Discovery is via the entity index — O(ops-on-key), no reduce.
524
+ *
525
+ * Perspective resolution ("mine"), first hit wins:
526
+ * - `sessionOid`: that session's actor; its ops seed both the key set and the closure.
527
+ * - `actorId` (+ optional `keys`): that actor's ops on the resolved keys seed the
528
+ * closure; with no `keys` given, every key the actor has authored on is checked.
529
+ * - `keys` alone: no closure filter — everything live by anyone on the key reports.
530
+ */
531
+ async contention(args) {
532
+ const line = args.line ?? "main";
533
+ let mine = args.actorId;
534
+ const keys = new Set(args.keys ?? []);
535
+ const myOpOids = [];
536
+ if (args.sessionOid) {
537
+ const sess = await this.store.get(args.sessionOid);
538
+ mine ??= sess.actor.id;
539
+ for (const op of await this.#allOpsTailed()) {
540
+ if (op.sessionOid !== args.sessionOid)
541
+ continue;
542
+ myOpOids.push(op.oid);
543
+ for (const k of keysOf(op))
544
+ keys.add(k);
545
+ }
546
+ }
547
+ else if (mine) {
548
+ for (const op of await this.#allOpsTailed()) {
549
+ if (op.actor.id !== mine)
550
+ continue;
551
+ if (keys.size && ![...keysOf(op)].some((k) => keys.has(k)))
552
+ continue;
553
+ myOpOids.push(op.oid);
554
+ if (!args.keys?.length)
555
+ for (const k of keysOf(op))
556
+ keys.add(k);
557
+ }
558
+ }
559
+ if (!keys.size)
560
+ return [];
561
+ // Ops I've already seen/built on are not surprises — they're my history.
562
+ const myClosure = myOpOids.length ? await this.#closureOf(myOpOids) : new Set();
563
+ const rejected = new Set((await this.store.collect("decision")).flatMap((d) => d.rejectedOps));
564
+ const leases = await this.activeLeases();
565
+ const out = [];
566
+ for (const key of [...keys].sort()) {
567
+ const ops = [];
568
+ for (const oid of await this.store.readEntityIndex(key)) {
569
+ if (!(await this.store.has(oid)))
570
+ continue; // GC'd since indexed
571
+ const op = await this.store.get(oid);
572
+ if ((op.line ?? "main") !== line || op.private)
573
+ continue;
574
+ ops.push({ ...op, oid });
575
+ }
576
+ // An op some later op (on any key) causally builds on is superseded work, not
577
+ // contention — one ancestry walk over the union of the key ops' deps finds them.
578
+ const builtUpon = await this.#closureOf(ops.flatMap((o) => o.causalDeps));
579
+ const theirs = ops
580
+ .filter((o) => {
581
+ const oid = o.oid;
582
+ return o.actor.id !== mine && !myClosure.has(oid) && !rejected.has(oid) && !builtUpon.has(oid);
583
+ })
584
+ .sort((a, b) => a.lamport - b.lamport || String(a.oid).localeCompare(String(b.oid)))
585
+ .map((o) => ({ op: o.oid, actor: o.actor.id, lamport: o.lamport, purpose: o.declaredPurpose, createdAt: o.createdAt }));
586
+ const leaseHolders = leases
587
+ .filter((l) => l.actor.id !== mine && l.writeScopes.some((s) => scopesOverlap(key, s)))
588
+ .map((l) => ({
589
+ actor: l.actor.id,
590
+ leaseOid: l.oid,
591
+ scope: l.writeScopes.find((s) => scopesOverlap(key, s)),
592
+ expiresAt: l.expiresAt,
593
+ }));
594
+ if (theirs.length || leaseHolders.length)
595
+ out.push({ key, theirs, leaseHolders });
596
+ }
597
+ return out;
598
+ }
495
599
  /** Build a minimal repair packet for ops whose validation failed. */
496
600
  async repairContext(opOids) {
497
601
  const { buildRepairContext } = await import("../validation/repair.js");
@@ -1382,9 +1486,118 @@ export class Repo {
1382
1486
  const url = await this.#resolveRemote(remote);
1383
1487
  const { pulled } = await this.pullHub(url);
1384
1488
  const { pushed, rejected } = await this.pushHub(url, opts);
1489
+ await this.#recordSyncAt(remote); // Phase 15.2: the freshness window keys off this stamp
1385
1490
  this.logger.info("sync.completed", { remote, url, pulled, pushed, rejected });
1386
1491
  return { pulled, pushed, rejected };
1387
1492
  }
1493
+ // ── live convergence: freshness window (Phase 15.2, docs/17 §15.2) ─────────
1494
+ // `.avcs/last-sync.json` — remote name → ISO timestamp of the last successful sync.
1495
+ // An aux file like remotes.json: per-replica state, never an object, never gossiped.
1496
+ /** Freshness window applied to an `autoSync` remote that doesn't set `freshnessMs`. */
1497
+ static DEFAULT_FRESHNESS_MS = 30_000;
1498
+ async #readLastSync() {
1499
+ const raw = await this.store.readAux("last-sync.json");
1500
+ if (!raw)
1501
+ return {};
1502
+ try {
1503
+ return JSON.parse(raw.toString("utf8"));
1504
+ }
1505
+ catch {
1506
+ return {};
1507
+ }
1508
+ }
1509
+ async #recordSyncAt(remote) {
1510
+ const last = await this.#readLastSync();
1511
+ last[remote] = new Date().toISOString();
1512
+ await this.store.writeAux("last-sync.json", JSON.stringify(last, null, 2) + "\n");
1513
+ }
1514
+ /** Milliseconds since the last successful sync with `remote` (Infinity when never). */
1515
+ async syncAgeMs(remote = "origin") {
1516
+ const at = Date.parse((await this.#readLastSync())[remote] ?? "");
1517
+ return Number.isFinite(at) ? Date.now() - at : Infinity;
1518
+ }
1519
+ /**
1520
+ * BLOCKING freshness sync (Phase 15.2): sync each named remote (default: every
1521
+ * `autoSync` remote) whose last successful sync is older than its freshness window.
1522
+ * For callers that must not read stale state (e.g. just before a submit). The read
1523
+ * path itself never calls this — materialize only ever fires a BACKGROUND revalidate.
1524
+ */
1525
+ async syncIfStale(remote, opts) {
1526
+ const remotes = await this.#readRemotes();
1527
+ const names = remote !== undefined ? [remote] : Object.keys(remotes).filter((n) => remotes[n].autoSync);
1528
+ const synced = [];
1529
+ for (const name of names) {
1530
+ const cfg = remotes[name];
1531
+ if (!cfg && !/^https?:\/\//.test(name))
1532
+ throw new Error(`unknown remote: ${name}`);
1533
+ const freshnessMs = cfg?.freshnessMs ?? _a.DEFAULT_FRESHNESS_MS;
1534
+ if ((await this.syncAgeMs(name)) < freshnessMs)
1535
+ continue;
1536
+ await this.sync(name, opts);
1537
+ synced.push(name);
1538
+ }
1539
+ return { synced };
1540
+ }
1541
+ // Stale-while-revalidate on materialize: when an autoSync remote's window has lapsed,
1542
+ // fire a background sync and return immediately — the read path is the throughput-
1543
+ // critical path and is NEVER blocked on the network. In-flight + a 1s re-check
1544
+ // throttle keep the hot loop to at most one aux read per second.
1545
+ //
1546
+ // The in-flight run is KEPT as a promise rather than a boolean: "fire and forget" with
1547
+ // no handle is unobservable from outside, and a revalidate outlives the observable
1548
+ // effect that a caller would naturally wait on (pull lands the objects, but push and
1549
+ // the last-sync stamp write still follow). Whoever tears the repo down next — a test's
1550
+ // rm, a daemon shutdown — would otherwise race those writes. See settleBackgroundSync.
1551
+ #bgSync = null;
1552
+ #lastFreshnessCheck = 0;
1553
+ /**
1554
+ * Await any in-flight background revalidation, resolving immediately when idle. The
1555
+ * quiesce handle for the fire-and-forget path, mirroring the promise `runSyncWatch`
1556
+ * returns for the daemon: call it before tearing a repo down (shutdown, teardown) so
1557
+ * no `.avcs` write is still outstanding. Never rejects — a failed revalidate is logged
1558
+ * and swallowed, exactly as it is on the read path.
1559
+ */
1560
+ async settleBackgroundSync() {
1561
+ // Loop rather than a single await: a materialize concurrent with the settle can start
1562
+ // the next run while we're waiting on this one.
1563
+ for (let inFlight = this.#bgSync; inFlight; inFlight = this.#bgSync)
1564
+ await inFlight;
1565
+ }
1566
+ #maybeBackgroundSync() {
1567
+ const now = Date.now();
1568
+ if (this.#bgSync || now - this.#lastFreshnessCheck < 1_000)
1569
+ return;
1570
+ this.#lastFreshnessCheck = now;
1571
+ // Publish the handle BEFORE arranging its clear, and clear by identity: a body that
1572
+ // ever settles without suspending would otherwise null the field first and be
1573
+ // resurrected by this assignment, wedging the guard above at "always in flight".
1574
+ const run = this.#revalidateStaleRemotes();
1575
+ this.#bgSync = run;
1576
+ void run.finally(() => { if (this.#bgSync === run)
1577
+ this.#bgSync = null; });
1578
+ }
1579
+ /** One revalidation pass: sync every autoSync remote past its freshness window.
1580
+ * Never rejects — see the catch. */
1581
+ async #revalidateStaleRemotes() {
1582
+ try {
1583
+ const remotes = await this.#readRemotes();
1584
+ for (const [name, cfg] of Object.entries(remotes)) {
1585
+ if (!cfg.autoSync)
1586
+ continue;
1587
+ const freshnessMs = cfg.freshnessMs ?? _a.DEFAULT_FRESHNESS_MS;
1588
+ const age = await this.syncAgeMs(name);
1589
+ if (age < freshnessMs)
1590
+ continue;
1591
+ this.logger.info("sync.freshness.revalidate", { remote: name, ageMs: age === Infinity ? null : Math.round(age) });
1592
+ await this.sync(name);
1593
+ }
1594
+ }
1595
+ catch (e) {
1596
+ // Background revalidation failing (hub down, network) must never surface into
1597
+ // the read path — log and try again after the next materialize + throttle.
1598
+ this.logger.warn("sync.freshness.fail", { error: String(e.message) });
1599
+ }
1600
+ }
1388
1601
  /** Resolve a view's query into the candidate operation set, then reduce. */
1389
1602
  /**
1390
1603
  * Workspaces that have LANDED onto their base line (docs/16). A landed workspace's ops
@@ -1423,6 +1636,9 @@ export class Repo {
1423
1636
  }
1424
1637
  async materialize(viewName = "main", opts) {
1425
1638
  this.metrics.inc("materialize.calls");
1639
+ // Phase 15.2 stale-while-revalidate: an autoSync remote past its freshness window
1640
+ // triggers a BACKGROUND sync. Fire-and-forget — this read never waits on the network.
1641
+ this.#maybeBackgroundSync();
1426
1642
  // Compaction (B3, default since 13.3): on a cold instance, seed the incremental base
1427
1643
  // from the persisted snapshot so this materialize re-reduces only ops added since it,
1428
1644
  // not all history. A corrupt/stale/version-mismatched snapshot is discarded (→ full