hikoutei 0.10.15-dev → 0.10.17-dev

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 (31) hide show
  1. package/README.md +3 -1
  2. package/dist/storage/sqlite/migrateSchema.d.ts.map +1 -1
  3. package/dist/storage/sqlite/migrateSchema.js +16 -1
  4. package/dist/storage/sqlite/migrateSchema.js.map +1 -1
  5. package/dist/storage/sqlite/schema.d.ts +21 -0
  6. package/dist/storage/sqlite/schema.d.ts.map +1 -1
  7. package/dist/storage/sqlite/schema.js +27 -0
  8. package/dist/storage/sqlite/schema.js.map +1 -1
  9. package/dist/storage/sync/outbound/reconciliationSql.d.ts +81 -0
  10. package/dist/storage/sync/outbound/reconciliationSql.d.ts.map +1 -1
  11. package/dist/storage/sync/outbound/reconciliationSql.js +139 -1
  12. package/dist/storage/sync/outbound/reconciliationSql.js.map +1 -1
  13. package/dist/sync-engine/sync/outbound/reconciliation/CleanupScanner.d.ts.map +1 -1
  14. package/dist/sync-engine/sync/outbound/reconciliation/CleanupScanner.js +8 -3
  15. package/dist/sync-engine/sync/outbound/reconciliation/CleanupScanner.js.map +1 -1
  16. package/dist/sync-engine/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
  17. package/dist/sync-engine/sync/outbound/reconciliation/ReconciliationScanner.js +103 -53
  18. package/dist/sync-engine/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
  19. package/dist/sync-engine/sync/outbound/reconciliation/cleanup.d.ts +110 -0
  20. package/dist/sync-engine/sync/outbound/reconciliation/cleanup.d.ts.map +1 -1
  21. package/dist/sync-engine/sync/outbound/reconciliation/cleanup.js +307 -1
  22. package/dist/sync-engine/sync/outbound/reconciliation/cleanup.js.map +1 -1
  23. package/dist/sync-engine/sync/outbound/reconciliation/diff.d.ts +51 -7
  24. package/dist/sync-engine/sync/outbound/reconciliation/diff.d.ts.map +1 -1
  25. package/dist/sync-engine/sync/outbound/reconciliation/diff.js +53 -43
  26. package/dist/sync-engine/sync/outbound/reconciliation/diff.js.map +1 -1
  27. package/dist/sync-engine/sync/outbound/reconciliation/shared.d.ts +33 -11
  28. package/dist/sync-engine/sync/outbound/reconciliation/shared.d.ts.map +1 -1
  29. package/dist/sync-engine/sync/outbound/reconciliation/shared.js +93 -58
  30. package/dist/sync-engine/sync/outbound/reconciliation/shared.js.map +1 -1
  31. package/package.json +1 -1
package/README.md CHANGED
@@ -272,7 +272,9 @@ detailed state machine and recovery rules.
272
272
 
273
273
  Live Google calls are opt-in; fake providers and SQLite fixtures are the normal
274
274
  verification path. The detailed setup and troubleshooting steps are in the
275
- [Quick start](website/guide/quick-start.md).
275
+ [Quick start](website/guide/quick-start.md) and [Google Sheets setup](website/guide/setup.md) —
276
+ including the credential pool (`--sa-count`) and API quota guidance when
277
+ polling-heavy workloads hit HTTP 429.
276
278
 
277
279
  ## Installation
278
280
 
@@ -1 +1 @@
1
- {"version":3,"file":"migrateSchema.d.ts","sourceRoot":"","sources":["../../../../../../../../src/storage/sqlite/migrateSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEzF,OAAO,EAcL,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAC;AAOrB;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,qBAAqB,CAAC,CAkHhC"}
1
+ {"version":3,"file":"migrateSchema.d.ts","sourceRoot":"","sources":["../../../../../../../../src/storage/sqlite/migrateSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEzF,OAAO,EAgBL,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAC;AAOrB;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,qBAAqB,CAAC,CA2HhC"}
@@ -7,7 +7,7 @@
7
7
  * migration sequence while keeping DDL and later writes on one connection.
8
8
  */
9
9
  import { STORAGE_ERROR_CODES, StorageError } from "../errors.js";
10
- import { CURRENT_SCHEMA_VERSION, DROPPED_V7_COLUMNS, DROPPED_V7_TABLES, REQUIRED_V2_COLUMNS, REQUIRED_V3_COLUMNS, REQUIRED_V5_COLUMNS, REQUIRED_V6_COLUMNS, REQUIRED_V7_COLUMNS, REQUIRED_V9_COLUMNS, SQLITE_CONNECTION_PRAGMAS, syncSchemaIndexesDdl, syncSchemaTablesDdl, syncSchemaV5IndexesDdl, } from "./schema.js";
10
+ import { CURRENT_SCHEMA_VERSION, DROPPED_V7_COLUMNS, DROPPED_V7_TABLES, REQUIRED_V2_COLUMNS, REQUIRED_V3_COLUMNS, REQUIRED_V5_COLUMNS, REQUIRED_V6_COLUMNS, REQUIRED_V7_COLUMNS, REQUIRED_V9_COLUMNS, SCAN_INDEX_DDL, SCAN_ENTITY_INDEX_DDL, SQLITE_CONNECTION_PRAGMAS, syncSchemaIndexesDdl, syncSchemaTablesDdl, syncSchemaV5IndexesDdl, } from "./schema.js";
11
11
  import { executeSqlScript } from "./sqlScript.js";
12
12
  /**
13
13
  * Brings one SQLite store to the current sync schema version.
@@ -30,6 +30,8 @@ export async function migrateSqliteSchema(storage) {
30
30
  await verifyRequiredColumns(sql);
31
31
  await executeSqlScript(sql, syncSchemaIndexesDdl());
32
32
  await executeSqlScript(sql, syncSchemaV5IndexesDdl());
33
+ await executeSqlScript(sql, SCAN_INDEX_DDL);
34
+ await executeSqlScript(sql, SCAN_ENTITY_INDEX_DDL);
33
35
  await writeSchemaVersion(sql, CURRENT_SCHEMA_VERSION);
34
36
  await verifyCurrentSchema(sql);
35
37
  return {
@@ -112,6 +114,13 @@ export async function migrateSqliteSchema(storage) {
112
114
  // v5-only indexes are created after every migration so an upgraded v4
113
115
  // installation gets the probe index the same way a fresh install does.
114
116
  await executeSqlScript(sql, syncSchemaV5IndexesDdl());
117
+ // The scan index converges on every path like the v5 probe index, so a
118
+ // database created before it cannot miss the paged binding access path.
119
+ // No version bump: an additive IF NOT EXISTS index changes no column or
120
+ // table contract, and verifyCurrentSchema below refuses a marker when
121
+ // the index is absent.
122
+ await executeSqlScript(sql, SCAN_INDEX_DDL);
123
+ await executeSqlScript(sql, SCAN_ENTITY_INDEX_DDL);
115
124
  await verifyCurrentSchema(sql);
116
125
  return {
117
126
  fromVersion,
@@ -223,6 +232,12 @@ async function verifyCurrentSchema(sql) {
223
232
  if (!(await indexExists(sql, "effect_outbox_probe_idx"))) {
224
233
  throw new StorageError(STORAGE_ERROR_CODES.SCHEMA_INDEX_MISSING, "SQLite schema is missing effect_outbox_probe_idx.");
225
234
  }
235
+ if (!(await indexExists(sql, "row_binding_scan_idx"))) {
236
+ throw new StorageError(STORAGE_ERROR_CODES.SCHEMA_INDEX_MISSING, "SQLite schema is missing row_binding_scan_idx.");
237
+ }
238
+ if (!(await indexExists(sql, "row_binding_entity_idx"))) {
239
+ throw new StorageError(STORAGE_ERROR_CODES.SCHEMA_INDEX_MISSING, "SQLite schema is missing row_binding_entity_idx.");
240
+ }
226
241
  }
227
242
  async function verifyRequiredColumns(sql) {
228
243
  const versionTwoTables = [
@@ -1 +1 @@
1
- {"version":3,"file":"migrateSchema.js","sourceRoot":"","sources":["../../../../../../../../src/storage/sqlite/migrateSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrateSchema.js","sourceRoot":"","sources":["../../../../../../../../src/storage/sqlite/migrateSchema.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,27 @@ export { REQUIRED_V3_COLUMNS } from "@hikoutei/ikisaki";
15
15
  export { syncSchemaV5IndexesDdl } from "@hikoutei/ikisaki";
16
16
  /** Current durable schema version managed by the provider migration. */
17
17
  export declare const CURRENT_SCHEMA_VERSION = 9;
18
+ /**
19
+ * Covering index for the keyset-paged cleanup binding scan
20
+ * (`WHERE logical_sheet_id = ? AND row_binding_id > ? ORDER BY
21
+ * row_binding_id LIMIT ?`). Without it the scan sorts every binding of the
22
+ * sheet in a temp b-tree per page; with it each page is a bounded covering
23
+ * index range scan.
24
+ */
25
+ export declare const SCAN_INDEX_DDL = "\n CREATE INDEX IF NOT EXISTS row_binding_scan_idx\n ON row_binding(logical_sheet_id, row_binding_id);\n";
26
+ /**
27
+ * Covering index for the entity-batched scan pages: the desired-state and
28
+ * cleanup-canonical readers page whole entities in `entity_state` primary
29
+ * key order, then fetch each entity's bindings here. Every lookup is an
30
+ * index seek with no temp-b-tree sort (verified with EXPLAIN QUERY PLAN):
31
+ * the entity page follows the `entity_state` PK, field fetches follow the
32
+ * `entity_field_state` PK prefix, and this index serves the binding fetch
33
+ * as a covering range scan. A flat cross-table keyset can never get such a
34
+ * plan — the row-value predicate over joined tables forces SQLite to
35
+ * materialize and sort the whole join per page — which is why the readers
36
+ * page entities instead of flat rows.
37
+ */
38
+ export declare const SCAN_ENTITY_INDEX_DDL = "\n CREATE INDEX IF NOT EXISTS row_binding_entity_idx\n ON row_binding(logical_sheet_id, entity_id, state, row_binding_id, anchor_reference);\n";
18
39
  /** Observable result of bringing one SQLite database to the current schema. */
19
40
  export interface SchemaMigrationResult {
20
41
  readonly fromVersion: number;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../src/storage/sqlite/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,iGAIrC,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,MAAM,CAAC,eAAe,GAAG,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC,CAsClE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAC/C,MAAM,CAAC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC,CASnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,MAAM,CAAC,qBAAqB,GAAG,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC,CAI3E,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,MAAM,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC,CAG3C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,MAAM,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC,CAe/C,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,MAAM,CAAC,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC,CAGjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAA+B,CAAC;AAE/E,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CACvC,MAAM,CAAC,gBAAgB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC,CAMhH,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,mBAAmB,IAAI,MAAM,CAY5C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAK7C"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../src/storage/sqlite/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,iHAG1B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,uJAGjC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,iGAIrC,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,MAAM,CAAC,eAAe,GAAG,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC,CAsClE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAC/C,MAAM,CAAC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC,CASnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,MAAM,CAAC,qBAAqB,GAAG,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC,CAI3E,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,MAAM,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC,CAG3C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,MAAM,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC,CAe/C,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CACxC,MAAM,CAAC,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC,CAGjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAA+B,CAAC;AAE/E,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CACvC,MAAM,CAAC,gBAAgB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC,CAMhH,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,mBAAmB,IAAI,MAAM,CAY5C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAK7C"}
@@ -16,6 +16,33 @@ export { REQUIRED_V3_COLUMNS } from "@hikoutei/ikisaki";
16
16
  export { syncSchemaV5IndexesDdl } from "@hikoutei/ikisaki";
17
17
  /** Current durable schema version managed by the provider migration. */
18
18
  export const CURRENT_SCHEMA_VERSION = 9;
19
+ /**
20
+ * Covering index for the keyset-paged cleanup binding scan
21
+ * (`WHERE logical_sheet_id = ? AND row_binding_id > ? ORDER BY
22
+ * row_binding_id LIMIT ?`). Without it the scan sorts every binding of the
23
+ * sheet in a temp b-tree per page; with it each page is a bounded covering
24
+ * index range scan.
25
+ */
26
+ export const SCAN_INDEX_DDL = `
27
+ CREATE INDEX IF NOT EXISTS row_binding_scan_idx
28
+ ON row_binding(logical_sheet_id, row_binding_id);
29
+ `;
30
+ /**
31
+ * Covering index for the entity-batched scan pages: the desired-state and
32
+ * cleanup-canonical readers page whole entities in `entity_state` primary
33
+ * key order, then fetch each entity's bindings here. Every lookup is an
34
+ * index seek with no temp-b-tree sort (verified with EXPLAIN QUERY PLAN):
35
+ * the entity page follows the `entity_state` PK, field fetches follow the
36
+ * `entity_field_state` PK prefix, and this index serves the binding fetch
37
+ * as a covering range scan. A flat cross-table keyset can never get such a
38
+ * plan — the row-value predicate over joined tables forces SQLite to
39
+ * materialize and sort the whole join per page — which is why the readers
40
+ * page entities instead of flat rows.
41
+ */
42
+ export const SCAN_ENTITY_INDEX_DDL = `
43
+ CREATE INDEX IF NOT EXISTS row_binding_entity_idx
44
+ ON row_binding(logical_sheet_id, entity_id, state, row_binding_id, anchor_reference);
45
+ `;
19
46
  /** Connection settings required by every typed-sheets SQLite store. */
20
47
  export const SQLITE_CONNECTION_PRAGMAS = `
21
48
  PRAGMA foreign_keys = ON;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../../../../src/storage/sqlite/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../../../../src/storage/sqlite/schema.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,87 @@ export interface ReconciliationCorrectionState {
29
29
  readonly latestEffect: ReconciliationLatestEffect | undefined;
30
30
  readonly visibleState: ReconciliationVisibleState | undefined;
31
31
  }
32
+ /**
33
+ * Canonical rows that should be visible in System_State, ordered for keyset
34
+ * pagination. This is the single implementation of the desired-state query:
35
+ * the sync-engine reconciliation scanner imports it instead of carrying its
36
+ * own copy, so the projection shape can only change in one place.
37
+ */
38
+ export declare const READ_DESIRED_SYSTEM_STATE_SQL = "\n SELECT\n entity.entity_id AS entity_id,\n binding.row_binding_id AS row_binding_id,\n binding.anchor_reference AS anchor_reference,\n entity.entity_revision AS entity_revision,\n field.field_name AS field_name,\n field.normalized_value AS normalized_value,\n field.ownership AS ownership\n FROM entity_state AS entity\n JOIN row_binding AS binding\n ON binding.entity_id = entity.entity_id\n AND binding.logical_sheet_id = ?\n AND binding.state = 'active'\n JOIN entity_field_state AS field\n ON field.entity_id = entity.entity_id\n WHERE entity.status = 'active'\n ORDER BY entity.entity_id, field.field_name\n";
39
+ /**
40
+ * Maximum flat rows read per scan chunk. Still bounds the single-table
41
+ * binding pages; the entity-batched desired/canonical pages below are
42
+ * bounded by `RECONCILIATION_SCAN_ENTITY_PAGE_SIZE` instead.
43
+ */
44
+ export declare const RECONCILIATION_SCAN_CHUNK_SIZE = 1000;
45
+ /**
46
+ * Maximum entities per entity-batched scan chunk. One chunk holds whole
47
+ * entities only (fields × bindings), so scan memory stays flat while the
48
+ * per-page cost stays bounded: the entity page is an `entity_state` primary
49
+ * key range scan, field fetches are `entity_field_state` PK prefix seeks,
50
+ * and binding fetches are `row_binding_entity_idx` covering seeks — no
51
+ * temp-b-tree sort anywhere (verified with EXPLAIN QUERY PLAN).
52
+ */
53
+ export declare const RECONCILIATION_SCAN_ENTITY_PAGE_SIZE = 250;
54
+ /** Keyset cursor for a paged desired-state chunk: the last entity already seen. */
55
+ export interface ReconciliationDesiredChunkCursor {
56
+ readonly entityId: string;
57
+ }
58
+ /** One active entity in primary key order. */
59
+ export interface ReconciliationPagedEntity {
60
+ readonly entityId: string;
61
+ readonly entityRevision: number;
62
+ }
63
+ /**
64
+ * Pages active entities in primary key order (range scan, no sort). Shared
65
+ * driver for the entity-batched scan readers: every page holds whole
66
+ * entities, so chunk boundaries never split an entity's rows and the
67
+ * cursor (`last entity paged`) can neither skip nor repeat rows.
68
+ */
69
+ export declare function readActiveEntityPageWithSql(sql: SqlExecutor, afterEntityId: string | undefined, limit: number): Promise<readonly ReconciliationPagedEntity[]>;
70
+ /** One entity's active bindings for a sheet. */
71
+ export interface ReconciliationEntityBinding {
72
+ readonly rowBindingId: string;
73
+ readonly anchorReference: string;
74
+ }
75
+ /**
76
+ * One entity's active bindings (covering seek on `row_binding_entity_idx`,
77
+ * no sort). Entities without an active binding yield no rows, exactly like
78
+ * the inner join of the full queries.
79
+ */
80
+ export declare function readEntityBindingsWithSql(sql: SqlExecutor, logicalSheetId: string, entityId: string): Promise<readonly ReconciliationEntityBinding[]>;
81
+ /** One entity's fields in primary key order (prefix seek, no sort). */
82
+ export interface ReconciliationEntityField {
83
+ readonly fieldName: string;
84
+ readonly normalizedValue: string;
85
+ readonly ownership: string;
86
+ }
87
+ /**
88
+ * One entity's fields, optionally ownership-filtered. PK prefix seek, no
89
+ * sort; `ownership` narrows to the user-owned projection subset.
90
+ */
91
+ export declare function readEntityFieldsWithSql(sql: SqlExecutor, entityId: string, ownership: "user" | undefined): Promise<readonly ReconciliationEntityField[]>;
92
+ /** One entity-batched chunk: whole entities as flat rows plus progress. */
93
+ export interface ReconciliationDesiredEntityChunk {
94
+ readonly rows: readonly ReconciliationDesiredSystemStateRow[];
95
+ /** Entities paged (including binding-less ones) — the termination signal. */
96
+ readonly entityCount: number;
97
+ /** Last entity paged — the next cursor (absent only when empty). */
98
+ readonly lastEntityId: string | undefined;
99
+ }
100
+ /**
101
+ * Reads one bounded chunk of whole entities as flat canonical rows, in the
102
+ * same global `(entity_id, field_name)` order as the full query. Pass no
103
+ * cursor for the first chunk, then `{ entityId }` of the last entity paged
104
+ * as the next cursor; an empty chunk (or `entityCount < limit`) ends the
105
+ * scan. Only `limit` entities (with their fields × bindings) are ever
106
+ * materialized per call, so scan memory is O(chunk) at bounded per-page
107
+ * cost — unlike a flat cross-table keyset, whose row-value predicate over
108
+ * joined tables forces SQLite to materialize and sort the whole join per
109
+ * page. Multi-binding entities emit one row per (binding, field) with the
110
+ * smallest `row_binding_id` first, so grouping stays deterministic.
111
+ */
112
+ export declare function readReconciliationDesiredSystemStateChunkWithSql(sql: SqlExecutor, logicalSheetId: string, after: ReconciliationDesiredChunkCursor | undefined, limit?: number): Promise<ReconciliationDesiredEntityChunk>;
32
113
  /** Reads the canonical rows that should be visible in System_State. */
33
114
  export declare function readReconciliationDesiredSystemStateWithSql(sql: SqlExecutor, logicalSheetId: string): Promise<readonly ReconciliationDesiredSystemStateRow[]>;
34
115
  /** Reads the canonical rows that should be visible in System_State. */
@@ -1 +1 @@
1
- {"version":3,"file":"reconciliationSql.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/storage/sync/outbound/reconciliationSql.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAE5C,gFAAgF;AAChF,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAYD,wEAAwE;AACxE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAOD,8DAA8D;AAC9D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAUD,2EAA2E;AAC3E,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,YAAY,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,YAAY,EAAE,0BAA0B,GAAG,SAAS,CAAC;CAC/D;AAoCD,uEAAuE;AACvE,wBAAgB,2CAA2C,CACzD,GAAG,EAAE,WAAW,EAChB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,SAAS,mCAAmC,EAAE,CAAC,CAKzD;AAED,uEAAuE;AACvE,wBAAgB,+CAA+C,CAC7D,OAAO,EAAE,iBAAiB,EAC1B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,SAAS,mCAAmC,EAAE,CAAC,CAIzD;AAED,gEAAgE;AAChE,wBAAgB,qCAAqC,CACnD,GAAG,EAAE,WAAW,EAChB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAKjD;AAED,oEAAoE;AACpE,wBAAgB,qCAAqC,CACnD,GAAG,EAAE,WAAW,EAChB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAKjD;AAED,iFAAiF;AACjF,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE;IACL,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,GACA,OAAO,CAAC,6BAA6B,CAAC,CAcxC"}
1
+ {"version":3,"file":"reconciliationSql.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/storage/sync/outbound/reconciliationSql.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,13 @@
1
1
  /** Storage reads used by System_State reconciliation. */
2
2
  import { EFFECT_STATUSES, } from "../../../contracts/domain/model/constants.js";
3
3
  import { STORAGE_ERROR_CODES, StorageError } from "../../errors.js";
4
- const READ_DESIRED_SYSTEM_STATE_SQL = `
4
+ /**
5
+ * Canonical rows that should be visible in System_State, ordered for keyset
6
+ * pagination. This is the single implementation of the desired-state query:
7
+ * the sync-engine reconciliation scanner imports it instead of carrying its
8
+ * own copy, so the projection shape can only change in one place.
9
+ */
10
+ export const READ_DESIRED_SYSTEM_STATE_SQL = `
5
11
  SELECT
6
12
  entity.entity_id AS entity_id,
7
13
  binding.row_binding_id AS row_binding_id,
@@ -20,6 +26,97 @@ const READ_DESIRED_SYSTEM_STATE_SQL = `
20
26
  WHERE entity.status = 'active'
21
27
  ORDER BY entity.entity_id, field.field_name
22
28
  `;
29
+ /**
30
+ * Maximum flat rows read per scan chunk. Still bounds the single-table
31
+ * binding pages; the entity-batched desired/canonical pages below are
32
+ * bounded by `RECONCILIATION_SCAN_ENTITY_PAGE_SIZE` instead.
33
+ */
34
+ export const RECONCILIATION_SCAN_CHUNK_SIZE = 1_000;
35
+ /**
36
+ * Maximum entities per entity-batched scan chunk. One chunk holds whole
37
+ * entities only (fields × bindings), so scan memory stays flat while the
38
+ * per-page cost stays bounded: the entity page is an `entity_state` primary
39
+ * key range scan, field fetches are `entity_field_state` PK prefix seeks,
40
+ * and binding fetches are `row_binding_entity_idx` covering seeks — no
41
+ * temp-b-tree sort anywhere (verified with EXPLAIN QUERY PLAN).
42
+ */
43
+ export const RECONCILIATION_SCAN_ENTITY_PAGE_SIZE = 250;
44
+ /** One page of active entities in primary key order (no sort possible). */
45
+ const READ_ACTIVE_ENTITY_PAGE_SQL = `
46
+ SELECT entity_id, entity_revision
47
+ FROM entity_state
48
+ WHERE status = 'active' AND entity_id > ?
49
+ ORDER BY entity_id
50
+ LIMIT ?
51
+ `;
52
+ const READ_ACTIVE_ENTITY_FIRST_PAGE_SQL = `
53
+ SELECT entity_id, entity_revision
54
+ FROM entity_state
55
+ WHERE status = 'active'
56
+ ORDER BY entity_id
57
+ LIMIT ?
58
+ `;
59
+ /** One entity's fields in primary key order (prefix seek, no sort). */
60
+ const READ_ENTITY_FIELDS_SQL = `
61
+ SELECT field_name, normalized_value, ownership
62
+ FROM entity_field_state
63
+ WHERE entity_id = ?
64
+ ORDER BY field_name
65
+ `;
66
+ const READ_ENTITY_USER_FIELDS_SQL = `
67
+ SELECT field_name, normalized_value, ownership
68
+ FROM entity_field_state
69
+ WHERE entity_id = ? AND ownership = 'user'
70
+ ORDER BY field_name
71
+ `;
72
+ /**
73
+ * One entity's active bindings for a sheet (covering seek on
74
+ * `row_binding_entity_idx`, no sort). Entities without an active binding
75
+ * contribute no rows, exactly like the inner join of the full query.
76
+ */
77
+ const READ_ENTITY_BINDINGS_SQL = `
78
+ SELECT row_binding_id, anchor_reference
79
+ FROM row_binding
80
+ WHERE logical_sheet_id = ? AND entity_id = ? AND state = 'active'
81
+ ORDER BY row_binding_id
82
+ `;
83
+ /**
84
+ * Pages active entities in primary key order (range scan, no sort). Shared
85
+ * driver for the entity-batched scan readers: every page holds whole
86
+ * entities, so chunk boundaries never split an entity's rows and the
87
+ * cursor (`last entity paged`) can neither skip nor repeat rows.
88
+ */
89
+ export function readActiveEntityPageWithSql(sql, afterEntityId, limit) {
90
+ return sql.all(afterEntityId === undefined ? READ_ACTIVE_ENTITY_FIRST_PAGE_SQL : READ_ACTIVE_ENTITY_PAGE_SQL, afterEntityId === undefined ? [limit] : [afterEntityId, limit]).then((rows) => rows.map((row) => ({
91
+ entityId: row.entity_id,
92
+ entityRevision: row.entity_revision,
93
+ })));
94
+ }
95
+ /**
96
+ * One entity's active bindings (covering seek on `row_binding_entity_idx`,
97
+ * no sort). Entities without an active binding yield no rows, exactly like
98
+ * the inner join of the full queries.
99
+ */
100
+ export function readEntityBindingsWithSql(sql, logicalSheetId, entityId) {
101
+ return sql.all(READ_ENTITY_BINDINGS_SQL, [
102
+ logicalSheetId,
103
+ entityId,
104
+ ]).then((rows) => rows.map((row) => ({
105
+ rowBindingId: row.row_binding_id,
106
+ anchorReference: row.anchor_reference,
107
+ })));
108
+ }
109
+ /**
110
+ * One entity's fields, optionally ownership-filtered. PK prefix seek, no
111
+ * sort; `ownership` narrows to the user-owned projection subset.
112
+ */
113
+ export function readEntityFieldsWithSql(sql, entityId, ownership) {
114
+ return sql.all(ownership === undefined ? READ_ENTITY_FIELDS_SQL : READ_ENTITY_USER_FIELDS_SQL, [entityId]).then((rows) => rows.map((row) => ({
115
+ fieldName: row.field_name,
116
+ normalizedValue: row.normalized_value,
117
+ ownership: row.ownership,
118
+ })));
119
+ }
23
120
  const READ_LATEST_VISIBLE_STATE_SQL = `
24
121
  SELECT confirmed_visible_revision, confirmed_snapshot_hash
25
122
  FROM sheet_visible_state
@@ -32,6 +129,47 @@ const READ_LATEST_EFFECT_SQL = `
32
129
  ORDER BY stream_sequence DESC
33
130
  LIMIT 1
34
131
  `;
132
+ /**
133
+ * Reads one bounded chunk of whole entities as flat canonical rows, in the
134
+ * same global `(entity_id, field_name)` order as the full query. Pass no
135
+ * cursor for the first chunk, then `{ entityId }` of the last entity paged
136
+ * as the next cursor; an empty chunk (or `entityCount < limit`) ends the
137
+ * scan. Only `limit` entities (with their fields × bindings) are ever
138
+ * materialized per call, so scan memory is O(chunk) at bounded per-page
139
+ * cost — unlike a flat cross-table keyset, whose row-value predicate over
140
+ * joined tables forces SQLite to materialize and sort the whole join per
141
+ * page. Multi-binding entities emit one row per (binding, field) with the
142
+ * smallest `row_binding_id` first, so grouping stays deterministic.
143
+ */
144
+ export async function readReconciliationDesiredSystemStateChunkWithSql(sql, logicalSheetId, after, limit = RECONCILIATION_SCAN_ENTITY_PAGE_SIZE) {
145
+ const entities = await readActiveEntityPageWithSql(sql, after?.entityId, limit);
146
+ const rows = [];
147
+ for (const entity of entities) {
148
+ const [bindings, fields] = await Promise.all([
149
+ readEntityBindingsWithSql(sql, logicalSheetId, entity.entityId),
150
+ readEntityFieldsWithSql(sql, entity.entityId, undefined),
151
+ ]);
152
+ for (const binding of bindings) {
153
+ for (const field of fields) {
154
+ rows.push({
155
+ entityId: entity.entityId,
156
+ rowBindingId: binding.rowBindingId,
157
+ anchorReference: binding.anchorReference,
158
+ entityRevision: entity.entityRevision,
159
+ fieldName: field.fieldName,
160
+ normalizedValue: field.normalizedValue,
161
+ ownership: field.ownership,
162
+ });
163
+ }
164
+ }
165
+ }
166
+ const lastEntity = entities[entities.length - 1];
167
+ return {
168
+ rows,
169
+ entityCount: entities.length,
170
+ lastEntityId: lastEntity === undefined ? undefined : lastEntity.entityId,
171
+ };
172
+ }
35
173
  /** Reads the canonical rows that should be visible in System_State. */
36
174
  export function readReconciliationDesiredSystemStateWithSql(sql, logicalSheetId) {
37
175
  return sql.all(READ_DESIRED_SYSTEM_STATE_SQL, [logicalSheetId]).then((rows) => rows.map(toDesiredSystemStateRow));
@@ -1 +1 @@
1
- {"version":3,"file":"reconciliationSql.js","sourceRoot":"","sources":["../../../../../../../../../src/storage/sync/outbound/reconciliationSql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconciliationSql.js","sourceRoot":"","sources":["../../../../../../../../../src/storage/sync/outbound/reconciliationSql.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CleanupScanner.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/sync/outbound/reconciliation/CleanupScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAcH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,0CAA0C,CAAC;AAKlD,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"}
1
+ {"version":3,"file":"CleanupScanner.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/sync/outbound/reconciliation/CleanupScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAcH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,0CAA0C,CAAC;AAKlD,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,aAAa,CAAC;AAUrB,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"}
@@ -35,7 +35,7 @@ import { observeSyncSnapshot, } from "../../../../contracts/sheets/syncSheets.js
35
35
  import { SYNC_PROJECTIONS, SYNC_SNAPSHOT_READ_MODES, } from "../../../../contracts/sheets/constants.js";
36
36
  import { DEFAULT_RECONCILIATION_LEASE_MS, DEFAULT_RECONCILIATION_ROLE, } from "./shared.js";
37
37
  import { appendEffectsWithSupersedes } from "./enqueue.js";
38
- import { buildCleanupEffects, classifyCleanupRows, decodeCleanupRows, readCleanupEvidence, } from "./cleanup.js";
38
+ import { buildCleanupEffects, buildCleanupSnapshotIndex, classifyCleanupStreamTargets, decodeCleanupRows, readCleanupStreamEvidenceWithSql, } from "./cleanup.js";
39
39
  /**
40
40
  * Runs one cleanup scan and enqueues CAS-carrying delete effects for every
41
41
  * surplus row. The scan never writes to the Sheet directly.
@@ -83,8 +83,13 @@ async function scanAndEnqueue(context) {
83
83
  };
84
84
  const observed = await observeSyncSnapshot(context.provider, snapshotRequest);
85
85
  const rows = decodeCleanupRows(observed.snapshot, context.identityField);
86
- const evidence = await readCleanupEvidence(context.storage, context.logicalSheetId, context.physicalSheetId);
87
- const targets = classifyCleanupRows(rows, evidence);
86
+ // Evidence streams in keyset pages inside one read: only one canonical
87
+ // page plus small binding/candidate maps and drifted rewrites are ever
88
+ // retained. The scan stays eventually consistent like the System_State
89
+ // scanner: concurrent writes between pages surface on the next scan.
90
+ const snapshotIndex = buildCleanupSnapshotIndex(rows);
91
+ const evidence = await context.storage.read(({ sql }) => readCleanupStreamEvidenceWithSql(sql, context.logicalSheetId, context.physicalSheetId, snapshotIndex));
92
+ const targets = classifyCleanupStreamTargets(rows, snapshotIndex, evidence);
88
93
  const counts = countTargets(targets);
89
94
  if (targets.length === 0) {
90
95
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"CleanupScanner.js","sourceRoot":"","sources":["../../../../../../../../../src/sync/outbound/reconciliation/CleanupScanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CleanupScanner.js","sourceRoot":"","sources":["../../../../../../../../../src/sync/outbound/reconciliation/CleanupScanner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReconciliationScanner.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAgBH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,0CAA0C,CAAC;AAKlD,OAAO,EAOL,KAAK,uBAAuB,EAE7B,MAAM,aAAa,CAAC;AAkBrB,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;AAySD,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC"}
1
+ {"version":3,"file":"ReconciliationScanner.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAgBH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,0CAA0C,CAAC;AAKlD,OAAO,EAYL,KAAK,uBAAuB,EAE7B,MAAM,aAAa,CAAC;AAkBrB,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;AAkWD,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC"}