hikoutei 0.5.9 → 0.5.11

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 (43) hide show
  1. package/dist/application/orm/persistence/projection/projectionEffects.d.ts.map +1 -1
  2. package/dist/application/orm/persistence/projection/projectionEffects.js +15 -1
  3. package/dist/application/orm/persistence/projection/projectionEffects.js.map +1 -1
  4. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js +5 -1
  5. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js.map +1 -1
  6. package/dist/application/sync/outbound/reconciliation/CleanupScanner.d.ts +75 -0
  7. package/dist/application/sync/outbound/reconciliation/CleanupScanner.d.ts.map +1 -0
  8. package/dist/application/sync/outbound/reconciliation/CleanupScanner.js +202 -0
  9. package/dist/application/sync/outbound/reconciliation/CleanupScanner.js.map +1 -0
  10. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
  11. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +54 -7
  12. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
  13. package/dist/application/sync/outbound/reconciliation/cleanup.d.ts +213 -0
  14. package/dist/application/sync/outbound/reconciliation/cleanup.d.ts.map +1 -0
  15. package/dist/application/sync/outbound/reconciliation/cleanup.js +525 -0
  16. package/dist/application/sync/outbound/reconciliation/cleanup.js.map +1 -0
  17. package/dist/application/sync/outbound/reconciliation/enqueue.d.ts +30 -0
  18. package/dist/application/sync/outbound/reconciliation/enqueue.d.ts.map +1 -0
  19. package/dist/application/sync/outbound/reconciliation/enqueue.js +57 -0
  20. package/dist/application/sync/outbound/reconciliation/enqueue.js.map +1 -0
  21. package/dist/application/sync/outbound/reconciliation/repair.d.ts +36 -1
  22. package/dist/application/sync/outbound/reconciliation/repair.d.ts.map +1 -1
  23. package/dist/application/sync/outbound/reconciliation/repair.js +95 -10
  24. package/dist/application/sync/outbound/reconciliation/repair.js.map +1 -1
  25. package/dist/application/sync/outbound/reconciliation/shared.d.ts +16 -1
  26. package/dist/application/sync/outbound/reconciliation/shared.d.ts.map +1 -1
  27. package/dist/application/sync/outbound/reconciliation/shared.js +16 -1
  28. package/dist/application/sync/outbound/reconciliation/shared.js.map +1 -1
  29. package/dist/application/sync/service/SyncServiceBootstrap.d.ts.map +1 -1
  30. package/dist/application/sync/service/SyncServiceBootstrap.js +21 -0
  31. package/dist/application/sync/service/SyncServiceBootstrap.js.map +1 -1
  32. package/dist/infrastructure/storage/index.d.ts +1 -1
  33. package/dist/infrastructure/storage/index.d.ts.map +1 -1
  34. package/dist/infrastructure/storage/index.js +1 -1
  35. package/dist/infrastructure/storage/index.js.map +1 -1
  36. package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts.map +1 -1
  37. package/dist/infrastructure/storage/state/resolution/resolutionWriter.js +19 -2
  38. package/dist/infrastructure/storage/state/resolution/resolutionWriter.js.map +1 -1
  39. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts +22 -0
  40. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts.map +1 -1
  41. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js +32 -0
  42. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js.map +1 -1
  43. 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,CAyD7B;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"}
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
- const expectedVisibleRevision = latest.expected_visible_revision + 1;
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":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,6BAA6B,GAG9B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EACL,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,8DAA8D,CAAC;AACtE,OAAO,EACL,uCAAuC,EACvC,uCAAuC,EACvC,iCAAiC,GAClC,MAAM,6CAA6C,CAAC;AAMrD,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAG3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gCAAgC,GAEjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kCAAkC,GAInC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAE1C,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAgB,EAChB,MAA6B,EAC7B,OAAiC,EACjC,QAAgB,EAChB,YAAoB,EACpB,MAAc,EACd,aAAuD,EACvD,UAA2C,EAC3C,aAAuD,EACvD,QAAgB,EAChB,oBAA4B,EAC5B,UAAwD,EAAE;IAE1D,MAAM,gBAAgB,GAAG,kCAAkC,CACzD,OAAO,EACP,gBAAgB,CAAC,YAAY,CAC9B,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG;QACnB,UAAU,EAAE,0BAA0B,CAAC,MAAM;QAC7C,QAAQ,EAAE,QAAQ;KACV,CAAC;IACX,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAC7C,GAAG,EACH,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,QAAQ,CACtB,CAAC;IACF,MAAM,YAAY,GAAmC;QACnD,GAAG,aAAa;QAChB,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;YAC5B,IAAI,EAAE,qBAAqB,CAAC,OAAO;YACnC,KAAK,EAAE,UAAU,KAAK,gCAAgC,CAAC,MAAM;SAC9D;KACF,CAAC;IACF,MAAM,OAAO,GAAgB;QAC3B,4BAA4B,CAAC;YAC3B,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC3C,QAAQ;YACR,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,SAAS,EAAE,WAAW,CAAC,OAAO;YAC9B,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,UAAU,EAAE,gBAAgB,CAAC,YAAY;YACzC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC;YACxC,UAAU,EAAE,WAAW,EAAE;YACzB,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,YAAY;YACpB,eAAe,EAAE,cAAc,CAAC,eAAe;YAC/C,uBAAuB,EAAE,cAAc,CAAC,uBAAuB;YAC/D,mBAAmB,EAAE,cAAc,CAAC,mBAAmB;YACvD,oBAAoB,EAAE,eAAe,CAAC,oBAAoB,CAAC;YAC3D,cAAc,EAAE,cAAc,CAAC,cAAc;SAC9C,CAAC;KACH,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAC7C,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,KAAK,gBAAgB,CAAC,UAAU,CACtE,CAAC;IACF,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACjD,MAAM,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,KAAK,KAAK;QACtE,cAAc,KAAK,SAAS;QAC5B,UAAU,KAAK,gCAAgC,CAAC,MAAM;QACtD,CAAC,UAAU,KAAK,gCAAgC,CAAC,MAAM;YACrD,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,IACE,UAAU,KAAK,gCAAgC,CAAC,MAAM;QACtD,CAAC,wBAAwB;QACzB,OAAO,OAAO,CAAC;IAEjB,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,OAAO,CAAC,MAAM;SACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,gBAAgB,CAAC,IAAI,CAAC;SAC5D,GAAG,CAAC,CAAC,KAAK,EAAqC,EAAE,CAAC;QACjD,KAAK,CAAC,SAAS;QACf,mBAAmB,CAAC,aAAa,EAAE,KAAK,CAAC;KAC1C,CAAC,CACL,CAAC;IACF,MAAM,UAAU,GAAG;QACjB,UAAU,EAAE,0BAA0B,CAAC,cAAc;QACrD,QAAQ,EAAE,qBAAqB,CAAC,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC;KACrE,CAAC;IACX,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,GAAG,EACH,OAAO,EACP,cAAc,EACd,YAAY,EACZ,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,QAAQ,CACpB,CAAC;IACF,IAAI,UAAU,KAAK,gCAAgC,CAAC,MAAM,EAAE,CAAC;QAC3D,MAAM,aAAa,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,aAAa,KAAK,YAAY,CAAC,mBAAmB,EAAE,CAAC;YACvD,sBAAsB,CACpB,OAAO,EACP,cAAc,EACd,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;YACvC,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC3C,QAAQ;YACR,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,SAAS,EAAE,SAAS,CAAC,OAAO;YAC5B,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC;YACxC,UAAU,EAAE,WAAW,EAAE;YACzB,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,UAAU;YAClB,eAAe,EAAE,KAAK;YACtB,uBAAuB,EAAE,YAAY,CAAC,uBAAuB;YAC7D,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;YACrD,oBAAoB,EAAE,eAAe,CAAC,oBAAoB,CAAC;YAC3D,cAAc,EAAE,YAAY,CAAC,cAAc;SAC5C,CAAC,CAAC,CAAC;QACJ,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC;QAC1C,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC3C,QAAQ;QACR,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,eAAe,EAAE,SAAS,CAAC,eAAe;QAC1C,SAAS,EAAE,SAAS,CAAC,OAAO;QAC5B,eAAe,EAAE,SAAS,CAAC,eAAe;QAC1C,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC;QACxC,UAAU,EAAE,WAAW,EAAE;QACzB,YAAY,EAAE,MAAM;QACpB,MAAM,EAAE,UAAU;QAClB,eAAe,EAAE,YAAY,CAAC,eAAe;QAC7C,uBAAuB,EAAE,YAAY,CAAC,uBAAuB;QAC7D,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;QACrD,oBAAoB,EAAE,eAAe,CAAC,oBAAoB,CAAC;QAC3D,cAAc,EAAE,YAAY,CAAC,cAAc;KAC5C,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAgB,EAChB,OAAiC,EACjC,UAA8C;IAE9C,MAAM,KAAK,GAAG,MAAM,iCAAiC,CAAC,GAAG,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IACvF,IACE,KAAK,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc;QAC/C,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU;QAC1C,KAAK,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa,EAC7C,CAAC;QACD,MAAM,IAAI,mBAAmB,CAC3B,4BAA4B,CAAC,sBAAsB,EACnD,oBAAoB,UAAU,CAAC,eAAe,mBAAmB,OAAO,CAAC,UAAU,aAAa,CACjG,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAgB,EAChB,OAAiC,EACjC,UAA8C,EAC9C,YAAoB,EACpB,UAA4B,EAC5B,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,uCAAuC,CAC1D,GAAG,EACH,OAAO,CAAC,cAAc,EACtB,UAAU,EACV,QAAQ,CACT,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IACE,MAAM,CAAC,iBAAiB,KAAK,UAAU,CAAC,eAAe;YACvD,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU;YAC3C,CAAC,qBAAqB,CAAC,MAAM,CAAC,eAAe,CAAC,EAC9C,CAAC;YACD,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,+CAA+C,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3C,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,uCAAuC,CAAC,CAAC;QACvF,CAAC;QACD,IACE,MAAM,CAAC,MAAM,KAAK,sBAAsB,CAAC,OAAO;YAChD,MAAM,CAAC,MAAM,KAAK,sBAAsB,CAAC,UAAU,EACnD,CAAC;YACD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBAChE,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,wDAAwD,CAAC,CAAC;YACxG,CAAC;YACD,MAAM,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,GAAG,CAAC,CAAC;YACrE,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBACvD,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,wCAAwC,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,OAAO,GAAG,gCAAgC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACtE,OAAO;gBACL,uBAAuB;gBACvB,mBAAmB,EAAE,OAAO,CAAC,iBAAiB;gBAC9C,eAAe,EAAE,KAAK;gBACtB,cAAc;aACf,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,sBAAsB,CAAC,OAAO,EAAE,CAAC;YACrD,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,oBAAoB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,oCAAoC,CACzC,GAAG,EACH,OAAO,EACP,UAAU,EACV,YAAY,EACZ,cAAc,CACf,CAAC;IACJ,CAAC;IAED,OAAO,oCAAoC,CACzC,GAAG,EACH,OAAO,EACP,UAAU,EACV,YAAY,EACZ,6BAA6B,CAC9B,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,GAAgB,EAChB,OAAiC,EACjC,UAA8C,EAC9C,YAAoB,EACpB,cAAsB;IAEtB,MAAM,OAAO,GAAG,MAAM,uCAAuC,CAC3D,GAAG,EACH,UAAU,CAAC,eAAe,EAC1B,UAAU,CAAC,UAAU,EACrB,YAAY,CACb,CAAC;IACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,uBAAuB,EAAE,CAAC;YAC1B,mBAAmB,EAAE,EAAE;YACvB,eAAe,EAAE,IAAI;YACrB,cAAc;SACf,CAAC;IACJ,CAAC;IACD,IACE,CAAC,wBAAwB,CAAC,OAAO,CAAC,0BAA0B,CAAC;QAC7D,OAAO,CAAC,uBAAuB,CAAC,MAAM,KAAK,wBAAwB,EACnE,CAAC;QACD,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,oCAAoC,CAAC,CAAC;IACpF,CAAC;IACD,OAAO;QACL,uBAAuB,EAAE,OAAO,CAAC,0BAA0B;QAC3D,mBAAmB,EAAE,OAAO,CAAC,uBAAuB;QACpD,eAAe,EAAE,KAAK;QACtB,cAAc;KACf,CAAC;AACJ,CAAC"}
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,75 @@
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, and every surplus row (duplicates beyond the kept row, empty-ID
9
+ * rows, orphans) gets a `user_input_delete` effect carrying the full observed
10
+ * row as its compare-and-set guard. Bound-row corrections stream under the
11
+ * binding key (`projection-row:<sheet>:<binding>`) shared with flush
12
+ * projections and resolution reconciles, so the resolution's
13
+ * supersede-and-replan covers them; unbound rows keep the physical anchor as
14
+ * their stream key. A binding with an OPEN/NEEDS_REBASE conflict (durable
15
+ * active candidate pointer) is never planned: the candidate evidence is
16
+ * re-read after the snapshot and again before effect building, and the
17
+ * conflicted row converges exclusively through resolution. All corrections
18
+ * flow through the durable outbox and the effect worker's CAS-guarded slow
19
+ * path, so cleanup never mutates the Sheet directly and can never touch a
20
+ * row that a human or candidate pipeline changed concurrently.
21
+ *
22
+ * Duplicated-anchor groups are converged one row per scan because the real
23
+ * provider only resolves the first row per anchor value; the group's rewrite
24
+ * is deferred until the group is down to one row. Scope mirrors the
25
+ * System_State reconciliation scanner: one snapshot read, one fenced writer
26
+ * lease, and corrections that flow through the durable outbox. A re-scan of a
27
+ * converged tab enqueues nothing.
28
+ */
29
+ import type { SqlStorageAdapter } from "../../../../adapter/persistence/contracts/sql.js";
30
+ import { type SyncSheetsProvider } from "../../sheetsContract/syncSheets.js";
31
+ import { type ReconciliationIdFactory } from "./shared.js";
32
+ /** Construction options for a single User_Input cleanup scan. */
33
+ export interface RunCleanupScanOptions {
34
+ readonly storage: SqlStorageAdapter;
35
+ readonly provider: SyncSheetsProvider;
36
+ /** Physical sheet id of the User_Input projection to clean. */
37
+ readonly physicalSheetId: string;
38
+ /** Logical sheet id owning the row bindings and evidence. */
39
+ readonly logicalSheetId: string;
40
+ /**
41
+ * Business-key header used to detect duplicated and orphan identities on
42
+ * the User_Input tab. Must be one of the tab's headers.
43
+ */
44
+ readonly identityField: string;
45
+ /** Schema version shared by every cleanup effect produced here. */
46
+ readonly schemaVersion: number;
47
+ /** Reconciler writer identity. */
48
+ readonly writerId: string;
49
+ /** Injectable clock and id source for deterministic tests. */
50
+ readonly now?: () => number;
51
+ readonly createId?: ReconciliationIdFactory;
52
+ /** Override the reconciler lease role or duration. */
53
+ readonly writerRole?: string;
54
+ readonly leaseDurationMs?: number;
55
+ /** Observability hook invoked once after the scan settles. */
56
+ readonly onReport?: (report: CleanupScanReport) => void;
57
+ }
58
+ /** Observable outcome of one User_Input cleanup scan. */
59
+ export interface CleanupScanReport {
60
+ readonly physicalSheetId: string;
61
+ readonly rowsScanned: number;
62
+ readonly duplicateRows: number;
63
+ readonly emptyIdRows: number;
64
+ readonly extraRows: number;
65
+ /** Rows rewritten from SQLite canonical state (full-row overwrite). */
66
+ readonly rewrittenRows: number;
67
+ readonly effectsEnqueued: number;
68
+ readonly fenceClaimed: boolean;
69
+ }
70
+ /**
71
+ * Runs one cleanup scan and enqueues CAS-carrying delete effects for every
72
+ * surplus row. The scan never writes to the Sheet directly.
73
+ */
74
+ export declare function runUserInputCleanupScan(options: RunCleanupScanOptions): Promise<CleanupScanReport>;
75
+ //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;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,202 @@
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, and every surplus row (duplicates beyond the kept row, empty-ID
9
+ * rows, orphans) gets a `user_input_delete` effect carrying the full observed
10
+ * row as its compare-and-set guard. Bound-row corrections stream under the
11
+ * binding key (`projection-row:<sheet>:<binding>`) shared with flush
12
+ * projections and resolution reconciles, so the resolution's
13
+ * supersede-and-replan covers them; unbound rows keep the physical anchor as
14
+ * their stream key. A binding with an OPEN/NEEDS_REBASE conflict (durable
15
+ * active candidate pointer) is never planned: the candidate evidence is
16
+ * re-read after the snapshot and again before effect building, and the
17
+ * conflicted row converges exclusively through resolution. All corrections
18
+ * flow through the durable outbox and the effect worker's CAS-guarded slow
19
+ * path, so cleanup never mutates the Sheet directly and can never touch a
20
+ * row that a human or candidate pipeline changed concurrently.
21
+ *
22
+ * Duplicated-anchor groups are converged one row per scan because the real
23
+ * provider only resolves the first row per anchor value; the group's rewrite
24
+ * is deferred until the group is down to one row. Scope mirrors the
25
+ * System_State reconciliation scanner: one snapshot read, one fenced writer
26
+ * lease, and corrections that flow through the durable outbox. A re-scan of a
27
+ * converged tab enqueues nothing.
28
+ */
29
+ import { randomUUID } from "node:crypto";
30
+ import { POSITIVE_SAFE_INTEGER_MINIMUM } from "../../../../domain/index.js";
31
+ import { claimWriterLeaseWithAdapter, requireRegisteredSyncSheetWithAdapter, WRITER_LEASE_CLAIM_RESULT_KINDS, } from "../../../../infrastructure/storage/index.js";
32
+ import { STORAGE_ERROR_CODES, StorageError } from "../../../../infrastructure/storage/errors.js";
33
+ import { observeSyncSnapshot, } from "../../sheetsContract/syncSheets.js";
34
+ import { SYNC_PROJECTIONS, SYNC_SNAPSHOT_READ_MODES, } from "../../sheetsContract/constants.js";
35
+ import { DEFAULT_RECONCILIATION_LEASE_MS, DEFAULT_RECONCILIATION_ROLE, } from "./shared.js";
36
+ import { appendEffectsWithSupersedes } from "./enqueue.js";
37
+ import { buildCleanupEffects, classifyCleanupRows, decodeCleanupRows, readCleanupEvidence, } from "./cleanup.js";
38
+ /**
39
+ * Runs one cleanup scan and enqueues CAS-carrying delete effects for every
40
+ * surplus row. The scan never writes to the Sheet directly.
41
+ */
42
+ export async function runUserInputCleanupScan(options) {
43
+ validateOptions(options);
44
+ const now = options.now ?? Date.now;
45
+ const createId = options.createId ?? randomUUID;
46
+ const role = options.writerRole ?? DEFAULT_RECONCILIATION_ROLE;
47
+ const leaseDurationMs = options.leaseDurationMs ?? DEFAULT_RECONCILIATION_LEASE_MS;
48
+ const context = {
49
+ storage: options.storage,
50
+ provider: options.provider,
51
+ physicalSheetId: options.physicalSheetId,
52
+ logicalSheetId: options.logicalSheetId,
53
+ identityField: options.identityField,
54
+ schemaVersion: options.schemaVersion,
55
+ writerId: options.writerId,
56
+ now,
57
+ createId,
58
+ role,
59
+ leaseDurationMs,
60
+ };
61
+ const report = await scanAndEnqueue(context);
62
+ try {
63
+ options.onReport?.(report);
64
+ }
65
+ catch {
66
+ // Observability callbacks must never fail the scan.
67
+ }
68
+ return report;
69
+ }
70
+ async function scanAndEnqueue(context) {
71
+ const sheet = await requireRegisteredSyncSheetWithAdapter(context.storage, context.physicalSheetId);
72
+ if (sheet.projection !== SYNC_PROJECTIONS.USER_INPUT) {
73
+ throw new StorageError(STORAGE_ERROR_CODES.INVALID_SYNC_REGISTRATION, "cleanup scanner only supports the user_input projection");
74
+ }
75
+ const snapshotRequest = {
76
+ physicalSheetId: context.physicalSheetId,
77
+ sheetName: sheet.tabName,
78
+ registeredRange: sheet.registeredRange,
79
+ projection: SYNC_PROJECTIONS.USER_INPUT,
80
+ schemaVersion: sheet.schemaVersion,
81
+ readMode: SYNC_SNAPSHOT_READ_MODES.FULL,
82
+ };
83
+ const observed = await observeSyncSnapshot(context.provider, snapshotRequest);
84
+ const rows = decodeCleanupRows(observed.snapshot, context.identityField);
85
+ const evidence = await readCleanupEvidence(context.storage, context.logicalSheetId, context.physicalSheetId);
86
+ const targets = classifyCleanupRows(rows, evidence);
87
+ const counts = countTargets(targets);
88
+ if (targets.length === 0) {
89
+ return {
90
+ physicalSheetId: context.physicalSheetId,
91
+ rowsScanned: rows.length,
92
+ duplicateRows: counts.duplicate,
93
+ emptyIdRows: counts.emptyId,
94
+ extraRows: counts.extra,
95
+ rewrittenRows: counts.rewritten,
96
+ effectsEnqueued: 0,
97
+ fenceClaimed: false,
98
+ };
99
+ }
100
+ const fence = await claimReconcilerFence(context);
101
+ if (fence === null) {
102
+ return {
103
+ physicalSheetId: context.physicalSheetId,
104
+ rowsScanned: rows.length,
105
+ duplicateRows: counts.duplicate,
106
+ emptyIdRows: counts.emptyId,
107
+ extraRows: counts.extra,
108
+ rewrittenRows: counts.rewritten,
109
+ effectsEnqueued: 0,
110
+ fenceClaimed: false,
111
+ };
112
+ }
113
+ const plans = await buildCleanupEffects({
114
+ storage: context.storage,
115
+ logicalSheetId: context.logicalSheetId,
116
+ physicalSheetId: context.physicalSheetId,
117
+ schemaVersion: context.schemaVersion,
118
+ identityField: context.identityField,
119
+ createId: context.createId,
120
+ }, sheet, targets);
121
+ if (plans.length === 0) {
122
+ return {
123
+ physicalSheetId: context.physicalSheetId,
124
+ rowsScanned: rows.length,
125
+ duplicateRows: counts.duplicate,
126
+ emptyIdRows: counts.emptyId,
127
+ extraRows: counts.extra,
128
+ rewrittenRows: counts.rewritten,
129
+ effectsEnqueued: 0,
130
+ fenceClaimed: true,
131
+ };
132
+ }
133
+ const enqueued = await appendEffectsWithSupersedes(context.storage, fence, plans);
134
+ return {
135
+ physicalSheetId: context.physicalSheetId,
136
+ rowsScanned: rows.length,
137
+ duplicateRows: counts.duplicate,
138
+ emptyIdRows: counts.emptyId,
139
+ extraRows: counts.extra,
140
+ rewrittenRows: counts.rewritten,
141
+ effectsEnqueued: enqueued ? plans.length : 0,
142
+ fenceClaimed: true,
143
+ };
144
+ }
145
+ async function claimReconcilerFence(context) {
146
+ const claim = await claimWriterLeaseWithAdapter(context.storage, {
147
+ role: context.role,
148
+ writerId: context.writerId,
149
+ leaseDurationMs: context.leaseDurationMs,
150
+ now: context.now(),
151
+ });
152
+ if (claim.kind !== WRITER_LEASE_CLAIM_RESULT_KINDS.CLAIMED)
153
+ return null;
154
+ const lease = claim.lease;
155
+ return {
156
+ role: lease.role,
157
+ writerEpoch: lease.writerEpoch,
158
+ fencingToken: lease.fencingToken,
159
+ now: context.now(),
160
+ };
161
+ }
162
+ function countTargets(targets) {
163
+ let duplicate = 0;
164
+ let emptyId = 0;
165
+ let extra = 0;
166
+ let rewritten = 0;
167
+ for (const target of targets) {
168
+ if (target.kind === "duplicate")
169
+ duplicate += 1;
170
+ else if (target.kind === "empty_id")
171
+ emptyId += 1;
172
+ else if (target.kind === "extra")
173
+ extra += 1;
174
+ else
175
+ rewritten += 1;
176
+ }
177
+ return { duplicate, emptyId, extra, rewritten };
178
+ }
179
+ function validateOptions(options) {
180
+ if (options.physicalSheetId.length === 0) {
181
+ throw new StorageError(STORAGE_ERROR_CODES.INVALID_SYNC_REGISTRATION, "cleanup scanner requires a physical sheet id");
182
+ }
183
+ if (options.logicalSheetId.length === 0) {
184
+ throw new StorageError(STORAGE_ERROR_CODES.INVALID_SYNC_REGISTRATION, "cleanup scanner requires a logical sheet id");
185
+ }
186
+ if (options.identityField.length === 0) {
187
+ throw new StorageError(STORAGE_ERROR_CODES.INVALID_SYNC_REGISTRATION, "cleanup scanner requires an identity field");
188
+ }
189
+ if (!Number.isSafeInteger(options.schemaVersion) ||
190
+ options.schemaVersion < POSITIVE_SAFE_INTEGER_MINIMUM) {
191
+ throw new StorageError(STORAGE_ERROR_CODES.INVALID_SYNC_REGISTRATION, "cleanup scanner schemaVersion must be a positive safe integer");
192
+ }
193
+ if (options.writerId.length === 0) {
194
+ throw new StorageError(STORAGE_ERROR_CODES.STALE_WRITER_FENCE, "cleanup scanner writerId is required");
195
+ }
196
+ if (options.leaseDurationMs !== undefined &&
197
+ (!Number.isSafeInteger(options.leaseDurationMs) ||
198
+ options.leaseDurationMs < POSITIVE_SAFE_INTEGER_MINIMUM)) {
199
+ throw new StorageError(STORAGE_ERROR_CODES.STALE_WRITER_FENCE, "cleanup scanner leaseDurationMs must be a positive safe integer");
200
+ }
201
+ }
202
+ //# 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;AAYH,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;AAQrB,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;AAyLD,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC"}
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 { appendPendingEffectsWithAdapter, claimWriterLeaseWithAdapter, requireRegisteredSyncSheetWithAdapter, WRITER_LEASE_CLAIM_RESULT_KINDS, } from "../../../../infrastructure/storage/index.js";
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 { buildCorrectionEffects } from "./repair.js";
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 effects = await buildCorrectionEffects(context, sheet, drifts);
114
- if (effects.length === 0) {
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 appendPendingEffectsWithAdapter(context.storage, fence, effects);
125
- if (!enqueued) {
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: effects.length,
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":"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"}
1
+ {"version":3,"file":"ReconciliationScanner.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"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"}