@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.
- package/dist/api/repo.d.ts +78 -0
- package/dist/api/repo.d.ts.map +1 -1
- package/dist/api/repo.js +221 -5
- package/dist/api/repo.js.map +1 -1
- package/dist/cli.js +42 -0
- package/dist/cli.js.map +1 -1
- package/dist/hub/hubServer.d.ts +9 -2
- package/dist/hub/hubServer.d.ts.map +1 -1
- package/dist/hub/hubServer.js +106 -4
- package/dist/hub/hubServer.js.map +1 -1
- package/dist/hub/syncWatch.d.ts +56 -0
- package/dist/hub/syncWatch.d.ts.map +1 -0
- package/dist/hub/syncWatch.js +186 -0
- package/dist/hub/syncWatch.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/guide.d.ts +5 -0
- package/dist/mcp/guide.d.ts.map +1 -0
- package/dist/mcp/guide.js +67 -0
- package/dist/mcp/guide.js.map +1 -0
- package/dist/mcp/respond.d.ts +32 -0
- package/dist/mcp/respond.d.ts.map +1 -0
- package/dist/mcp/respond.js +74 -0
- package/dist/mcp/respond.js.map +1 -0
- package/dist/mcp/server.d.ts +19 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +200 -37
- package/dist/mcp/server.js.map +1 -1
- package/dist/merge/merge3.d.ts +13 -0
- package/dist/merge/merge3.d.ts.map +1 -1
- package/dist/merge/merge3.js +1 -1
- package/dist/merge/merge3.js.map +1 -1
- package/dist/query/diff.d.ts +13 -0
- package/dist/query/diff.d.ts.map +1 -1
- package/dist/query/diff.js +61 -0
- package/dist/query/diff.js.map +1 -1
- package/dist/store/lock.d.ts +8 -0
- package/dist/store/lock.d.ts.map +1 -1
- package/dist/store/lock.js +33 -0
- package/dist/store/lock.js.map +1 -1
- package/package.json +1 -1
package/dist/api/repo.d.ts
CHANGED
|
@@ -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
|
/**
|
package/dist/api/repo.d.ts.map
CHANGED
|
@@ -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
|
-
|
|
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
|