@cleocode/core 2026.10.7 → 2026.10.8
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/build-provenance.json +2 -2
- package/dist/cloud/nexus-link.d.ts +15 -0
- package/dist/cloud/nexus-link.d.ts.map +1 -1
- package/dist/cloud/nexus-link.js +25 -0
- package/dist/cloud/nexus-link.js.map +1 -1
- package/dist/cloud/nexus-vault.d.ts +14 -1
- package/dist/cloud/nexus-vault.d.ts.map +1 -1
- package/dist/cloud/nexus-vault.js +72 -5
- package/dist/cloud/nexus-vault.js.map +1 -1
- package/dist/cloud/replica-rebind.d.ts +51 -0
- package/dist/cloud/replica-rebind.d.ts.map +1 -0
- package/dist/cloud/replica-rebind.js +101 -0
- package/dist/cloud/replica-rebind.js.map +1 -0
- package/dist/doctor/container-reaper.d.ts +107 -0
- package/dist/doctor/container-reaper.d.ts.map +1 -0
- package/dist/doctor/container-reaper.js +194 -0
- package/dist/doctor/container-reaper.js.map +1 -0
- package/dist/store/sync/apply/applier.d.ts +3 -0
- package/dist/store/sync/apply/applier.d.ts.map +1 -1
- package/dist/store/sync/apply/applier.js +208 -85
- package/dist/store/sync/apply/applier.js.map +1 -1
- package/dist/store/sync/capture.d.ts +23 -3
- package/dist/store/sync/capture.d.ts.map +1 -1
- package/dist/store/sync/capture.js +31 -3
- package/dist/store/sync/capture.js.map +1 -1
- package/dist/store/sync/collision-settle.d.ts +62 -0
- package/dist/store/sync/collision-settle.d.ts.map +1 -0
- package/dist/store/sync/collision-settle.js +156 -0
- package/dist/store/sync/collision-settle.js.map +1 -0
- package/dist/store/sync/conflicts.d.ts +11 -0
- package/dist/store/sync/conflicts.d.ts.map +1 -1
- package/dist/store/sync/conflicts.js +18 -0
- package/dist/store/sync/conflicts.js.map +1 -1
- package/dist/store/sync/inherit.d.ts +15 -8
- package/dist/store/sync/inherit.d.ts.map +1 -1
- package/dist/store/sync/inherit.js +28 -11
- package/dist/store/sync/inherit.js.map +1 -1
- package/dist/store/sync/merge/types.d.ts +6 -0
- package/dist/store/sync/merge/types.d.ts.map +1 -1
- package/dist/store/sync/pull.d.ts +23 -2
- package/dist/store/sync/pull.d.ts.map +1 -1
- package/dist/store/sync/pull.js +27 -2
- package/dist/store/sync/pull.js.map +1 -1
- package/dist/store/sync/rebind.d.ts +112 -0
- package/dist/store/sync/rebind.d.ts.map +1 -0
- package/dist/store/sync/rebind.js +187 -0
- package/dist/store/sync/rebind.js.map +1 -0
- package/dist/store/sync/reconcile.d.ts +93 -0
- package/dist/store/sync/reconcile.d.ts.map +1 -0
- package/dist/store/sync/reconcile.js +330 -0
- package/dist/store/sync/reconcile.js.map +1 -0
- package/dist/store/sync/repair.d.ts +5 -0
- package/dist/store/sync/repair.d.ts.map +1 -1
- package/dist/store/sync/repair.js +2 -2
- package/dist/store/sync/repair.js.map +1 -1
- package/dist/store/sync/replica.d.ts +28 -1
- package/dist/store/sync/replica.d.ts.map +1 -1
- package/dist/store/sync/replica.js +17 -3
- package/dist/store/sync/replica.js.map +1 -1
- package/dist/store/sync/retire.d.ts +161 -0
- package/dist/store/sync/retire.d.ts.map +1 -0
- package/dist/store/sync/retire.js +193 -0
- package/dist/store/sync/retire.js.map +1 -0
- package/dist/store/sync/schema.d.ts +27 -0
- package/dist/store/sync/schema.d.ts.map +1 -1
- package/dist/store/sync/schema.js +43 -0
- package/dist/store/sync/schema.js.map +1 -1
- package/dist/store/sync/sealer.d.ts +10 -0
- package/dist/store/sync/sealer.d.ts.map +1 -1
- package/dist/store/sync/sealer.js +51 -5
- package/dist/store/sync/sealer.js.map +1 -1
- package/dist/store/sync/segments.d.ts.map +1 -1
- package/dist/store/sync/segments.js +6 -2
- package/dist/store/sync/segments.js.map +1 -1
- package/dist/store/sync/uid-alias.d.ts +100 -0
- package/dist/store/sync/uid-alias.d.ts.map +1 -0
- package/dist/store/sync/uid-alias.js +169 -0
- package/dist/store/sync/uid-alias.js.map +1 -0
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +48 -0
- package/dist/store/table-classification.js.map +1 -1
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +16 -5
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/complete-ci.d.ts.map +1 -1
- package/dist/tasks/complete-ci.js +7 -1
- package/dist/tasks/complete-ci.js.map +1 -1
- package/dist/tasks/done-plan.d.ts.map +1 -1
- package/dist/tasks/done-plan.js +24 -17
- package/dist/tasks/done-plan.js.map +1 -1
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +3 -2
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/gate-runner.d.ts +20 -0
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +141 -19
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +2 -0
- package/dist/validation/engine-ops.js.map +1 -1
- package/migrations/sync-journal/20261009130000_t13278-replica-retire/migration.sql +29 -0
- package/migrations/sync-journal/20261009140000_t13366-retire-confirm/migration.sql +18 -0
- package/migrations/sync-journal/20261010150000_t13397-uid-alias/migration.sql +32 -0
- package/migrations/sync-journal/20261010160000_t13399-rekey-follow/migration.sql +57 -0
- package/package.json +13 -13
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The origin settles a uid collision it lost (T13397; T12341 §6.4 "Re-key",
|
|
3
|
+
* §9.2 origin rule).
|
|
4
|
+
*
|
|
5
|
+
* Apply holds an incoming row whose uid a local row holds with another birth
|
|
6
|
+
* fingerprint (T13394) and records a `uid-collision` conflict naming the
|
|
7
|
+
* loser, the greater fingerprint. When the local row is the loser and this
|
|
8
|
+
* replica authored it, this replica is the authority that re-keys it: the row
|
|
9
|
+
* gets a fresh uid in a local `rekey` frame, so the capture triggers journal
|
|
10
|
+
* the K (and the cascade's K ops) and the next push publishes it. The held
|
|
11
|
+
* winner then places under the freed uid on the next pass, and every receiver
|
|
12
|
+
* holding the loser follows the K through its alias (store/sync/uid-alias).
|
|
13
|
+
*
|
|
14
|
+
* A loser this replica only received (its origin is elsewhere) is never
|
|
15
|
+
* re-keyed here: it waits for its origin's K, which moves it like any re-key.
|
|
16
|
+
*
|
|
17
|
+
* @module store/sync/collision-settle
|
|
18
|
+
* @task T13397
|
|
19
|
+
*/
|
|
20
|
+
import { rekeyRowUid } from '../display-id-alias.js';
|
|
21
|
+
import { mintRowUid } from '../row-identity.js';
|
|
22
|
+
import { BIRTH_FP_COLUMN, rowIdentitySpec, UID_COLUMN } from '../row-identity-registry.js';
|
|
23
|
+
import { setRowUidNative } from '../sqlite-data-accessor.js';
|
|
24
|
+
import { captureRekeyAnnouncement, captureTableDef, finishCaptureFrame, openCaptureFrame, } from './capture.js';
|
|
25
|
+
import { stagedTxns } from './inbox.js';
|
|
26
|
+
import { hasTable } from './schema.js';
|
|
27
|
+
import { markAliasAnnounced, owedAnnouncements } from './uid-alias.js';
|
|
28
|
+
const q = (id) => `"${id.replaceAll('"', '""')}"`;
|
|
29
|
+
/** The incoming (winner) fingerprint of each open lost collision, by row. */
|
|
30
|
+
function lostCollisions(db, stream) {
|
|
31
|
+
const open = db
|
|
32
|
+
.prepare(`SELECT seq, txn_idx AS txnIdx, op_idx AS opIdx, tbl, uid FROM _sync_conflict
|
|
33
|
+
WHERE stream = ? AND kind = 'uid-collision' AND rule = 'loser:local' AND resolved_at IS NULL`)
|
|
34
|
+
.all(stream);
|
|
35
|
+
const out = new Map();
|
|
36
|
+
if (open.length === 0)
|
|
37
|
+
return out;
|
|
38
|
+
const staged = stagedTxns(db, stream);
|
|
39
|
+
for (const c of open) {
|
|
40
|
+
const st = staged.find((s) => s.key.seq === c.seq && s.key.txnIdx === c.txnIdx);
|
|
41
|
+
const fp = st?.txn.ops[c.opIdx]?.bfp;
|
|
42
|
+
if (fp)
|
|
43
|
+
out.set(`${c.tbl}\u0000${c.uid}`, { table: c.tbl, uid: c.uid, incomingFp: fp });
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Whether this replica sealed the insert of the row (table, uid,
|
|
49
|
+
* fingerprint). `_sync_authored` keeps it after the transaction's ops are
|
|
50
|
+
* folded or collected (T13399); a store without it falls back to the ops.
|
|
51
|
+
*/
|
|
52
|
+
function authoredHere(db, table, uid, fp, replica) {
|
|
53
|
+
if (hasTable(db, '_sync_authored') &&
|
|
54
|
+
db
|
|
55
|
+
.prepare('SELECT 1 FROM _sync_authored WHERE tbl = ? AND uid = ? AND bfp = ? AND replica = ?')
|
|
56
|
+
.get(table, uid, fp, replica) !== undefined) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
return (hasTable(db, '_sync_op') &&
|
|
60
|
+
db
|
|
61
|
+
.prepare(`SELECT 1 FROM _sync_op o JOIN _sync_txn t ON t.txn = o.txn
|
|
62
|
+
WHERE o.tbl = ? AND o.uid = ? AND o.o = 'I' AND t.replica = ?
|
|
63
|
+
AND json_extract(o.body, '$.bfp') = ? LIMIT 1`)
|
|
64
|
+
.get(table, uid, replica, fp) !== undefined);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Re-key every row this replica lost a uid collision with and authored
|
|
68
|
+
* (module doc). Each re-key is its own local transaction in a `rekey` frame;
|
|
69
|
+
* the caller seals and applies again.
|
|
70
|
+
*
|
|
71
|
+
* @param db - The store; must not be inside a transaction.
|
|
72
|
+
* @param opts - Scope, stream and this replica.
|
|
73
|
+
* @returns The re-keys made.
|
|
74
|
+
*/
|
|
75
|
+
export function settleLostUidCollisions(db, opts) {
|
|
76
|
+
if (!hasTable(db, '_sync_conflict'))
|
|
77
|
+
return [];
|
|
78
|
+
const settled = [];
|
|
79
|
+
for (const c of lostCollisions(db, opts.stream).values()) {
|
|
80
|
+
const row = db
|
|
81
|
+
.prepare(`SELECT ${q(BIRTH_FP_COLUMN)} AS fp FROM main.${q(c.table)} WHERE ${q(UID_COLUMN)} = ?`)
|
|
82
|
+
.get(c.uid);
|
|
83
|
+
const fp = row?.fp ?? null;
|
|
84
|
+
// Only the loser (the greater fingerprint) is re-keyed, and only by its origin.
|
|
85
|
+
if (fp === null || !(c.incomingFp < fp))
|
|
86
|
+
continue;
|
|
87
|
+
if (!authoredHere(db, c.table, c.uid, fp, opts.replica))
|
|
88
|
+
continue;
|
|
89
|
+
db.exec('BEGIN IMMEDIATE');
|
|
90
|
+
try {
|
|
91
|
+
const frame = openCaptureFrame(db, 'rekey', null);
|
|
92
|
+
let newUid;
|
|
93
|
+
if (opts.scope === 'project' && rowIdentitySpec('project', c.table)?.kind === 'minted') {
|
|
94
|
+
// The project re-key cascades owned children and natural rows, and
|
|
95
|
+
// writes the portable uid alias (T12341 §6.4).
|
|
96
|
+
newUid = rekeyRowUid(db, c.table, c.uid, { loserBirthFp: fp, winnerBirthFp: c.incomingFp }, { origin: opts.replica }).newUid;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// The global store's minted tables (brain) own no children by uid.
|
|
100
|
+
newUid = mintRowUid();
|
|
101
|
+
setRowUidNative(db, c.table, c.uid, fp, newUid);
|
|
102
|
+
}
|
|
103
|
+
finishCaptureFrame(db, frame);
|
|
104
|
+
db.exec('COMMIT');
|
|
105
|
+
settled.push({ table: c.table, oldUid: c.uid, newUid, birthFp: fp });
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
if (db.isTransaction)
|
|
109
|
+
db.exec('ROLLBACK');
|
|
110
|
+
throw err;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return settled;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Announce every re-key this replica applied to a loser it had placed
|
|
117
|
+
* (T13399). The loser's origin draws the boundary for its own references with
|
|
118
|
+
* its K; a replica the origin's insert reached before the winner's may also
|
|
119
|
+
* have written references to the old uid that meant the loser. Receivers only
|
|
120
|
+
* read a writer's references through an alias that writer drew, so this
|
|
121
|
+
* replica re-states the re-key under its own name: an alias-only K in a local
|
|
122
|
+
* `rekey` frame (it moves nothing here). The caller seals.
|
|
123
|
+
*
|
|
124
|
+
* @param db - The store; must not be inside a transaction.
|
|
125
|
+
* @param opts - Scope, stream and this replica.
|
|
126
|
+
* @param nowIso - The time.
|
|
127
|
+
* @returns The announcements captured.
|
|
128
|
+
*/
|
|
129
|
+
export function announcePlacedRekeys(db, opts, nowIso) {
|
|
130
|
+
const owed = owedAnnouncements(db);
|
|
131
|
+
if (owed.length === 0)
|
|
132
|
+
return 0;
|
|
133
|
+
let n = 0;
|
|
134
|
+
db.exec('BEGIN IMMEDIATE');
|
|
135
|
+
try {
|
|
136
|
+
const frame = openCaptureFrame(db, 'rekey', null);
|
|
137
|
+
// Capture off: nothing can be announced, and the debt stays.
|
|
138
|
+
if (frame !== null) {
|
|
139
|
+
for (const a of owed) {
|
|
140
|
+
const def = captureTableDef(db, opts.scope, a.table);
|
|
141
|
+
if (def)
|
|
142
|
+
n += captureRekeyAnnouncement(db, def, a.oldUid, a.newUid, a.oldBfp);
|
|
143
|
+
markAliasAnnounced(db, a, nowIso);
|
|
144
|
+
}
|
|
145
|
+
finishCaptureFrame(db, frame);
|
|
146
|
+
}
|
|
147
|
+
db.exec('COMMIT');
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
if (db.isTransaction)
|
|
151
|
+
db.exec('ROLLBACK');
|
|
152
|
+
throw err;
|
|
153
|
+
}
|
|
154
|
+
return n;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=collision-settle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collision-settle.js","sourceRoot":"","sources":["../../../src/store/sync/collision-settle.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,6 +80,17 @@ export declare function listConflicts(db: DatabaseSync, opts?: {
|
|
|
80
80
|
* @returns Whether an open conflict had that id.
|
|
81
81
|
*/
|
|
82
82
|
export declare function resolveConflict(db: DatabaseSync, id: number, nowIso: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Mark the held-collision conflicts of one inbox transaction resolved, once
|
|
85
|
+
* it has gone through (T13397): the uid collision settled by the loser's
|
|
86
|
+
* re-key, or the local key freed. Other conflicts stay open.
|
|
87
|
+
*
|
|
88
|
+
* @param db - The store, inside the apply frame's transaction.
|
|
89
|
+
* @param key - The inbox transaction.
|
|
90
|
+
* @param nowIso - The time.
|
|
91
|
+
* @returns How many were resolved.
|
|
92
|
+
*/
|
|
93
|
+
export declare function resolveHeldConflicts(db: DatabaseSync, key: InboxKey, nowIso: string): number;
|
|
83
94
|
/**
|
|
84
95
|
* How many conflicts the store holds, or one stream of it.
|
|
85
96
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conflicts.d.ts","sourceRoot":"","sources":["../../../src/store/sync/conflicts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,sEAAsE;AACtE,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,2BAA2B;AAC3B,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI,CAyBN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAUT;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,YAAY,EAChB,IAAI,GAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,cAAc,EAAE,CA+BlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAKrF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAOjG"}
|
|
1
|
+
{"version":3,"file":"conflicts.d.ts","sourceRoot":"","sources":["../../../src/store/sync/conflicts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,sEAAsE;AACtE,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,2BAA2B;AAC3B,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI,CAyBN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAUT;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,YAAY,EAChB,IAAI,GAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,cAAc,EAAE,CA+BlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAKrF;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAS5F;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAOjG"}
|
|
@@ -105,6 +105,24 @@ export function resolveConflict(db, id, nowIso) {
|
|
|
105
105
|
.run(nowIso, id);
|
|
106
106
|
return Number(r.changes) > 0;
|
|
107
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Mark the held-collision conflicts of one inbox transaction resolved, once
|
|
110
|
+
* it has gone through (T13397): the uid collision settled by the loser's
|
|
111
|
+
* re-key, or the local key freed. Other conflicts stay open.
|
|
112
|
+
*
|
|
113
|
+
* @param db - The store, inside the apply frame's transaction.
|
|
114
|
+
* @param key - The inbox transaction.
|
|
115
|
+
* @param nowIso - The time.
|
|
116
|
+
* @returns How many were resolved.
|
|
117
|
+
*/
|
|
118
|
+
export function resolveHeldConflicts(db, key, nowIso) {
|
|
119
|
+
const r = db
|
|
120
|
+
.prepare(`UPDATE _sync_conflict SET resolved_at = ?
|
|
121
|
+
WHERE stream = ? AND seq = ? AND txn_idx = ? AND resolution = 'op-held'
|
|
122
|
+
AND kind IN ('uid-collision', 'key-collision') AND resolved_at IS NULL`)
|
|
123
|
+
.run(nowIso, key.stream, key.seq, key.txnIdx);
|
|
124
|
+
return Number(r.changes);
|
|
125
|
+
}
|
|
108
126
|
/**
|
|
109
127
|
* How many conflicts the store holds, or one stream of it.
|
|
110
128
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../../src/store/sync/conflicts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../../src/store/sync/conflicts.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,10 +9,14 @@
|
|
|
9
9
|
* captures, and only non-inherited transactions are ever built or sent, so a
|
|
10
10
|
* new replica never re-emits the original's rows.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
* the
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
* Segments the old replica built and never pushed are inherited too, with
|
|
13
|
+
* the transactions they carry (S4, T13278): push only ever sends the active
|
|
14
|
+
* replica's segments, and the state says why these never will be. A segment
|
|
15
|
+
* the server already stored must be marked pushed before the rebind (the
|
|
16
|
+
* rebind at head does, from the pull cursor), or it reads as inherited.
|
|
17
|
+
*
|
|
18
|
+
* What a copy changed and never sent is not lost: the reconcile re-emits
|
|
19
|
+
* those fields under the new replica (§1.5 three-way rule, `reconcile.ts`).
|
|
16
20
|
*
|
|
17
21
|
* @task T12753
|
|
18
22
|
* @module store/sync/inherit
|
|
@@ -22,13 +26,16 @@ import type { DatabaseSync } from 'node:sqlite';
|
|
|
22
26
|
export interface InheritedRows {
|
|
23
27
|
/** Captures that were still live (unsealed). */
|
|
24
28
|
readonly captures: number;
|
|
25
|
-
/** Sealed transactions not yet carried by a segment. */
|
|
29
|
+
/** Sealed transactions not yet carried by a pushed segment. */
|
|
26
30
|
readonly txns: number;
|
|
31
|
+
/** Segments built and never pushed. */
|
|
32
|
+
readonly segments: number;
|
|
27
33
|
}
|
|
28
34
|
/**
|
|
29
|
-
* Mark every live capture
|
|
30
|
-
* the
|
|
31
|
-
* nothing to
|
|
35
|
+
* Mark every live capture, every sealed transaction, and every unpushed
|
|
36
|
+
* segment with the transactions it carries `inherited`. Runs in the caller's
|
|
37
|
+
* (rebind) transaction; a store without the outbox tables has nothing to
|
|
38
|
+
* mark.
|
|
32
39
|
*
|
|
33
40
|
* @returns How many rows were marked.
|
|
34
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inherit.d.ts","sourceRoot":"","sources":["../../../src/store/sync/inherit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"inherit.d.ts","sourceRoot":"","sources":["../../../src/store/sync/inherit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,aAAa,CA+BjE"}
|
|
@@ -9,19 +9,24 @@
|
|
|
9
9
|
* captures, and only non-inherited transactions are ever built or sent, so a
|
|
10
10
|
* new replica never re-emits the original's rows.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
* the
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
* Segments the old replica built and never pushed are inherited too, with
|
|
13
|
+
* the transactions they carry (S4, T13278): push only ever sends the active
|
|
14
|
+
* replica's segments, and the state says why these never will be. A segment
|
|
15
|
+
* the server already stored must be marked pushed before the rebind (the
|
|
16
|
+
* rebind at head does, from the pull cursor), or it reads as inherited.
|
|
17
|
+
*
|
|
18
|
+
* What a copy changed and never sent is not lost: the reconcile re-emits
|
|
19
|
+
* those fields under the new replica (§1.5 three-way rule, `reconcile.ts`).
|
|
16
20
|
*
|
|
17
21
|
* @task T12753
|
|
18
22
|
* @module store/sync/inherit
|
|
19
23
|
*/
|
|
20
24
|
import { hasTable } from './schema.js';
|
|
21
25
|
/**
|
|
22
|
-
* Mark every live capture
|
|
23
|
-
* the
|
|
24
|
-
* nothing to
|
|
26
|
+
* Mark every live capture, every sealed transaction, and every unpushed
|
|
27
|
+
* segment with the transactions it carries `inherited`. Runs in the caller's
|
|
28
|
+
* (rebind) transaction; a store without the outbox tables has nothing to
|
|
29
|
+
* mark.
|
|
25
30
|
*
|
|
26
31
|
* @returns How many rows were marked.
|
|
27
32
|
*/
|
|
@@ -30,9 +35,21 @@ export function markInheritedRows(db) {
|
|
|
30
35
|
? Number(db.prepare("UPDATE _sync_capture SET state = 'inherited' WHERE state = 'live'").run()
|
|
31
36
|
.changes)
|
|
32
37
|
: 0;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
let txns = 0;
|
|
39
|
+
let segments = 0;
|
|
40
|
+
if (hasTable(db, '_sync_txn')) {
|
|
41
|
+
if (hasTable(db, '_sync_segment')) {
|
|
42
|
+
txns += Number(db
|
|
43
|
+
.prepare(`UPDATE _sync_txn SET state = 'inherited' WHERE state = 'segmented' AND txn IN (
|
|
44
|
+
SELECT m.txn FROM _sync_segment_txn m JOIN _sync_segment s
|
|
45
|
+
ON s.stream = m.stream AND s.replica_id = m.replica_id AND s.replica_seq = m.replica_seq
|
|
46
|
+
WHERE s.state = 'sealed')`)
|
|
47
|
+
.run().changes);
|
|
48
|
+
segments = Number(db.prepare("UPDATE _sync_segment SET state = 'inherited' WHERE state = 'sealed'").run()
|
|
49
|
+
.changes);
|
|
50
|
+
}
|
|
51
|
+
txns += Number(db.prepare("UPDATE _sync_txn SET state = 'inherited' WHERE state = 'sealed'").run().changes);
|
|
52
|
+
}
|
|
53
|
+
return { captures, txns, segments };
|
|
37
54
|
}
|
|
38
55
|
//# sourceMappingURL=inherit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inherit.js","sourceRoot":"","sources":["../../../src/store/sync/inherit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"inherit.js","sourceRoot":"","sources":["../../../src/store/sync/inherit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAYvC;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAgB;IAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;QAC5C,CAAC,CAAC,MAAM,CACJ,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC,GAAG,EAAE;aAClF,OAAO,CACX;QACH,CAAC,CAAC,CAAC,CAAC;IACN,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC;QAC9B,IAAI,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,CAAC;YAClC,IAAI,IAAI,MAAM,CACZ,EAAE;iBACC,OAAO,CACN;;;0CAG8B,CAC/B;iBACA,GAAG,EAAE,CAAC,OAAO,CACjB,CAAC;YACF,QAAQ,GAAG,MAAM,CACf,EAAE,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC,GAAG,EAAE;iBACpF,OAAO,CACX,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,MAAM,CACZ,EAAE,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -156,6 +156,12 @@ export type MergeConflictKind =
|
|
|
156
156
|
* onto a live uid is voided.
|
|
157
157
|
*/
|
|
158
158
|
| 'uid-collision'
|
|
159
|
+
/**
|
|
160
|
+
* (applier) An insert's local key (a display id) is held here by a row of
|
|
161
|
+
* another uid (T12341 §6.4 step 7): the insert is held until a re-mint
|
|
162
|
+
* frees the key, never voided by the UNIQUE constraint.
|
|
163
|
+
*/
|
|
164
|
+
| 'key-collision'
|
|
159
165
|
/** (applier) A Gate C post-apply invariant broke: the whole transaction is voided. */
|
|
160
166
|
| 'post-apply';
|
|
161
167
|
/** One recorded conflict. Never silently dropped: the applier persists it. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/store/sync/merge/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/store/sync/merge/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,11 +23,14 @@
|
|
|
23
23
|
* from the seen ledger or arrived out of order; the pull stops there, loud,
|
|
24
24
|
* and never skips it as seen;
|
|
25
25
|
* - stages the rest (`stageTxns`), schema-ahead ones included (the applier
|
|
26
|
-
* holds them `refused-schema` and replays them after an upgrade)
|
|
26
|
+
* holds them `refused-schema` and replays them after an upgrade), and
|
|
27
|
+
* records each `retire` at its stream seq (`_sync_retired`, T13278);
|
|
27
28
|
* - advances the cursor.
|
|
28
29
|
*
|
|
29
30
|
* Then the applier applies what is staged, in stream order, own echoes
|
|
30
|
-
* included (they feed the fast path and the scoped rebase, §3.5).
|
|
31
|
+
* included (they feed the fast path and the scoped rebase, §3.5). A pull
|
|
32
|
+
* that reached the head runs the rebind the undo budget scheduled (D5,
|
|
33
|
+
* `rebind.ts`), when the caller passes the store's open options.
|
|
31
34
|
*
|
|
32
35
|
* The page source is a port ({@link SegmentPuller}): the journal client in
|
|
33
36
|
* production (`cloud/nexus-vault.ts`), a fake in tests.
|
|
@@ -39,6 +42,9 @@ import type { DatabaseSync } from 'node:sqlite';
|
|
|
39
42
|
import type { TableScope } from '@cleocode/contracts';
|
|
40
43
|
import { LedgerTxn } from '@cleocode/contracts/ledger';
|
|
41
44
|
import { type ApplyReport, type ApplyStagedOptions } from './apply/applier.js';
|
|
45
|
+
import { type RebindAtHeadReport } from './rebind.js';
|
|
46
|
+
import type { SyncOpenOptions } from './replica.js';
|
|
47
|
+
import { type ServerRetirement } from './retire.js';
|
|
42
48
|
/** Where a pull stands (the journal client's `PullCursor`). */
|
|
43
49
|
export interface StreamCursor {
|
|
44
50
|
/** The last stream seq staged. */
|
|
@@ -94,6 +100,19 @@ export interface PullStreamOptions {
|
|
|
94
100
|
* refused (`below-floor`), never applied twice. @defaultValue false
|
|
95
101
|
*/
|
|
96
102
|
readonly pruneSeen?: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* The canonical store's open options: when given and the undo budget
|
|
105
|
+
* scheduled a rebind (`sync.undo_budget_exceeded`, D5), a pull that reaches
|
|
106
|
+
* the stream's head runs it ({@link rebindAtHead}, T13278). A pull that is
|
|
107
|
+
* refused or stops short never does, so the key stays set.
|
|
108
|
+
*/
|
|
109
|
+
readonly rebind?: Omit<SyncOpenOptions, 'scope'>;
|
|
110
|
+
/**
|
|
111
|
+
* The server's retirements on this stream (T13366): after staging and
|
|
112
|
+
* before the apply, each recorded retire they match is confirmed
|
|
113
|
+
* ({@link confirmRetirements}). A retire never confirmed changes nothing.
|
|
114
|
+
*/
|
|
115
|
+
readonly serverRetirements?: readonly ServerRetirement[];
|
|
97
116
|
}
|
|
98
117
|
/**
|
|
99
118
|
* Why {@link pullStream} stopped short, as a kind callers branch on (the
|
|
@@ -128,6 +147,8 @@ export interface PullStreamReport {
|
|
|
128
147
|
readonly head: number;
|
|
129
148
|
/** What the applier did, or null when the pull was refused. */
|
|
130
149
|
readonly apply: ApplyReport | null;
|
|
150
|
+
/** The rebind this pull ran at head (T13278), or null. */
|
|
151
|
+
readonly rebind: RebindAtHeadReport | null;
|
|
131
152
|
}
|
|
132
153
|
/** A segment the store refuses to stage (a malformed body or a bad transaction signature). */
|
|
133
154
|
export declare class SegmentRefusedError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/store/sync/pull.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/store/sync/pull.ts"],"names":[],"mappings":"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"}
|
package/dist/store/sync/pull.js
CHANGED
|
@@ -23,11 +23,14 @@
|
|
|
23
23
|
* from the seen ledger or arrived out of order; the pull stops there, loud,
|
|
24
24
|
* and never skips it as seen;
|
|
25
25
|
* - stages the rest (`stageTxns`), schema-ahead ones included (the applier
|
|
26
|
-
* holds them `refused-schema` and replays them after an upgrade)
|
|
26
|
+
* holds them `refused-schema` and replays them after an upgrade), and
|
|
27
|
+
* records each `retire` at its stream seq (`_sync_retired`, T13278);
|
|
27
28
|
* - advances the cursor.
|
|
28
29
|
*
|
|
29
30
|
* Then the applier applies what is staged, in stream order, own echoes
|
|
30
|
-
* included (they feed the fast path and the scoped rebase, §3.5).
|
|
31
|
+
* included (they feed the fast path and the scoped rebase, §3.5). A pull
|
|
32
|
+
* that reached the head runs the rebind the undo budget scheduled (D5,
|
|
33
|
+
* `rebind.ts`), when the caller passes the store's open options.
|
|
31
34
|
*
|
|
32
35
|
* The page source is a port ({@link SegmentPuller}): the journal client in
|
|
33
36
|
* production (`cloud/nexus-vault.ts`), a fake in tests.
|
|
@@ -41,6 +44,8 @@ import { applyStagedTxns } from './apply/applier.js';
|
|
|
41
44
|
import { withImmediateTransaction } from './clock-store.js';
|
|
42
45
|
import { isSyncFlagOn } from './flags.js';
|
|
43
46
|
import { stageTxns } from './inbox.js';
|
|
47
|
+
import { rebindAtHead } from './rebind.js';
|
|
48
|
+
import { confirmRetirements, recordRetirement } from './retire.js';
|
|
44
49
|
import { ensureSyncSchema, hasTable, healSyncSchema } from './schema.js';
|
|
45
50
|
/** The plaintext kind of a vault count-delta segment (`cloud/nexus-vault.ts`). */
|
|
46
51
|
export const VAULT_DELTA_KIND = 'cleo-vault-delta/v1';
|
|
@@ -325,6 +330,7 @@ export async function pullStream(db, o) {
|
|
|
325
330
|
after: readStreamCursor(db, o.stream)?.after ?? o.initialCursor.after,
|
|
326
331
|
head: 0,
|
|
327
332
|
apply: null,
|
|
333
|
+
rebind: null,
|
|
328
334
|
};
|
|
329
335
|
}
|
|
330
336
|
ensureSeenFloor(db);
|
|
@@ -376,6 +382,16 @@ export async function pullStream(db, o) {
|
|
|
376
382
|
for (const t of plan.fresh) {
|
|
377
383
|
seen.run(o.stream, t.txn, seg.seq);
|
|
378
384
|
bytes += seenBytes(o.stream, t.txn);
|
|
385
|
+
// A retire, emitted by its successor, is recorded at its stream seq:
|
|
386
|
+
// later transactions of the retired replica are history (T13278).
|
|
387
|
+
if (t.kind === 'retire' && t.retire && t.retire.successor === seg.replicaId) {
|
|
388
|
+
recordRetirement(db, o.stream, {
|
|
389
|
+
...t.retire,
|
|
390
|
+
txn: t.txn,
|
|
391
|
+
hlc: t.hlc,
|
|
392
|
+
seq: seg.seq,
|
|
393
|
+
});
|
|
394
|
+
}
|
|
379
395
|
}
|
|
380
396
|
raise.run(o.stream, seg.replicaId, plan.stagedUpto, plan.fresh.length, bytes);
|
|
381
397
|
staged += stageTxns(db, o.stream, {
|
|
@@ -405,6 +421,8 @@ export async function pullStream(db, o) {
|
|
|
405
421
|
}
|
|
406
422
|
if (o.pruneSeen === true)
|
|
407
423
|
pruneSeenTxns(db, o.stream);
|
|
424
|
+
if (o.serverRetirements !== undefined)
|
|
425
|
+
confirmRetirements(db, o.stream, o.serverRetirements);
|
|
408
426
|
const apply = applyStagedTxns(db, {
|
|
409
427
|
scope: o.scope,
|
|
410
428
|
stream: o.stream,
|
|
@@ -413,6 +431,12 @@ export async function pullStream(db, o) {
|
|
|
413
431
|
seal: o.seal,
|
|
414
432
|
...(o.apply ?? {}),
|
|
415
433
|
});
|
|
434
|
+
// D5: the rebind the undo budget scheduled runs only once the stream's
|
|
435
|
+
// head is reached and nothing was refused (T13278).
|
|
436
|
+
const atHead = refused === null && cursor.after >= head;
|
|
437
|
+
const rebind = o.rebind !== undefined && atHead
|
|
438
|
+
? rebindAtHead(db, { ...o.rebind, scope: o.scope, stream: o.stream, cursor })
|
|
439
|
+
: null;
|
|
416
440
|
return {
|
|
417
441
|
stream: o.stream,
|
|
418
442
|
refused,
|
|
@@ -424,6 +448,7 @@ export async function pullStream(db, o) {
|
|
|
424
448
|
after: cursor.after,
|
|
425
449
|
head,
|
|
426
450
|
apply,
|
|
451
|
+
rebind,
|
|
427
452
|
};
|
|
428
453
|
}
|
|
429
454
|
//# sourceMappingURL=pull.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/store/sync/pull.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/store/sync/pull.ts"],"names":[],"mappings":"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"}
|