@amalgm/shell 0.1.105 → 0.1.107
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/PURPOSE.md +18 -0
- package/dist/entity-apply-store.js +60 -4
- package/dist/entity-apply-store.js.map +1 -1
- package/dist/entity-record-store.js +15 -1
- package/dist/entity-record-store.js.map +1 -1
- package/dist/snapshot-delivery-baseline.d.ts +12 -0
- package/dist/snapshot-delivery-baseline.js +58 -0
- package/dist/snapshot-delivery-baseline.js.map +1 -0
- package/dist/user-ground-host.d.ts +5 -0
- package/dist/user-ground-host.js +215 -31
- package/dist/user-ground-host.js.map +1 -1
- package/dist/wire-client.js +1 -1
- package/package.json +2 -2
package/PURPOSE.md
CHANGED
|
@@ -267,6 +267,10 @@ shell only assembles.
|
|
|
267
267
|
One recovered Add intent that cannot currently be satisfied remains
|
|
268
268
|
durable and reports its exact failure, but it cannot hold unrelated machine
|
|
269
269
|
readiness or other Add responsibilities hostage.
|
|
270
|
+
Add and Add recovery read only the selected workspace's recursive closure
|
|
271
|
+
and the exact reference parents they must refresh; unrelated materialized
|
|
272
|
+
workspaces remain SQLite facts and never become the selected operation's
|
|
273
|
+
in-memory graph.
|
|
270
274
|
Staging beside the destination makes the reveal an atomic rename on every
|
|
271
275
|
supported filesystem.
|
|
272
276
|
Register reuses identity at the same native address. Device and inode may
|
|
@@ -660,6 +664,20 @@ shell only assembles.
|
|
|
660
664
|
no file effect inside a directory rewrites its parent's mode. Modes are
|
|
661
665
|
therefore never captured, transported, or synchronized between machines.
|
|
662
666
|
|
|
667
|
+
58. **A materialization graph and its delivery watermark are one fact.**
|
|
668
|
+
Every entity-registry snapshot names the complete authority delivery
|
|
669
|
+
prefix already represented by its graph. Before workspace selection, Add
|
|
670
|
+
folds any complete later committed tail onto that verified base, producing
|
|
671
|
+
one current graph and watermark `N`. It installs that graph and advances
|
|
672
|
+
Receive and Apply through `N` in the same local adoption boundary; records
|
|
673
|
+
at or below `N` are retained history, never filesystem work, and only
|
|
674
|
+
later records may Apply. The first later record
|
|
675
|
+
on an entity UUID establishes its immediate entity predecessor from the
|
|
676
|
+
complete snapshot prefix, after which ordinary dense per-entity gap
|
|
677
|
+
checking resumes. A publisher may name only the exact locally received
|
|
678
|
+
and applied prefix, and authority accepts that graph only while `N` is
|
|
679
|
+
still the committed delivery tail under the entity-record ordering gate.
|
|
680
|
+
|
|
663
681
|
## Relationship to amalgm-engine
|
|
664
682
|
|
|
665
683
|
Stage 1 cut the bricks out of the engine. Stage 2 proves them here, composed.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** Persistent SQLite effects for Live's Inbox -> Apply -> Verify rail. */
|
|
2
2
|
import { createHash } from "node:crypto";
|
|
3
3
|
import { assertApplyIntent, assertRecord, canonicalVersion, decodeAcceptedEntityRecord, membershipHash, sameRecords, } from "@amalgm/live";
|
|
4
|
+
import { ensureSnapshotDeliveryBaselineTable } from "./snapshot-delivery-baseline.js";
|
|
4
5
|
const sha256Hex = (input) => createHash("sha256").update(input).digest("hex");
|
|
5
6
|
const GROUND_COLUMNS = [
|
|
6
7
|
"uuid", "resource_id", "root_uuid", "type", "parent_uuid", "name", "status", "version",
|
|
@@ -72,6 +73,9 @@ export class EntityApplySqliteStore {
|
|
|
72
73
|
#updateNotebookVersion;
|
|
73
74
|
#materializedMatches;
|
|
74
75
|
#resolveMaterializedHistory;
|
|
76
|
+
#baselineRows;
|
|
77
|
+
#baselineIntents;
|
|
78
|
+
#snapshotBaseline;
|
|
75
79
|
constructor(database, options = {}) {
|
|
76
80
|
this.#database = database;
|
|
77
81
|
this.#now = options.now ?? Date.now;
|
|
@@ -80,6 +84,7 @@ export class EntityApplySqliteStore {
|
|
|
80
84
|
database.pragma("busy_timeout = 5000");
|
|
81
85
|
database.pragma("journal_mode = WAL");
|
|
82
86
|
database.pragma("synchronous = FULL");
|
|
87
|
+
ensureSnapshotDeliveryBaselineTable(database);
|
|
83
88
|
database.exec(`
|
|
84
89
|
CREATE TABLE IF NOT EXISTS entity_apply_state (
|
|
85
90
|
entity_id TEXT PRIMARY KEY,
|
|
@@ -118,9 +123,14 @@ export class EntityApplySqliteStore {
|
|
|
118
123
|
FROM entity_apply_state WHERE authority_id = ? AND entity_id = ?
|
|
119
124
|
`);
|
|
120
125
|
this.#inboxAfter = database.prepare(`
|
|
121
|
-
SELECT record_json AS recordJson
|
|
126
|
+
SELECT record_json AS recordJson, delivery_sequence AS deliverySequence
|
|
127
|
+
FROM record_inbox
|
|
122
128
|
WHERE authority_id = ? AND entity_id = ? AND global_sequence > ?
|
|
123
129
|
ORDER BY global_sequence
|
|
130
|
+
`);
|
|
131
|
+
this.#snapshotBaseline = database.prepare(`
|
|
132
|
+
SELECT delivery_sequence AS deliverySequence
|
|
133
|
+
FROM authority_snapshot_baselines WHERE authority_id = ?
|
|
124
134
|
`);
|
|
125
135
|
this.#intent = database.prepare(`
|
|
126
136
|
SELECT intent_json AS intentJson FROM entity_apply_intents
|
|
@@ -260,6 +270,31 @@ export class EntityApplySqliteStore {
|
|
|
260
270
|
UPDATE record_inbox SET resolved_at = ?
|
|
261
271
|
WHERE authority_id = ? AND entity_id = ? AND global_sequence <= ?
|
|
262
272
|
AND resolved_at IS NULL
|
|
273
|
+
`);
|
|
274
|
+
this.#baselineRows = database.prepare(`
|
|
275
|
+
SELECT inbox.authority_id AS authorityId,
|
|
276
|
+
inbox.entity_id AS entityId,
|
|
277
|
+
MAX(inbox.global_sequence) AS resolvedThrough
|
|
278
|
+
FROM record_inbox AS inbox
|
|
279
|
+
JOIN authority_snapshot_baselines AS baseline
|
|
280
|
+
ON baseline.authority_id = inbox.authority_id
|
|
281
|
+
LEFT JOIN entity_apply_state AS state
|
|
282
|
+
ON state.authority_id = inbox.authority_id
|
|
283
|
+
AND state.entity_id = inbox.entity_id
|
|
284
|
+
WHERE inbox.delivery_sequence <= baseline.delivery_sequence
|
|
285
|
+
AND inbox.global_sequence > COALESCE(state.resolved_through, 0)
|
|
286
|
+
GROUP BY inbox.authority_id, inbox.entity_id
|
|
287
|
+
`);
|
|
288
|
+
this.#baselineIntents = database.prepare(`
|
|
289
|
+
SELECT intent.intent_json AS intentJson
|
|
290
|
+
FROM entity_apply_intents AS intent
|
|
291
|
+
JOIN record_inbox AS target
|
|
292
|
+
ON target.authority_id = intent.authority_id
|
|
293
|
+
AND target.entity_id = intent.entity_id
|
|
294
|
+
AND target.global_sequence = json_extract(intent.intent_json, '$.throughSequence')
|
|
295
|
+
JOIN authority_snapshot_baselines AS baseline
|
|
296
|
+
ON baseline.authority_id = intent.authority_id
|
|
297
|
+
WHERE target.delivery_sequence <= baseline.delivery_sequence
|
|
263
298
|
`);
|
|
264
299
|
}
|
|
265
300
|
/**
|
|
@@ -273,9 +308,22 @@ export class EntityApplySqliteStore {
|
|
|
273
308
|
* private preparation left by an interrupted older process.
|
|
274
309
|
*/
|
|
275
310
|
adoptVerifiedMaterialization(rootUUID = null) {
|
|
276
|
-
const matches = this.#materializedMatches.all(rootUUID, rootUUID);
|
|
277
311
|
const supersededIntents = [];
|
|
278
312
|
let settledRecords = 0;
|
|
313
|
+
this.#database.transaction(() => {
|
|
314
|
+
for (const row of this.#baselineRows.all()) {
|
|
315
|
+
const prior = this.#state.get(row.authorityId, row.entityId);
|
|
316
|
+
this.#upsertState.run(row.entityId, row.authorityId, row.resolvedThrough, prior?.materializedSequence ?? null, prior?.materializedRecordJson ?? null);
|
|
317
|
+
}
|
|
318
|
+
for (const { intentJson } of this.#baselineIntents.all()) {
|
|
319
|
+
const intent = JSON.parse(intentJson);
|
|
320
|
+
assertApplyIntent(intent);
|
|
321
|
+
this.#deleteIntent.run(intent.authorityId, intent.entityId);
|
|
322
|
+
this.#verified.delete(intent.entityId);
|
|
323
|
+
supersededIntents.push(intent);
|
|
324
|
+
}
|
|
325
|
+
})();
|
|
326
|
+
const matches = this.#materializedMatches.all(rootUUID, rootUUID);
|
|
279
327
|
this.#database.transaction(() => {
|
|
280
328
|
for (const match of matches) {
|
|
281
329
|
const accepted = decodeAcceptedEntityRecord(match.recordJson);
|
|
@@ -321,8 +369,16 @@ export class EntityApplySqliteStore {
|
|
|
321
369
|
const intent = this.#readIntent(entityId);
|
|
322
370
|
const authorityId = intent?.authorityId ?? this.#authorityFor(entityId);
|
|
323
371
|
const state = this.#state.get(authorityId, entityId);
|
|
324
|
-
|
|
325
|
-
const
|
|
372
|
+
let resolvedThrough = state?.resolvedThrough ?? 0;
|
|
373
|
+
const rows = this.#inboxAfter.all(authorityId, entityId, resolvedThrough);
|
|
374
|
+
const baseline = this.#snapshotBaseline.get(authorityId);
|
|
375
|
+
const first = rows[0];
|
|
376
|
+
if (!state && first && baseline
|
|
377
|
+
&& first.deliverySequence > baseline.deliverySequence) {
|
|
378
|
+
const firstRecord = decodeAcceptedEntityRecord(first.recordJson);
|
|
379
|
+
resolvedThrough = firstRecord.globalSequence - 1;
|
|
380
|
+
}
|
|
381
|
+
const records = rows.map(({ recordJson }) => decodeAcceptedEntityRecord(recordJson));
|
|
326
382
|
if (records.length === 0)
|
|
327
383
|
continue;
|
|
328
384
|
const target = records.at(-1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-apply-store.js","sourceRoot":"","sources":["../src/entity-apply-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entity-apply-store.js","sourceRoot":"","sources":["../src/entity-apply-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** Persistent SQLite effects for Live's entity Record rail. No delivery policy lives here. */
|
|
2
2
|
import { acceptOutboxRow, decodeAcceptedEntityRecord, decodeLocalEntityRecord, encodeEntityRecord, receiveEntityRecord, } from "@amalgm/live";
|
|
3
|
+
import { ensureSnapshotDeliveryBaselineTable } from "./snapshot-delivery-baseline.js";
|
|
3
4
|
class ReceiveGap extends Error {
|
|
4
5
|
result;
|
|
5
6
|
constructor(result) {
|
|
@@ -20,9 +21,11 @@ export class EntityRecordSqliteStore {
|
|
|
20
21
|
#insertInbox;
|
|
21
22
|
#advanceEntityCursor;
|
|
22
23
|
#advanceDeliveryCursor;
|
|
24
|
+
#snapshotBaseline;
|
|
23
25
|
constructor(database, now = Date.now) {
|
|
24
26
|
this.#database = database;
|
|
25
27
|
this.#now = now;
|
|
28
|
+
ensureSnapshotDeliveryBaselineTable(database);
|
|
26
29
|
this.#pending = database.prepare(`
|
|
27
30
|
SELECT candidate.local_sequence AS localSequence,
|
|
28
31
|
candidate.record_json AS recordJson
|
|
@@ -79,6 +82,10 @@ export class EntityRecordSqliteStore {
|
|
|
79
82
|
VALUES (?, ?)
|
|
80
83
|
ON CONFLICT(authority_id) DO UPDATE SET
|
|
81
84
|
received_through = MAX(received_through, excluded.received_through)
|
|
85
|
+
`);
|
|
86
|
+
this.#snapshotBaseline = database.prepare(`
|
|
87
|
+
SELECT delivery_sequence AS deliverySequence
|
|
88
|
+
FROM authority_snapshot_baselines WHERE authority_id = ?
|
|
82
89
|
`);
|
|
83
90
|
}
|
|
84
91
|
readPending(limit) {
|
|
@@ -114,16 +121,23 @@ export class EntityRecordSqliteStore {
|
|
|
114
121
|
receive(input) {
|
|
115
122
|
try {
|
|
116
123
|
return this.#database.transaction(() => {
|
|
124
|
+
const baselineRow = this.#snapshotBaseline.get(input.authorityId);
|
|
125
|
+
const snapshotThrough = baselineRow?.deliverySequence ?? 0;
|
|
117
126
|
for (const delivery of input.deliveries) {
|
|
118
127
|
if (delivery.record.authorityId !== input.authorityId) {
|
|
119
128
|
throw new Error(`entity record authority ${delivery.record.authorityId} does not match ${input.authorityId}`);
|
|
120
129
|
}
|
|
130
|
+
if (delivery.deliverySequence <= snapshotThrough)
|
|
131
|
+
continue;
|
|
121
132
|
const cursor = this.#entityCursor.get(delivery.record.entityId);
|
|
122
133
|
if (cursor && cursor.authorityId !== delivery.record.authorityId) {
|
|
123
134
|
throw new Error(`entity ${delivery.record.entityId} cannot change authority channels`);
|
|
124
135
|
}
|
|
125
136
|
const existingRow = this.#inboxRecord.get(delivery.record.authorityId, delivery.record.entityId, delivery.record.globalSequence);
|
|
126
|
-
const decision = receiveEntityRecord(cursor?.receivedThrough
|
|
137
|
+
const decision = receiveEntityRecord(cursor?.receivedThrough
|
|
138
|
+
?? (delivery.deliverySequence > snapshotThrough
|
|
139
|
+
? delivery.record.globalSequence - 1
|
|
140
|
+
: 0), delivery.record, existingRow ? decodeAcceptedEntityRecord(existingRow.recordJson) : null);
|
|
127
141
|
if (decision.kind === "gap") {
|
|
128
142
|
throw new ReceiveGap({ kind: "gap", gap: decision });
|
|
129
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-record-store.js","sourceRoot":"","sources":["../src/entity-record-store.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAE9F,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,GAMpB,MAAM,cAAc,CAAC;AAGtB,MAAM,UAAW,SAAQ,KAAK;IACnB,MAAM,CAAgC;IAE/C,YAAY,MAAwE;QAClF,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,uBAAuB;IACzB,SAAS,CAAoB;IAC7B,IAAI,CAAe;IACnB,QAAQ,CAAqB;IAC7B,MAAM,CAAqB;IAC3B,cAAc,CAAqB;IACnC,eAAe,CAAqB;IACpC,aAAa,CAAqB;IAClC,cAAc,CAAqB;IACnC,YAAY,CAAqB;IACjC,YAAY,CAAqB;IACjC,oBAAoB,CAAqB;IACzC,sBAAsB,CAAqB;
|
|
1
|
+
{"version":3,"file":"entity-record-store.js","sourceRoot":"","sources":["../src/entity-record-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installs the one delivery boundary carried by a verified cloud snapshot.
|
|
3
|
+
*
|
|
4
|
+
* The snapshot already represents every authority delivery through N. The
|
|
5
|
+
* local authority cursor may therefore start at N, and retained Inbox rows at
|
|
6
|
+
* or below N are history rather than Apply work. Per-entity cursors remain
|
|
7
|
+
* lazy: the first later delivery proves its predecessor from this complete
|
|
8
|
+
* authority prefix.
|
|
9
|
+
*/
|
|
10
|
+
import Database from "better-sqlite3";
|
|
11
|
+
export declare function ensureSnapshotDeliveryBaselineTable(database: Database.Database): void;
|
|
12
|
+
export declare function adoptSnapshotDeliveryBaseline(database: Database.Database, authorityId: string, deliverySequence: number, now?: number): number;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installs the one delivery boundary carried by a verified cloud snapshot.
|
|
3
|
+
*
|
|
4
|
+
* The snapshot already represents every authority delivery through N. The
|
|
5
|
+
* local authority cursor may therefore start at N, and retained Inbox rows at
|
|
6
|
+
* or below N are history rather than Apply work. Per-entity cursors remain
|
|
7
|
+
* lazy: the first later delivery proves its predecessor from this complete
|
|
8
|
+
* authority prefix.
|
|
9
|
+
*/
|
|
10
|
+
export function ensureSnapshotDeliveryBaselineTable(database) {
|
|
11
|
+
database.exec(`
|
|
12
|
+
CREATE TABLE IF NOT EXISTS authority_snapshot_baselines (
|
|
13
|
+
authority_id TEXT PRIMARY KEY,
|
|
14
|
+
delivery_sequence INTEGER NOT NULL CHECK(delivery_sequence >= 0)
|
|
15
|
+
)
|
|
16
|
+
`);
|
|
17
|
+
}
|
|
18
|
+
export function adoptSnapshotDeliveryBaseline(database, authorityId, deliverySequence, now = Date.now()) {
|
|
19
|
+
if (!authorityId)
|
|
20
|
+
throw new Error("snapshot delivery authority is required");
|
|
21
|
+
if (!Number.isSafeInteger(deliverySequence) || deliverySequence < 0) {
|
|
22
|
+
throw new Error("snapshot delivery watermark must be a non-negative integer");
|
|
23
|
+
}
|
|
24
|
+
ensureSnapshotDeliveryBaselineTable(database);
|
|
25
|
+
return database.transaction(() => {
|
|
26
|
+
database.prepare(`
|
|
27
|
+
INSERT INTO authority_snapshot_baselines(authority_id, delivery_sequence)
|
|
28
|
+
VALUES (?, ?)
|
|
29
|
+
ON CONFLICT(authority_id) DO UPDATE SET
|
|
30
|
+
delivery_sequence = MAX(delivery_sequence, excluded.delivery_sequence)
|
|
31
|
+
`).run(authorityId, deliverySequence);
|
|
32
|
+
database.prepare(`
|
|
33
|
+
INSERT INTO authority_delivery_cursors(authority_id, received_through)
|
|
34
|
+
VALUES (?, ?)
|
|
35
|
+
ON CONFLICT(authority_id) DO UPDATE SET
|
|
36
|
+
received_through = MAX(received_through, excluded.received_through)
|
|
37
|
+
`).run(authorityId, deliverySequence);
|
|
38
|
+
// The snapshot replaces per-entity receive history through N. Retain a
|
|
39
|
+
// cursor only when this machine already holds a genuinely later delivery;
|
|
40
|
+
// otherwise the first post-snapshot record establishes its immediate
|
|
41
|
+
// predecessor from the complete authority prefix.
|
|
42
|
+
database.prepare(`
|
|
43
|
+
DELETE FROM entity_receive_cursors AS cursor
|
|
44
|
+
WHERE cursor.authority_id = ?
|
|
45
|
+
AND NOT EXISTS (
|
|
46
|
+
SELECT 1 FROM record_inbox AS inbox
|
|
47
|
+
WHERE inbox.authority_id = cursor.authority_id
|
|
48
|
+
AND inbox.entity_id = cursor.entity_id
|
|
49
|
+
AND inbox.delivery_sequence > ?
|
|
50
|
+
)
|
|
51
|
+
`).run(authorityId, deliverySequence);
|
|
52
|
+
return database.prepare(`
|
|
53
|
+
UPDATE record_inbox SET resolved_at = ?
|
|
54
|
+
WHERE authority_id = ? AND delivery_sequence <= ? AND resolved_at IS NULL
|
|
55
|
+
`).run(now, authorityId, deliverySequence).changes;
|
|
56
|
+
})();
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=snapshot-delivery-baseline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-delivery-baseline.js","sourceRoot":"","sources":["../src/snapshot-delivery-baseline.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,UAAU,mCAAmC,CAAC,QAA2B;IAC7E,QAAQ,CAAC,IAAI,CAAC;;;;;GAKb,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,QAA2B,EAC3B,WAAmB,EACnB,gBAAwB,EACxB,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,mCAAmC,CAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/B,QAAQ,CAAC,OAAO,CAAC;;;;;KAKhB,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACtC,QAAQ,CAAC,OAAO,CAAC;;;;;KAKhB,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACtC,uEAAuE;QACvE,0EAA0E;QAC1E,qEAAqE;QACrE,kDAAkD;QAClD,QAAQ,CAAC,OAAO,CAAC;;;;;;;;;KAShB,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC,OAAO,CAAC;;;KAGvB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC;IACrD,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
|
|
@@ -138,6 +138,10 @@ export declare class UserGroundHost {
|
|
|
138
138
|
flush(): Promise<void>;
|
|
139
139
|
private syncNow;
|
|
140
140
|
private flushObservedChanges;
|
|
141
|
+
/** Install the exact snapshot/tail boundary before Receive or Apply can
|
|
142
|
+
* treat older official history as materialization work. The SQLite cursor,
|
|
143
|
+
* retained Inbox resolution, and Apply baseline all derive from the same N. */
|
|
144
|
+
private adoptCloudDeliveryBaseline;
|
|
141
145
|
private startRecordRail;
|
|
142
146
|
private startApplyRail;
|
|
143
147
|
activateRuntimeTunnel(gatewayPort: number, runtimeToken: string): Promise<void>;
|
|
@@ -173,6 +177,7 @@ export declare class UserGroundHost {
|
|
|
173
177
|
/** Register is the deliberate cold graph-publication boundary. Ordinary
|
|
174
178
|
* Watch detection stops at a durable exact record and never rebuilds this
|
|
175
179
|
* resource snapshot. */
|
|
180
|
+
private prepareSnapshotPublication;
|
|
176
181
|
private publishMaterializedSnapshot;
|
|
177
182
|
/** Which of these heads does the authority hold sealed under the current
|
|
178
183
|
* content contract? Batched so a whole workspace costs a handful of
|