hikoutei 0.5.9 → 0.5.10
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/application/orm/persistence/projection/projectionEffects.d.ts.map +1 -1
- package/dist/application/orm/persistence/projection/projectionEffects.js +15 -1
- package/dist/application/orm/persistence/projection/projectionEffects.js.map +1 -1
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js +5 -1
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js.map +1 -1
- package/dist/application/sync/outbound/reconciliation/CleanupScanner.d.ts +69 -0
- package/dist/application/sync/outbound/reconciliation/CleanupScanner.d.ts.map +1 -0
- package/dist/application/sync/outbound/reconciliation/CleanupScanner.js +196 -0
- package/dist/application/sync/outbound/reconciliation/CleanupScanner.js.map +1 -0
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +54 -7
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
- package/dist/application/sync/outbound/reconciliation/cleanup.d.ts +187 -0
- package/dist/application/sync/outbound/reconciliation/cleanup.d.ts.map +1 -0
- package/dist/application/sync/outbound/reconciliation/cleanup.js +459 -0
- package/dist/application/sync/outbound/reconciliation/cleanup.js.map +1 -0
- package/dist/application/sync/outbound/reconciliation/enqueue.d.ts +30 -0
- package/dist/application/sync/outbound/reconciliation/enqueue.d.ts.map +1 -0
- package/dist/application/sync/outbound/reconciliation/enqueue.js +57 -0
- package/dist/application/sync/outbound/reconciliation/enqueue.js.map +1 -0
- package/dist/application/sync/outbound/reconciliation/repair.d.ts +36 -1
- package/dist/application/sync/outbound/reconciliation/repair.d.ts.map +1 -1
- package/dist/application/sync/outbound/reconciliation/repair.js +95 -10
- package/dist/application/sync/outbound/reconciliation/repair.js.map +1 -1
- package/dist/application/sync/outbound/reconciliation/shared.d.ts +16 -1
- package/dist/application/sync/outbound/reconciliation/shared.d.ts.map +1 -1
- package/dist/application/sync/outbound/reconciliation/shared.js +16 -1
- package/dist/application/sync/outbound/reconciliation/shared.js.map +1 -1
- package/dist/application/sync/service/SyncServiceBootstrap.d.ts.map +1 -1
- package/dist/application/sync/service/SyncServiceBootstrap.js +21 -0
- package/dist/application/sync/service/SyncServiceBootstrap.js.map +1 -1
- package/dist/infrastructure/storage/index.d.ts +1 -1
- package/dist/infrastructure/storage/index.d.ts.map +1 -1
- package/dist/infrastructure/storage/index.js +1 -1
- package/dist/infrastructure/storage/index.js.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.js +17 -2
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.js.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts +21 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js +31 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionEffects.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/projection/projectionEffects.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAiBrC,OAAO,KAAK,EACV,SAAS,EACT,mBAAmB,EACnB,WAAW,EACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,kCAAkC,EACxC,MAAM,gCAAgC,CAAC;AAqBxC,mFAAmF;AACnF,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EACvD,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAC3C,aAAa,EAAE,SAAS,6BAA6B,EAAE,EACvD,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO,GACzD,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAwI/B;AAED,wEAAwE;AACxE,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,kCAAkC,GAC7C,OAAO,CAAC,mBAAmB,CAAC,CAa9B;AAED,6EAA6E;AAC7E,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,kCAAkC,EAC9C,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"projectionEffects.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/projection/projectionEffects.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAiBrC,OAAO,KAAK,EACV,SAAS,EACT,mBAAmB,EACnB,WAAW,EACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,kCAAkC,EACxC,MAAM,gCAAgC,CAAC;AAqBxC,mFAAmF;AACnF,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EACvD,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAC3C,aAAa,EAAE,SAAS,6BAA6B,EAAE,EACvD,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO,GACzD,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAwI/B;AAED,wEAAwE;AACxE,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,kCAAkC,GAC7C,OAAO,CAAC,mBAAmB,CAAC,CAa9B;AAED,6EAA6E;AAC7E,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,kCAAkC,EAC9C,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CA+E7B;AAED,iFAAiF;AACjF,wBAAsB,oCAAoC,CACxD,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,kCAAkC,EAC9C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC,CA2B7B"}
|
|
@@ -157,7 +157,21 @@ export async function projectionBaseline(sql, mapping, projection, rowBindingId,
|
|
|
157
157
|
if (!isNonNegativeSafeInteger(latest.expected_visible_revision)) {
|
|
158
158
|
throwProjectionBlocked(mapping, projection, "latest effect has an invalid expected visible revision");
|
|
159
159
|
}
|
|
160
|
-
|
|
160
|
+
// The in-flight effect may be a create-baseline repair (expected
|
|
161
|
+
// revision 0) whose confirmation clamps the durable confirmed
|
|
162
|
+
// revision forward (confirmed + 1) when it settles. A follower
|
|
163
|
+
// planned against the repair's expected revision alone could then
|
|
164
|
+
// confirm below the clamped revision and be rejected by the
|
|
165
|
+
// visible-state upsert guard as a regression, wedging the stream.
|
|
166
|
+
// Floor the follower revision at the last confirmed revision so the
|
|
167
|
+
// chain stays monotonic; the hash still comes from the in-flight
|
|
168
|
+
// effect's target because that is what the sheet will show after it
|
|
169
|
+
// applies.
|
|
170
|
+
const visible = await readMappedVisibleProjectionStateWithSql(sql, projection.physicalSheetId, projection.projection, rowBindingId);
|
|
171
|
+
if (visible !== undefined && !isNonNegativeSafeInteger(visible.confirmed_visible_revision)) {
|
|
172
|
+
throwProjectionBlocked(mapping, projection, "confirmed visible state is invalid");
|
|
173
|
+
}
|
|
174
|
+
const expectedVisibleRevision = Math.max(latest.expected_visible_revision + 1, visible === undefined ? 0 : visible.confirmed_visible_revision);
|
|
161
175
|
if (!isNonNegativeSafeInteger(expectedVisibleRevision)) {
|
|
162
176
|
throwProjectionBlocked(mapping, projection, "projection visible revision overflowed");
|
|
163
177
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionEffects.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/projection/projectionEffects.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"projectionEffects.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/projection/projectionEffects.ts"],"names":[],"mappings":"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"}
|
|
@@ -202,7 +202,11 @@ function validateInput(input) {
|
|
|
202
202
|
throwEffectError("user input deletion must target one User_Input projection row");
|
|
203
203
|
}
|
|
204
204
|
if (input.rowBindingId.kind === PRESENCE_KINDS.ABSENT &&
|
|
205
|
-
input.targetKind !== PROJECTION_TARGET_KINDS.CONFLICT
|
|
205
|
+
input.targetKind !== PROJECTION_TARGET_KINDS.CONFLICT &&
|
|
206
|
+
// Orphan/empty-ID User_Input deletes have no real binding to protect or
|
|
207
|
+
// confirm; the outbox row binding stays NULL and the worker writes no
|
|
208
|
+
// projection confirmation for a binding that does not exist.
|
|
209
|
+
input.effectKind !== PROJECTION_EFFECT_KINDS.USER_INPUT_DELETE) {
|
|
206
210
|
throwEffectError("non-conflict projection effect requires a row binding ID");
|
|
207
211
|
}
|
|
208
212
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectionEffectFactory.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/projection/ProjectionEffectFactory.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ProjectionEffectFactory.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/projection/ProjectionEffectFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Periodic cleanup scanner for the User_Input projection.
|
|
3
|
+
*
|
|
4
|
+
* SQLite is the authority and User_Input is the human input surface; when
|
|
5
|
+
* that surface is corrupted (duplicated business keys or anchors, empty-ID
|
|
6
|
+
* rows, orphan rows) the scan rewrites the tab from SQLite canonical state:
|
|
7
|
+
* bound rows get full-row candidate_reconcile rewrites carrying canonical
|
|
8
|
+
* values (blocked by the existing candidate guard while a candidate is
|
|
9
|
+
* durable), and every surplus row (duplicates beyond the kept row, empty-ID
|
|
10
|
+
* rows, orphans) gets a `user_input_delete` effect carrying the full observed
|
|
11
|
+
* row as its compare-and-set guard. All corrections flow through the durable
|
|
12
|
+
* outbox and the effect worker's CAS-guarded slow path, so cleanup never
|
|
13
|
+
* mutates the Sheet directly and can never touch a row that a human or
|
|
14
|
+
* candidate pipeline changed concurrently.
|
|
15
|
+
*
|
|
16
|
+
* Duplicated-anchor groups are converged one row per scan because the real
|
|
17
|
+
* provider only resolves the first row per anchor value; the group's rewrite
|
|
18
|
+
* is deferred until the group is down to one row. Scope mirrors the
|
|
19
|
+
* System_State reconciliation scanner: one snapshot read, one fenced writer
|
|
20
|
+
* lease, and corrections that flow through the durable outbox. A re-scan of a
|
|
21
|
+
* converged tab enqueues nothing.
|
|
22
|
+
*/
|
|
23
|
+
import type { SqlStorageAdapter } from "../../../../adapter/persistence/contracts/sql.js";
|
|
24
|
+
import { type SyncSheetsProvider } from "../../sheetsContract/syncSheets.js";
|
|
25
|
+
import { type ReconciliationIdFactory } from "./shared.js";
|
|
26
|
+
/** Construction options for a single User_Input cleanup scan. */
|
|
27
|
+
export interface RunCleanupScanOptions {
|
|
28
|
+
readonly storage: SqlStorageAdapter;
|
|
29
|
+
readonly provider: SyncSheetsProvider;
|
|
30
|
+
/** Physical sheet id of the User_Input projection to clean. */
|
|
31
|
+
readonly physicalSheetId: string;
|
|
32
|
+
/** Logical sheet id owning the row bindings and evidence. */
|
|
33
|
+
readonly logicalSheetId: string;
|
|
34
|
+
/**
|
|
35
|
+
* Business-key header used to detect duplicated and orphan identities on
|
|
36
|
+
* the User_Input tab. Must be one of the tab's headers.
|
|
37
|
+
*/
|
|
38
|
+
readonly identityField: string;
|
|
39
|
+
/** Schema version shared by every cleanup effect produced here. */
|
|
40
|
+
readonly schemaVersion: number;
|
|
41
|
+
/** Reconciler writer identity. */
|
|
42
|
+
readonly writerId: string;
|
|
43
|
+
/** Injectable clock and id source for deterministic tests. */
|
|
44
|
+
readonly now?: () => number;
|
|
45
|
+
readonly createId?: ReconciliationIdFactory;
|
|
46
|
+
/** Override the reconciler lease role or duration. */
|
|
47
|
+
readonly writerRole?: string;
|
|
48
|
+
readonly leaseDurationMs?: number;
|
|
49
|
+
/** Observability hook invoked once after the scan settles. */
|
|
50
|
+
readonly onReport?: (report: CleanupScanReport) => void;
|
|
51
|
+
}
|
|
52
|
+
/** Observable outcome of one User_Input cleanup scan. */
|
|
53
|
+
export interface CleanupScanReport {
|
|
54
|
+
readonly physicalSheetId: string;
|
|
55
|
+
readonly rowsScanned: number;
|
|
56
|
+
readonly duplicateRows: number;
|
|
57
|
+
readonly emptyIdRows: number;
|
|
58
|
+
readonly extraRows: number;
|
|
59
|
+
/** Rows rewritten from SQLite canonical state (full-row overwrite). */
|
|
60
|
+
readonly rewrittenRows: number;
|
|
61
|
+
readonly effectsEnqueued: number;
|
|
62
|
+
readonly fenceClaimed: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Runs one cleanup scan and enqueues CAS-carrying delete effects for every
|
|
66
|
+
* surplus row. The scan never writes to the Sheet directly.
|
|
67
|
+
*/
|
|
68
|
+
export declare function runUserInputCleanupScan(options: RunCleanupScanOptions): Promise<CleanupScanReport>;
|
|
69
|
+
//# sourceMappingURL=CleanupScanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CleanupScanner.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/CleanupScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAWH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAK5C,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,aAAa,CAAC;AASrB,iEAAiE;AACjE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,+DAA+D;IAC/D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAC5C,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACzD;AAED,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CA8B5B"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Periodic cleanup scanner for the User_Input projection.
|
|
3
|
+
*
|
|
4
|
+
* SQLite is the authority and User_Input is the human input surface; when
|
|
5
|
+
* that surface is corrupted (duplicated business keys or anchors, empty-ID
|
|
6
|
+
* rows, orphan rows) the scan rewrites the tab from SQLite canonical state:
|
|
7
|
+
* bound rows get full-row candidate_reconcile rewrites carrying canonical
|
|
8
|
+
* values (blocked by the existing candidate guard while a candidate is
|
|
9
|
+
* durable), and every surplus row (duplicates beyond the kept row, empty-ID
|
|
10
|
+
* rows, orphans) gets a `user_input_delete` effect carrying the full observed
|
|
11
|
+
* row as its compare-and-set guard. All corrections flow through the durable
|
|
12
|
+
* outbox and the effect worker's CAS-guarded slow path, so cleanup never
|
|
13
|
+
* mutates the Sheet directly and can never touch a row that a human or
|
|
14
|
+
* candidate pipeline changed concurrently.
|
|
15
|
+
*
|
|
16
|
+
* Duplicated-anchor groups are converged one row per scan because the real
|
|
17
|
+
* provider only resolves the first row per anchor value; the group's rewrite
|
|
18
|
+
* is deferred until the group is down to one row. Scope mirrors the
|
|
19
|
+
* System_State reconciliation scanner: one snapshot read, one fenced writer
|
|
20
|
+
* lease, and corrections that flow through the durable outbox. A re-scan of a
|
|
21
|
+
* converged tab enqueues nothing.
|
|
22
|
+
*/
|
|
23
|
+
import { randomUUID } from "node:crypto";
|
|
24
|
+
import { POSITIVE_SAFE_INTEGER_MINIMUM } from "../../../../domain/index.js";
|
|
25
|
+
import { claimWriterLeaseWithAdapter, requireRegisteredSyncSheetWithAdapter, WRITER_LEASE_CLAIM_RESULT_KINDS, } from "../../../../infrastructure/storage/index.js";
|
|
26
|
+
import { STORAGE_ERROR_CODES, StorageError } from "../../../../infrastructure/storage/errors.js";
|
|
27
|
+
import { observeSyncSnapshot, } from "../../sheetsContract/syncSheets.js";
|
|
28
|
+
import { SYNC_PROJECTIONS, SYNC_SNAPSHOT_READ_MODES, } from "../../sheetsContract/constants.js";
|
|
29
|
+
import { DEFAULT_RECONCILIATION_LEASE_MS, DEFAULT_RECONCILIATION_ROLE, } from "./shared.js";
|
|
30
|
+
import { appendEffectsWithSupersedes } from "./enqueue.js";
|
|
31
|
+
import { buildCleanupEffects, classifyCleanupRows, decodeCleanupRows, readCleanupEvidence, } from "./cleanup.js";
|
|
32
|
+
/**
|
|
33
|
+
* Runs one cleanup scan and enqueues CAS-carrying delete effects for every
|
|
34
|
+
* surplus row. The scan never writes to the Sheet directly.
|
|
35
|
+
*/
|
|
36
|
+
export async function runUserInputCleanupScan(options) {
|
|
37
|
+
validateOptions(options);
|
|
38
|
+
const now = options.now ?? Date.now;
|
|
39
|
+
const createId = options.createId ?? randomUUID;
|
|
40
|
+
const role = options.writerRole ?? DEFAULT_RECONCILIATION_ROLE;
|
|
41
|
+
const leaseDurationMs = options.leaseDurationMs ?? DEFAULT_RECONCILIATION_LEASE_MS;
|
|
42
|
+
const context = {
|
|
43
|
+
storage: options.storage,
|
|
44
|
+
provider: options.provider,
|
|
45
|
+
physicalSheetId: options.physicalSheetId,
|
|
46
|
+
logicalSheetId: options.logicalSheetId,
|
|
47
|
+
identityField: options.identityField,
|
|
48
|
+
schemaVersion: options.schemaVersion,
|
|
49
|
+
writerId: options.writerId,
|
|
50
|
+
now,
|
|
51
|
+
createId,
|
|
52
|
+
role,
|
|
53
|
+
leaseDurationMs,
|
|
54
|
+
};
|
|
55
|
+
const report = await scanAndEnqueue(context);
|
|
56
|
+
try {
|
|
57
|
+
options.onReport?.(report);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Observability callbacks must never fail the scan.
|
|
61
|
+
}
|
|
62
|
+
return report;
|
|
63
|
+
}
|
|
64
|
+
async function scanAndEnqueue(context) {
|
|
65
|
+
const sheet = await requireRegisteredSyncSheetWithAdapter(context.storage, context.physicalSheetId);
|
|
66
|
+
if (sheet.projection !== SYNC_PROJECTIONS.USER_INPUT) {
|
|
67
|
+
throw new StorageError(STORAGE_ERROR_CODES.INVALID_SYNC_REGISTRATION, "cleanup scanner only supports the user_input projection");
|
|
68
|
+
}
|
|
69
|
+
const snapshotRequest = {
|
|
70
|
+
physicalSheetId: context.physicalSheetId,
|
|
71
|
+
sheetName: sheet.tabName,
|
|
72
|
+
registeredRange: sheet.registeredRange,
|
|
73
|
+
projection: SYNC_PROJECTIONS.USER_INPUT,
|
|
74
|
+
schemaVersion: sheet.schemaVersion,
|
|
75
|
+
readMode: SYNC_SNAPSHOT_READ_MODES.FULL,
|
|
76
|
+
};
|
|
77
|
+
const observed = await observeSyncSnapshot(context.provider, snapshotRequest);
|
|
78
|
+
const rows = decodeCleanupRows(observed.snapshot, context.identityField);
|
|
79
|
+
const evidence = await readCleanupEvidence(context.storage, context.logicalSheetId, context.physicalSheetId);
|
|
80
|
+
const targets = classifyCleanupRows(rows, evidence);
|
|
81
|
+
const counts = countTargets(targets);
|
|
82
|
+
if (targets.length === 0) {
|
|
83
|
+
return {
|
|
84
|
+
physicalSheetId: context.physicalSheetId,
|
|
85
|
+
rowsScanned: rows.length,
|
|
86
|
+
duplicateRows: counts.duplicate,
|
|
87
|
+
emptyIdRows: counts.emptyId,
|
|
88
|
+
extraRows: counts.extra,
|
|
89
|
+
rewrittenRows: counts.rewritten,
|
|
90
|
+
effectsEnqueued: 0,
|
|
91
|
+
fenceClaimed: false,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
const fence = await claimReconcilerFence(context);
|
|
95
|
+
if (fence === null) {
|
|
96
|
+
return {
|
|
97
|
+
physicalSheetId: context.physicalSheetId,
|
|
98
|
+
rowsScanned: rows.length,
|
|
99
|
+
duplicateRows: counts.duplicate,
|
|
100
|
+
emptyIdRows: counts.emptyId,
|
|
101
|
+
extraRows: counts.extra,
|
|
102
|
+
rewrittenRows: counts.rewritten,
|
|
103
|
+
effectsEnqueued: 0,
|
|
104
|
+
fenceClaimed: false,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
const plans = await buildCleanupEffects({
|
|
108
|
+
storage: context.storage,
|
|
109
|
+
logicalSheetId: context.logicalSheetId,
|
|
110
|
+
physicalSheetId: context.physicalSheetId,
|
|
111
|
+
schemaVersion: context.schemaVersion,
|
|
112
|
+
identityField: context.identityField,
|
|
113
|
+
createId: context.createId,
|
|
114
|
+
}, sheet, targets);
|
|
115
|
+
if (plans.length === 0) {
|
|
116
|
+
return {
|
|
117
|
+
physicalSheetId: context.physicalSheetId,
|
|
118
|
+
rowsScanned: rows.length,
|
|
119
|
+
duplicateRows: counts.duplicate,
|
|
120
|
+
emptyIdRows: counts.emptyId,
|
|
121
|
+
extraRows: counts.extra,
|
|
122
|
+
rewrittenRows: counts.rewritten,
|
|
123
|
+
effectsEnqueued: 0,
|
|
124
|
+
fenceClaimed: true,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
const enqueued = await appendEffectsWithSupersedes(context.storage, fence, plans);
|
|
128
|
+
return {
|
|
129
|
+
physicalSheetId: context.physicalSheetId,
|
|
130
|
+
rowsScanned: rows.length,
|
|
131
|
+
duplicateRows: counts.duplicate,
|
|
132
|
+
emptyIdRows: counts.emptyId,
|
|
133
|
+
extraRows: counts.extra,
|
|
134
|
+
rewrittenRows: counts.rewritten,
|
|
135
|
+
effectsEnqueued: enqueued ? plans.length : 0,
|
|
136
|
+
fenceClaimed: true,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
async function claimReconcilerFence(context) {
|
|
140
|
+
const claim = await claimWriterLeaseWithAdapter(context.storage, {
|
|
141
|
+
role: context.role,
|
|
142
|
+
writerId: context.writerId,
|
|
143
|
+
leaseDurationMs: context.leaseDurationMs,
|
|
144
|
+
now: context.now(),
|
|
145
|
+
});
|
|
146
|
+
if (claim.kind !== WRITER_LEASE_CLAIM_RESULT_KINDS.CLAIMED)
|
|
147
|
+
return null;
|
|
148
|
+
const lease = claim.lease;
|
|
149
|
+
return {
|
|
150
|
+
role: lease.role,
|
|
151
|
+
writerEpoch: lease.writerEpoch,
|
|
152
|
+
fencingToken: lease.fencingToken,
|
|
153
|
+
now: context.now(),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function countTargets(targets) {
|
|
157
|
+
let duplicate = 0;
|
|
158
|
+
let emptyId = 0;
|
|
159
|
+
let extra = 0;
|
|
160
|
+
let rewritten = 0;
|
|
161
|
+
for (const target of targets) {
|
|
162
|
+
if (target.kind === "duplicate")
|
|
163
|
+
duplicate += 1;
|
|
164
|
+
else if (target.kind === "empty_id")
|
|
165
|
+
emptyId += 1;
|
|
166
|
+
else if (target.kind === "extra")
|
|
167
|
+
extra += 1;
|
|
168
|
+
else
|
|
169
|
+
rewritten += 1;
|
|
170
|
+
}
|
|
171
|
+
return { duplicate, emptyId, extra, rewritten };
|
|
172
|
+
}
|
|
173
|
+
function validateOptions(options) {
|
|
174
|
+
if (options.physicalSheetId.length === 0) {
|
|
175
|
+
throw new StorageError(STORAGE_ERROR_CODES.INVALID_SYNC_REGISTRATION, "cleanup scanner requires a physical sheet id");
|
|
176
|
+
}
|
|
177
|
+
if (options.logicalSheetId.length === 0) {
|
|
178
|
+
throw new StorageError(STORAGE_ERROR_CODES.INVALID_SYNC_REGISTRATION, "cleanup scanner requires a logical sheet id");
|
|
179
|
+
}
|
|
180
|
+
if (options.identityField.length === 0) {
|
|
181
|
+
throw new StorageError(STORAGE_ERROR_CODES.INVALID_SYNC_REGISTRATION, "cleanup scanner requires an identity field");
|
|
182
|
+
}
|
|
183
|
+
if (!Number.isSafeInteger(options.schemaVersion) ||
|
|
184
|
+
options.schemaVersion < POSITIVE_SAFE_INTEGER_MINIMUM) {
|
|
185
|
+
throw new StorageError(STORAGE_ERROR_CODES.INVALID_SYNC_REGISTRATION, "cleanup scanner schemaVersion must be a positive safe integer");
|
|
186
|
+
}
|
|
187
|
+
if (options.writerId.length === 0) {
|
|
188
|
+
throw new StorageError(STORAGE_ERROR_CODES.STALE_WRITER_FENCE, "cleanup scanner writerId is required");
|
|
189
|
+
}
|
|
190
|
+
if (options.leaseDurationMs !== undefined &&
|
|
191
|
+
(!Number.isSafeInteger(options.leaseDurationMs) ||
|
|
192
|
+
options.leaseDurationMs < POSITIVE_SAFE_INTEGER_MINIMUM)) {
|
|
193
|
+
throw new StorageError(STORAGE_ERROR_CODES.STALE_WRITER_FENCE, "cleanup scanner leaseDurationMs must be a positive safe integer");
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=CleanupScanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CleanupScanner.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/CleanupScanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReconciliationScanner.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"ReconciliationScanner.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAaH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAK5C,OAAO,EAML,KAAK,uBAAuB,EAE7B,MAAM,aAAa,CAAC;AAcrB,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,6DAA6D;AAC7D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,uDAAuD;IACvD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAC5C,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAChE;AAED,qDAAqD;AACrD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CAkCnC;AAsPD,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC"}
|
|
@@ -20,13 +20,14 @@
|
|
|
20
20
|
*/
|
|
21
21
|
import { randomUUID } from "node:crypto";
|
|
22
22
|
import { POSITIVE_SAFE_INTEGER_MINIMUM } from "../../../../domain/index.js";
|
|
23
|
-
import {
|
|
23
|
+
import { claimWriterLeaseWithAdapter, requireRegisteredSyncSheetWithAdapter, supersedeEffectWithAdapter, WRITER_LEASE_CLAIM_RESULT_KINDS, } from "../../../../infrastructure/storage/index.js";
|
|
24
24
|
import { STORAGE_ERROR_CODES, StorageError } from "../../../../infrastructure/storage/errors.js";
|
|
25
25
|
import { observeSyncSnapshot, } from "../../sheetsContract/syncSheets.js";
|
|
26
26
|
import { SYNC_PROJECTIONS, SYNC_SNAPSHOT_READ_MODES, } from "../../sheetsContract/constants.js";
|
|
27
27
|
import { DEFAULT_RECONCILIATION_LEASE_MS, DEFAULT_RECONCILIATION_ROLE, DEFAULT_SYSTEM_TOMBSTONE_FIELD, readDesiredSystemState, } from "./shared.js";
|
|
28
28
|
import { computeDrifts, countExtraRows, countMatchedRows, } from "./diff.js";
|
|
29
|
-
import {
|
|
29
|
+
import { appendEffectsWithSupersedes, } from "./enqueue.js";
|
|
30
|
+
import { buildCorrectionEffects, } from "./repair.js";
|
|
30
31
|
/**
|
|
31
32
|
* Runs one reconciliation scan and enqueues correction effects for drift.
|
|
32
33
|
*
|
|
@@ -110,8 +111,8 @@ async function scanAndEnqueue(context) {
|
|
|
110
111
|
fenceClaimed: false,
|
|
111
112
|
});
|
|
112
113
|
}
|
|
113
|
-
const
|
|
114
|
-
if (
|
|
114
|
+
const plans = await buildCorrectionEffects(context, sheet, drifts);
|
|
115
|
+
if (plans.length === 0) {
|
|
115
116
|
return freezeReport(context.physicalSheetId, snapshot, desired, {
|
|
116
117
|
matched: countMatchedRows(snapshot, desired, sheet.businessKeyField),
|
|
117
118
|
drifted: drifts.filter((drift) => drift.kind === "drifted").length,
|
|
@@ -121,8 +122,8 @@ async function scanAndEnqueue(context) {
|
|
|
121
122
|
fenceClaimed: true,
|
|
122
123
|
});
|
|
123
124
|
}
|
|
124
|
-
const enqueued = await
|
|
125
|
-
if (
|
|
125
|
+
const enqueued = await enqueueCorrections(context, fence, plans);
|
|
126
|
+
if (enqueued === 0) {
|
|
126
127
|
return freezeReport(context.physicalSheetId, snapshot, desired, {
|
|
127
128
|
matched: countMatchedRows(snapshot, desired, sheet.businessKeyField),
|
|
128
129
|
drifted: drifts.filter((drift) => drift.kind === "drifted").length,
|
|
@@ -137,10 +138,56 @@ async function scanAndEnqueue(context) {
|
|
|
137
138
|
drifted: drifts.filter((drift) => drift.kind === "drifted").length,
|
|
138
139
|
missing: drifts.filter((drift) => drift.kind === "missing").length,
|
|
139
140
|
extra: countExtraRows(snapshot, desired, sheet.businessKeyField),
|
|
140
|
-
effects:
|
|
141
|
+
effects: enqueued,
|
|
141
142
|
fenceClaimed: true,
|
|
142
143
|
});
|
|
143
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Enqueues planned corrections under the reconciler fence.
|
|
147
|
+
*
|
|
148
|
+
* Supersede-only plans (an equivalent correction already in flight behind a
|
|
149
|
+
* terminal failed head) are recovered by superseding that head with the
|
|
150
|
+
* in-flight correction id. Append plans whose stream head is a terminal
|
|
151
|
+
* failed effect commit the append and the supersede in ONE fenced
|
|
152
|
+
* transaction, so the durable predecessor guard can never observe the new
|
|
153
|
+
* repair while the failed head still blocks it; a lost race (the head was
|
|
154
|
+
* already superseded) rolls the append back and the next scan re-plans.
|
|
155
|
+
* Returns the number of effects appended (0 when the fence was lost or the
|
|
156
|
+
* recovery raced away).
|
|
157
|
+
*/
|
|
158
|
+
async function enqueueCorrections(context, fence, plans) {
|
|
159
|
+
const appends = plans.filter((plan) => plan.effect !== null);
|
|
160
|
+
const supersedeOnly = plans.filter((plan) => plan.effect === null);
|
|
161
|
+
for (const plan of supersedeOnly) {
|
|
162
|
+
if (plan.supersedeFailedEffectId === null || plan.supersedeByEffectId === null)
|
|
163
|
+
continue;
|
|
164
|
+
try {
|
|
165
|
+
// Best-effort: when the failed head was already superseded by a
|
|
166
|
+
// concurrent pass, the now-claimable correction is exactly the same and
|
|
167
|
+
// the next scan re-evaluates the stream.
|
|
168
|
+
await supersedeEffectWithAdapter(context.storage, fence, plan.supersedeFailedEffectId, plan.supersedeByEffectId);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
if (error instanceof StorageError &&
|
|
172
|
+
(error.code === STORAGE_ERROR_CODES.EFFECT_REPLAN_CONFLICT ||
|
|
173
|
+
error.code === STORAGE_ERROR_CODES.STALE_WRITER_FENCE)) {
|
|
174
|
+
// A lost reconciler fence or a supersede that raced away is not a
|
|
175
|
+
// scan failure: the next scan re-evaluates the stream, and this scan
|
|
176
|
+
// settles as a 0-effect report instead of aborting sibling appends
|
|
177
|
+
// or surfacing a reconciliation error on every interval.
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
throw error;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (appends.length === 0)
|
|
184
|
+
return 0;
|
|
185
|
+
const appended = await appendEffectsWithSupersedes(context.storage, fence, appends.map((plan) => ({
|
|
186
|
+
effect: plan.effect,
|
|
187
|
+
supersedeEffectId: plan.supersedeFailedEffectId,
|
|
188
|
+
})));
|
|
189
|
+
return appended ? appends.length : 0;
|
|
190
|
+
}
|
|
144
191
|
async function claimReconcilerFence(context) {
|
|
145
192
|
const claim = await claimWriterLeaseWithAdapter(context.storage, {
|
|
146
193
|
role: context.role,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReconciliationScanner.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"ReconciliationScanner.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"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"}
|