@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.
Files changed (105) hide show
  1. package/dist/build-provenance.json +2 -2
  2. package/dist/cloud/nexus-link.d.ts +15 -0
  3. package/dist/cloud/nexus-link.d.ts.map +1 -1
  4. package/dist/cloud/nexus-link.js +25 -0
  5. package/dist/cloud/nexus-link.js.map +1 -1
  6. package/dist/cloud/nexus-vault.d.ts +14 -1
  7. package/dist/cloud/nexus-vault.d.ts.map +1 -1
  8. package/dist/cloud/nexus-vault.js +72 -5
  9. package/dist/cloud/nexus-vault.js.map +1 -1
  10. package/dist/cloud/replica-rebind.d.ts +51 -0
  11. package/dist/cloud/replica-rebind.d.ts.map +1 -0
  12. package/dist/cloud/replica-rebind.js +101 -0
  13. package/dist/cloud/replica-rebind.js.map +1 -0
  14. package/dist/doctor/container-reaper.d.ts +107 -0
  15. package/dist/doctor/container-reaper.d.ts.map +1 -0
  16. package/dist/doctor/container-reaper.js +194 -0
  17. package/dist/doctor/container-reaper.js.map +1 -0
  18. package/dist/store/sync/apply/applier.d.ts +3 -0
  19. package/dist/store/sync/apply/applier.d.ts.map +1 -1
  20. package/dist/store/sync/apply/applier.js +208 -85
  21. package/dist/store/sync/apply/applier.js.map +1 -1
  22. package/dist/store/sync/capture.d.ts +23 -3
  23. package/dist/store/sync/capture.d.ts.map +1 -1
  24. package/dist/store/sync/capture.js +31 -3
  25. package/dist/store/sync/capture.js.map +1 -1
  26. package/dist/store/sync/collision-settle.d.ts +62 -0
  27. package/dist/store/sync/collision-settle.d.ts.map +1 -0
  28. package/dist/store/sync/collision-settle.js +156 -0
  29. package/dist/store/sync/collision-settle.js.map +1 -0
  30. package/dist/store/sync/conflicts.d.ts +11 -0
  31. package/dist/store/sync/conflicts.d.ts.map +1 -1
  32. package/dist/store/sync/conflicts.js +18 -0
  33. package/dist/store/sync/conflicts.js.map +1 -1
  34. package/dist/store/sync/inherit.d.ts +15 -8
  35. package/dist/store/sync/inherit.d.ts.map +1 -1
  36. package/dist/store/sync/inherit.js +28 -11
  37. package/dist/store/sync/inherit.js.map +1 -1
  38. package/dist/store/sync/merge/types.d.ts +6 -0
  39. package/dist/store/sync/merge/types.d.ts.map +1 -1
  40. package/dist/store/sync/pull.d.ts +23 -2
  41. package/dist/store/sync/pull.d.ts.map +1 -1
  42. package/dist/store/sync/pull.js +27 -2
  43. package/dist/store/sync/pull.js.map +1 -1
  44. package/dist/store/sync/rebind.d.ts +112 -0
  45. package/dist/store/sync/rebind.d.ts.map +1 -0
  46. package/dist/store/sync/rebind.js +187 -0
  47. package/dist/store/sync/rebind.js.map +1 -0
  48. package/dist/store/sync/reconcile.d.ts +93 -0
  49. package/dist/store/sync/reconcile.d.ts.map +1 -0
  50. package/dist/store/sync/reconcile.js +330 -0
  51. package/dist/store/sync/reconcile.js.map +1 -0
  52. package/dist/store/sync/repair.d.ts +5 -0
  53. package/dist/store/sync/repair.d.ts.map +1 -1
  54. package/dist/store/sync/repair.js +2 -2
  55. package/dist/store/sync/repair.js.map +1 -1
  56. package/dist/store/sync/replica.d.ts +28 -1
  57. package/dist/store/sync/replica.d.ts.map +1 -1
  58. package/dist/store/sync/replica.js +17 -3
  59. package/dist/store/sync/replica.js.map +1 -1
  60. package/dist/store/sync/retire.d.ts +161 -0
  61. package/dist/store/sync/retire.d.ts.map +1 -0
  62. package/dist/store/sync/retire.js +193 -0
  63. package/dist/store/sync/retire.js.map +1 -0
  64. package/dist/store/sync/schema.d.ts +27 -0
  65. package/dist/store/sync/schema.d.ts.map +1 -1
  66. package/dist/store/sync/schema.js +43 -0
  67. package/dist/store/sync/schema.js.map +1 -1
  68. package/dist/store/sync/sealer.d.ts +10 -0
  69. package/dist/store/sync/sealer.d.ts.map +1 -1
  70. package/dist/store/sync/sealer.js +51 -5
  71. package/dist/store/sync/sealer.js.map +1 -1
  72. package/dist/store/sync/segments.d.ts.map +1 -1
  73. package/dist/store/sync/segments.js +6 -2
  74. package/dist/store/sync/segments.js.map +1 -1
  75. package/dist/store/sync/uid-alias.d.ts +100 -0
  76. package/dist/store/sync/uid-alias.d.ts.map +1 -0
  77. package/dist/store/sync/uid-alias.js +169 -0
  78. package/dist/store/sync/uid-alias.js.map +1 -0
  79. package/dist/store/table-classification.d.ts.map +1 -1
  80. package/dist/store/table-classification.js +48 -0
  81. package/dist/store/table-classification.js.map +1 -1
  82. package/dist/tasks/change-set.d.ts.map +1 -1
  83. package/dist/tasks/change-set.js +16 -5
  84. package/dist/tasks/change-set.js.map +1 -1
  85. package/dist/tasks/complete-ci.d.ts.map +1 -1
  86. package/dist/tasks/complete-ci.js +7 -1
  87. package/dist/tasks/complete-ci.js.map +1 -1
  88. package/dist/tasks/done-plan.d.ts.map +1 -1
  89. package/dist/tasks/done-plan.js +24 -17
  90. package/dist/tasks/done-plan.js.map +1 -1
  91. package/dist/tasks/evidence.d.ts.map +1 -1
  92. package/dist/tasks/evidence.js +3 -2
  93. package/dist/tasks/evidence.js.map +1 -1
  94. package/dist/tasks/gate-runner.d.ts +20 -0
  95. package/dist/tasks/gate-runner.d.ts.map +1 -1
  96. package/dist/tasks/gate-runner.js +141 -19
  97. package/dist/tasks/gate-runner.js.map +1 -1
  98. package/dist/validation/engine-ops.d.ts.map +1 -1
  99. package/dist/validation/engine-ops.js +2 -0
  100. package/dist/validation/engine-ops.js.map +1 -1
  101. package/migrations/sync-journal/20261009130000_t13278-replica-retire/migration.sql +29 -0
  102. package/migrations/sync-journal/20261009140000_t13366-retire-confirm/migration.sql +18 -0
  103. package/migrations/sync-journal/20261010150000_t13397-uid-alias/migration.sql +32 -0
  104. package/migrations/sync-journal/20261010160000_t13399-rekey-follow/migration.sql +57 -0
  105. package/package.json +13 -13
@@ -0,0 +1,330 @@
1
+ /**
2
+ * The rebind reconcile (journal spec §1.5 N7; T12763, T13278).
3
+ *
4
+ * After a rebind, what the old replica changed and the stream never saw is
5
+ * `inherited` (`inherit.ts`): live captures, sealed transactions, and the
6
+ * transactions of segments it never pushed. The new replica re-emits those
7
+ * fields, deciding each one by the three-way rule
8
+ * ({@link decideReconcileField}):
9
+ *
10
+ * 1. changed by an inherited capture or an inherited sealed-but-unpushed op:
11
+ * emit it at `tick(at_ms)` of that change, under the new replica;
12
+ * 2. untouched, and the local field HLC is below the merged one: adopt the
13
+ * merged value locally, emitting nothing;
14
+ * 3. otherwise (a local HLC at or above the merged one that no inherited
15
+ * change explains): emit it with that HLC unchanged.
16
+ *
17
+ * These are `repair` transactions with `via: 'rebind'`, and they break the
18
+ * per-replica monotonic-HLC promise on purpose (§1.3, K10).
19
+ *
20
+ * {@link reconcileInPlace} is the reconcile of a rebind of the SAME file
21
+ * after a pull to head (the undo-budget rebind, D5): the store itself is the
22
+ * merged state, since the pull applied the stream and rebased the old
23
+ * replica's unsequenced writes over it. Every field no inherited change
24
+ * touched therefore already equals the merged value (rule 2 has nothing left
25
+ * to adopt and rule 3 nothing to explain), and every touched field is rule 1.
26
+ * It writes the touched rows as the captures of one `rebind` frame, read
27
+ * from the live rows (the current value, which is what every replica must
28
+ * converge on, whichever side the rebase let win), at the time of the last
29
+ * inherited change of each row; the sealer seals the frame as one `repair`
30
+ * transaction, `via: 'rebind'`, ticking each op at its row's time. A copy's
31
+ * reconcile against a restored checkpoint (rules 2 and 3 over a scratch
32
+ * store) is a separate pass.
33
+ *
34
+ * @task T12763
35
+ * @task T13278
36
+ * @module store/sync/reconcile
37
+ */
38
+ import { randomUUID } from 'node:crypto';
39
+ import { LedgerOp } from '@cleocode/contracts/ledger';
40
+ import { BIRTH_FP_COLUMN, UID_COLUMN } from '../row-identity-registry.js';
41
+ import { captureTableDef, repairImageSql } from './capture.js';
42
+ import { parseHlc } from './hlc.js';
43
+ import { keyValues, keyWhere } from './repair.js';
44
+ import { hasTable } from './schema.js';
45
+ import { undoEnabled } from './sequencing.js';
46
+ /**
47
+ * The three-way rule for one field that differs from the merged state.
48
+ * Pure.
49
+ *
50
+ * @param f - Whether an inherited change touched it, and both HLCs.
51
+ * @returns `emit-tick` (rule 1), `adopt-merged` (rule 2) or `emit-pinned` (rule 3).
52
+ */
53
+ export function decideReconcileField(f) {
54
+ if (f.touchedByInherited)
55
+ return 'emit-tick';
56
+ if (f.localHlc === null || f.localHlc < f.mergedHlc)
57
+ return 'adopt-merged';
58
+ return 'emit-pinned';
59
+ }
60
+ const q = (id) => `"${id.replaceAll('"', '""')}"`;
61
+ const rowKey = (tbl, uid) => `${tbl}\u0000${uid}`;
62
+ /** An `enc()` text of a string or null, as a capture image carries it. */
63
+ const encText = (v) => v == null ? 'NULL' : `'${v.replaceAll("'", "''")}'`;
64
+ /** The physical ms of an op's HLC; 0 when unparseable. */
65
+ function physMs(hlc) {
66
+ try {
67
+ return parseHlc(hlc).phys;
68
+ }
69
+ catch {
70
+ return 0;
71
+ }
72
+ }
73
+ /**
74
+ * Re-emit what the previous replica changed and the stream never saw, as the
75
+ * captures of one `rebind` frame, in the caller's (rebind) transaction
76
+ * (module docs). Afterwards:
77
+ * - the inherited captures are consumed (deleted): their changes now travel
78
+ * in the frame;
79
+ * - the ledger forgets the row-count effect of the previous replica's
80
+ * inherited sealed transactions, which the frame's I and D ops count again
81
+ * when they seal;
82
+ * - while undo is on, each capture gets its undo row (a reconcile repair
83
+ * keeps its undo until its echo, D1).
84
+ *
85
+ * @param db - The store, inside the rebind transaction.
86
+ * @param o - Scope and the previous (retired) replica.
87
+ * @returns What was re-emitted.
88
+ */
89
+ export function reconcileInPlace(db, o) {
90
+ // @sync-invariant none:local-only programming-error guard: the reconcile commits with its rebind
91
+ if (!db.isTransaction)
92
+ throw new Error('reconcileInPlace must run inside the rebind transaction');
93
+ const defs = new Map();
94
+ const defOf = (t) => {
95
+ if (!defs.has(t))
96
+ defs.set(t, captureTableDef(db, o.scope, t) ?? null);
97
+ return defs.get(t) ?? null;
98
+ };
99
+ const rows = new Map();
100
+ const rekeys = [];
101
+ const ledger = new Map();
102
+ const alias = new Map();
103
+ const current = (tbl, uid) => alias.get(rowKey(tbl, uid)) ?? uid;
104
+ const touch = (tbl, uid, atMs) => {
105
+ const key = rowKey(tbl, current(tbl, uid));
106
+ let r = rows.get(key);
107
+ if (!r) {
108
+ r = {
109
+ tbl,
110
+ uid: current(tbl, uid),
111
+ inserted: false,
112
+ deleted: false,
113
+ cols: new Set(),
114
+ atMs,
115
+ };
116
+ rows.set(key, r);
117
+ }
118
+ r.atMs = Math.max(r.atMs, atMs);
119
+ return r;
120
+ };
121
+ const rekey = (tbl, oldUid, newUid) => {
122
+ const was = rows.get(rowKey(tbl, oldUid));
123
+ alias.set(rowKey(tbl, oldUid), newUid);
124
+ if (was) {
125
+ rows.delete(rowKey(tbl, oldUid));
126
+ was.uid = newUid;
127
+ rows.set(rowKey(tbl, newUid), was);
128
+ }
129
+ };
130
+ const uidByRk = (def, rk) => {
131
+ if (!def.identity.includes(UID_COLUMN))
132
+ return null;
133
+ const r = db
134
+ .prepare(`SELECT x.${q(UID_COLUMN)} AS uid FROM ${q(def.table)} x WHERE ${keyWhere(def)}`)
135
+ .get(...keyValues(rk));
136
+ return r?.uid ?? null;
137
+ };
138
+ // 1. Inherited sealed transactions of the previous replica, in commit
139
+ // order: what they changed, and the row counts they already moved.
140
+ let txns = 0;
141
+ if (hasTable(db, '_sync_txn')) {
142
+ const txnRows = db
143
+ .prepare("SELECT txn FROM _sync_txn WHERE state = 'inherited' AND replica = ? ORDER BY local_seq")
144
+ .all(o.previousReplica);
145
+ const ops = db.prepare('SELECT body FROM _sync_op WHERE txn = ? ORDER BY idx');
146
+ for (const t of txnRows) {
147
+ txns += 1;
148
+ for (const raw of ops.all(t.txn)) {
149
+ const op = LedgerOp.parse(JSON.parse(raw.body));
150
+ const at = physMs(op.h);
151
+ if (op.o === 'K') {
152
+ const nu = op.nu ?? op.u;
153
+ const known = rows.get(rowKey(op.t, current(op.t, op.u)));
154
+ if (!known?.inserted && nu !== op.u) {
155
+ const def = defOf(op.t);
156
+ const img = JSON.stringify({
157
+ [UID_COLUMN]: [encText(op.u), encText(nu)],
158
+ ...(op.bfp !== undefined || op.obfp !== undefined
159
+ ? { [BIRTH_FP_COLUMN]: [encText(op.obfp), encText(op.bfp)] }
160
+ : {}),
161
+ });
162
+ const rk = def ? liveRk(db, def, nu) : null;
163
+ if (rk !== null)
164
+ rekeys.push({ tbl: op.t, rk, oldUid: op.u, img, atMs: at });
165
+ }
166
+ rekey(op.t, op.u, nu);
167
+ continue;
168
+ }
169
+ const r = touch(op.t, op.u, at);
170
+ if (op.o === 'I') {
171
+ r.inserted = true;
172
+ r.deleted = false;
173
+ ledger.set(op.t, (ledger.get(op.t) ?? 0) + 1);
174
+ }
175
+ else if (op.o === 'D') {
176
+ r.deleted = true;
177
+ ledger.set(op.t, (ledger.get(op.t) ?? 0) - 1);
178
+ }
179
+ else {
180
+ for (const c of Object.keys(op.a ?? {}))
181
+ r.cols.add(c);
182
+ }
183
+ }
184
+ }
185
+ }
186
+ // 2. Inherited captures, in capture order: changes never sealed.
187
+ let captures = 0;
188
+ if (hasTable(db, '_sync_capture')) {
189
+ const caps = db
190
+ .prepare("SELECT seq, tbl, op, rk, uid, img, at_ms FROM _sync_capture WHERE state = 'inherited' ORDER BY seq")
191
+ .all();
192
+ for (const c of caps) {
193
+ captures += 1;
194
+ const def = defOf(c.tbl);
195
+ if (!def)
196
+ continue; // the table left the sync set: nothing to re-emit
197
+ const at = Number(c.at_ms);
198
+ if (c.op === 'K') {
199
+ const pair = JSON.parse(c.img)[UID_COLUMN];
200
+ const oldUid = c.uid ?? (pair ? decodeText(pair[0]) : null);
201
+ const newUid = pair ? decodeText(pair[1]) : null;
202
+ if (oldUid === null || newUid === null)
203
+ continue; // a fill: the I carries the uid
204
+ const known = rows.get(rowKey(c.tbl, current(c.tbl, oldUid)));
205
+ if (!known?.inserted && newUid !== oldUid) {
206
+ rekeys.push({ tbl: c.tbl, rk: c.rk, oldUid, img: c.img, atMs: at });
207
+ }
208
+ rekey(c.tbl, oldUid, newUid);
209
+ continue;
210
+ }
211
+ const uid = c.uid ?? uidByRk(def, c.rk);
212
+ if (uid === null)
213
+ continue; // a row that never got a uid and is gone: never known
214
+ const r = touch(c.tbl, uid, at);
215
+ if (c.op === 'I') {
216
+ r.inserted = true;
217
+ r.deleted = false;
218
+ }
219
+ else if (c.op === 'D') {
220
+ r.deleted = true;
221
+ }
222
+ else {
223
+ for (const col of Object.keys(JSON.parse(c.img))) {
224
+ r.cols.add(col);
225
+ }
226
+ }
227
+ }
228
+ db.prepare("DELETE FROM _sync_capture WHERE state = 'inherited'").run();
229
+ }
230
+ // 3. The ledger forgets the inherited sealed row counts (the frame recounts).
231
+ if (hasTable(db, '_sync_ledger')) {
232
+ const move = db.prepare('UPDATE _sync_ledger SET live = live - ? WHERE tbl = ?');
233
+ for (const [tbl, delta] of ledger)
234
+ if (delta !== 0)
235
+ move.run(delta, tbl);
236
+ }
237
+ if (rows.size === 0 && rekeys.length === 0) {
238
+ return { frame: null, inserts: 0, updates: 0, deletes: 0, rekeys: 0, captures, txns };
239
+ }
240
+ // 4. One rebind frame: the re-keys first, then each row from its live state.
241
+ const frame = randomUUID();
242
+ const first = db.prepare('SELECT coalesce(max(seq), 0) + 1 AS n FROM main._sync_capture').get().n;
243
+ db.prepare('INSERT INTO _sync_frame (frame, kind, actor, first_seq) VALUES (?, ?, ?, ?)').run(frame, 'rebind', null, first);
244
+ const undoOn = undoEnabled(db);
245
+ const undo = db.prepare(`INSERT INTO _sync_undo (seq, txn_local, kind, tbl, rk, uid, op, before_full, after_full)
246
+ SELECT c.seq, ?, 'repair', c.tbl, c.rk, c.uid, c.op, ?, CASE WHEN c.op IN ('I', 'U') THEN c.img END
247
+ FROM _sync_capture c WHERE c.seq = last_insert_rowid()`);
248
+ const insRaw = db.prepare(`INSERT INTO _sync_capture (tbl, op, rk, uid, img, at_ms, frame, kind) VALUES (?, ?, ?, ?, ?, ?, ?, 'rebind')`);
249
+ let inserts = 0;
250
+ let updates = 0;
251
+ let deletes = 0;
252
+ for (const k of rekeys) {
253
+ insRaw.run(k.tbl, 'K', k.rk, k.oldUid, k.img, k.atMs, frame);
254
+ if (undoOn)
255
+ undo.run(frame, null);
256
+ }
257
+ for (const r of rows.values()) {
258
+ const def = defOf(r.tbl);
259
+ if (!def)
260
+ continue;
261
+ const rk = liveRk(db, def, r.uid);
262
+ if (rk === null) {
263
+ // Gone here. A row the stream never saw needs nothing; else it is a D.
264
+ if (r.inserted)
265
+ continue;
266
+ insRaw.run(r.tbl, 'D', JSON.stringify(['<orphan>', r.uid]), r.uid, '{}', r.atMs, frame);
267
+ if (undoOn)
268
+ undo.run(frame, metaKey(db, r.tbl, r.uid));
269
+ deletes += 1;
270
+ continue;
271
+ }
272
+ const img = repairImageSql(def, 'x');
273
+ if (r.inserted) {
274
+ // The stream never saw this row: the meta an inherited seal wrote must
275
+ // not make the sealer read the re-emitted insert as a REPLACE (a U).
276
+ db.prepare('DELETE FROM _sync_row_meta WHERE tbl = ? AND uid = ?').run(r.tbl, r.uid);
277
+ captureFromLive(db, def, img.insert, 'I', rk, r.uid, r.atMs, frame);
278
+ if (undoOn)
279
+ undo.run(frame, null);
280
+ inserts += 1;
281
+ continue;
282
+ }
283
+ const cols = new Set([...r.cols].filter((c) => def.columns.includes(c) && !def.identity.includes(c) && !def.secret.has(c)));
284
+ if (r.deleted && !r.inserted) {
285
+ // Deleted by an inherited change, then re-created locally: the whole row.
286
+ captureFromLive(db, def, img.insert, 'I', rk, r.uid, r.atMs, frame);
287
+ if (undoOn)
288
+ undo.run(frame, null);
289
+ inserts += 1;
290
+ continue;
291
+ }
292
+ if (cols.size === 0)
293
+ continue;
294
+ captureFromLive(db, def, repairImageSql(def, 'x', cols).update, 'U', rk, r.uid, r.atMs, frame);
295
+ if (undoOn)
296
+ undo.run(frame, null);
297
+ updates += 1;
298
+ }
299
+ return { frame, inserts, updates, deletes, rekeys: rekeys.length, captures, txns };
300
+ }
301
+ /** The text an `enc()` string value decodes to, or null. */
302
+ function decodeText(v) {
303
+ if (v === undefined || v === 'NULL')
304
+ return null;
305
+ return v.startsWith("'") && v.endsWith("'") ? v.slice(1, -1).replaceAll("''", "'") : null;
306
+ }
307
+ /** A live row's local key `rk`, found by uid, or null when the row is gone. */
308
+ function liveRk(db, def, uid) {
309
+ if (!def.identity.includes(UID_COLUMN))
310
+ return null;
311
+ const r = db
312
+ .prepare(`SELECT ${repairImageSql(def, 'x').rk} AS rk FROM ${q(def.table)} x WHERE x.${q(UID_COLUMN)} = ?`)
313
+ .get(uid);
314
+ return r?.rk ?? null;
315
+ }
316
+ /** The natural key row meta keeps for a uid (a D's undo before-image), or null. */
317
+ function metaKey(db, tbl, uid) {
318
+ if (!hasTable(db, '_sync_row_meta'))
319
+ return null;
320
+ const r = db
321
+ .prepare('SELECT key_json FROM _sync_row_meta WHERE tbl = ? AND uid = ?')
322
+ .get(tbl, uid);
323
+ return r?.key_json ?? null;
324
+ }
325
+ /** Insert one capture of the live row `rk` with the SQL image `image`. */
326
+ function captureFromLive(db, def, image, op, rk, uid, atMs, frame) {
327
+ db.prepare(`INSERT INTO _sync_capture (tbl, op, rk, uid, img, at_ms, frame, kind)
328
+ SELECT ?, '${op}', ?, ?, ${image}, ?, ?, 'rebind' FROM ${q(def.table)} x WHERE ${keyWhere(def)}`).run(def.table, rk, uid, atMs, frame, ...keyValues(rk));
329
+ }
330
+ //# sourceMappingURL=reconcile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../../src/store/sync/reconcile.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@
38
38
  */
39
39
  import type { DatabaseSync } from 'node:sqlite';
40
40
  import type { TableScope } from '@cleocode/contracts';
41
+ import { type CaptureTableDef } from './capture.js';
41
42
  import { type SealerRowView } from './sealer.js';
42
43
  /** `_sync_meta` key prefix of a table whose row meta covers every live row. */
43
44
  export declare const BASELINE_KEY_PREFIX = "baseline:";
@@ -141,6 +142,10 @@ export declare function streamStarted(db: DatabaseSync): boolean;
141
142
  * @param view - From {@link sealerRowView}, shared across tables.
142
143
  */
143
144
  export declare function planRepair(db: DatabaseSync, scope: TableScope, table: string, view?: SealerRowView): RepairPlan;
145
+ /** `x`'s local key matches the bound key values ({@link keyValues}). */
146
+ export declare function keyWhere(def: CaptureTableDef): string;
147
+ /** The key values a row's `rk` encodes, in key-column order. */
148
+ export declare function keyValues(rk: string): Array<string | number | bigint | Uint8Array | null>;
144
149
  /**
145
150
  * Baseline one table's row meta (§1.2 "genesis of an existing row"; §1.6
146
151
  * "one live meta row per live sync-set row"): every live row with a uid and
@@ -1 +1 @@
1
- {"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../../../src/store/sync/repair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../../../src/store/sync/repair.ts"],"names":[],"mappings":"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"}
@@ -189,7 +189,7 @@ export function planRepair(db, scope, table, view = sealerRowView(db, scope)) {
189
189
  };
190
190
  }
191
191
  /** `x`'s local key matches the bound key values ({@link keyValues}). */
192
- function keyWhere(def) {
192
+ export function keyWhere(def) {
193
193
  return def.key.map((k) => `x.${q(k)} IS ?`).join(' AND ');
194
194
  }
195
195
  /** A bindable SQLite value for a decoded key part. */
@@ -203,7 +203,7 @@ function bindable(v) {
203
203
  return Buffer.from(v.$b, 'base64');
204
204
  }
205
205
  /** The key values a row's `rk` encodes, in key-column order. */
206
- function keyValues(rk) {
206
+ export function keyValues(rk) {
207
207
  return JSON.parse(rk).map((p) => bindable(decodeEnc(p)));
208
208
  }
209
209
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"repair.js","sourceRoot":"","sources":["../../../src/store/sync/repair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repair.js","sourceRoot":"","sources":["../../../src/store/sync/repair.ts"],"names":[],"mappings":"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"}
@@ -65,7 +65,13 @@ export type RebindReason = 'file-identity' | 'foreign-device' | 'nonce-mismatch'
65
65
  * rules 1 and 3). The old replica is retired at the same path, so it is a
66
66
  * retire candidate for S4, unlike a copy (T13109).
67
67
  */
68
- | 'vault-restore';
68
+ | 'vault-restore'
69
+ /**
70
+ * Undo reached its budget while the replica could not reach the stream
71
+ * (§3.5 Rule 2, D5): the next pull to head rebinds, reconciles and retires
72
+ * the old id (T13278).
73
+ */
74
+ | 'undo-budget';
69
75
  /** What `stat` reports about a store file, in nanoseconds. */
70
76
  export interface FileStat {
71
77
  readonly ino: bigint;
@@ -248,6 +254,15 @@ export interface RebindReplicaOptions {
248
254
  */
249
255
  readonly identityProven?: boolean;
250
256
  }
257
+ /**
258
+ * Work that must commit with the rebind itself: it runs inside the rebind's
259
+ * `BEGIN IMMEDIATE`, after the new replica is bound and the old outbox is
260
+ * marked inherited, and a throw rolls the whole rebind back.
261
+ */
262
+ export type RebindWithin<T> = (db: DatabaseSync, ctx: {
263
+ readonly previous: ReplicaRow;
264
+ readonly current: ReplicaRow;
265
+ }) => T;
251
266
  /**
252
267
  * Force a rebind of a bound store: the hook S4 uses when the server answers a
253
268
  * push with "seq exists, hash differs" (N6: the server hwm is authoritative).
@@ -258,6 +273,18 @@ export declare function rebindReplica(db: DatabaseSync, opts: SyncOpenOptions, r
258
273
  replicaId: string;
259
274
  previousReplicaId: string;
260
275
  };
276
+ /**
277
+ * {@link rebindReplica}, with `within` run inside the rebind transaction
278
+ * (the T13278 rebind at the next pull to head: its reconcile and retire
279
+ * commit with the rebind, or none of it does).
280
+ *
281
+ * @throws {Error} When the store has no active replica.
282
+ */
283
+ export declare function rebindReplicaWith<T>(db: DatabaseSync, opts: SyncOpenOptions, reason: RebindReason, rebindOpts: RebindReplicaOptions, within: RebindWithin<T>): {
284
+ replicaId: string;
285
+ previousReplicaId: string;
286
+ result: T;
287
+ };
261
288
  /** What {@link rebindAfterVaultRestore} did. */
262
289
  export interface VaultRestoreRebind {
263
290
  readonly replicaId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"replica.d.ts","sourceRoot":"","sources":["../../../src/store/sync/replica.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replica.d.ts","sourceRoot":"","sources":["../../../src/store/sync/replica.ts"],"names":[],"mappings":"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"}
@@ -374,20 +374,34 @@ function bindPass(db, opts) {
374
374
  * @throws {Error} When the store has no active replica.
375
375
  */
376
376
  export function rebindReplica(db, opts, reason = 'server-seq-conflict', rebindOpts = {}) {
377
+ const out = rebindReplicaWith(db, opts, reason, rebindOpts, () => undefined);
378
+ return { replicaId: out.replicaId, previousReplicaId: out.previousReplicaId };
379
+ }
380
+ /**
381
+ * {@link rebindReplica}, with `within` run inside the rebind transaction
382
+ * (the T13278 rebind at the next pull to head: its reconcile and retire
383
+ * commit with the rebind, or none of it does).
384
+ *
385
+ * @throws {Error} When the store has no active replica.
386
+ */
387
+ export function rebindReplicaWith(db, opts, reason, rebindOpts, within) {
377
388
  const now = opts.now?.() ?? new Date();
378
389
  const { deviceId, registry } = resolveContext(opts);
379
390
  const identity = fileIdentity(opts.dbPath, opts.stat);
380
391
  const realpath = realpathSync(opts.dbPath);
381
- const { previous, current, hwm } = withImmediateTransaction(db, () => {
392
+ const { previous, current, hwm, result } = withImmediateTransaction(db, () => {
382
393
  const row = activeReplica(db, opts.scope);
383
394
  // @sync-invariant none:local-only no active replica to rebind; machine-local bookkeeping
384
395
  if (!row)
385
396
  throw new Error(`no active ${opts.scope} replica to rebind`);
386
397
  const persisted = storeHwm(db, row.replicaId);
398
+ const next = rebindInTransaction(db, row, identity, deviceId, [reason], now);
399
+ const retired = { ...row, retiredAt: now.toISOString(), successor: next.replicaId };
387
400
  return {
388
401
  previous: row,
389
402
  hwm: persisted,
390
- current: rebindInTransaction(db, row, identity, deviceId, [reason], now),
403
+ current: next,
404
+ result: within(db, { previous: retired, current: next }),
391
405
  };
392
406
  });
393
407
  // The retired replica is a retire candidate (§1.5 "Retirement"; T13109) only
@@ -409,7 +423,7 @@ export function rebindReplica(db, opts, reason = 'server-seq-conflict', rebindOp
409
423
  }, now);
410
424
  }
411
425
  register(registry, db, current, realpath, now);
412
- return { replicaId: current.replicaId, previousReplicaId: previous.replicaId };
426
+ return { replicaId: current.replicaId, previousReplicaId: previous.replicaId, result };
413
427
  }
414
428
  /**
415
429
  * After a vault restore or pull placed a snapshot at `dbPath`, retire the