hikoutei 0.3.2 → 0.3.3

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 (211) hide show
  1. package/README.md +12 -2
  2. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.d.ts +2 -0
  3. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.d.ts.map +1 -1
  4. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js +5 -0
  5. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js.map +1 -1
  6. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.d.ts +52 -0
  7. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.d.ts.map +1 -1
  8. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js +195 -13
  9. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js.map +1 -1
  10. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.d.ts +24 -0
  11. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.d.ts.map +1 -0
  12. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.js +124 -0
  13. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.js.map +1 -0
  14. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.js +1 -1
  15. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.js.map +1 -1
  16. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.d.ts +15 -2
  17. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.d.ts.map +1 -1
  18. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.js +27 -3
  19. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.js.map +1 -1
  20. package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts +1 -0
  21. package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts.map +1 -1
  22. package/dist/adapter/sheets/providers/apps-script-gateway/errors.js +1 -0
  23. package/dist/adapter/sheets/providers/apps-script-gateway/errors.js.map +1 -1
  24. package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts +2 -0
  25. package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts.map +1 -1
  26. package/dist/adapter/sheets/providers/apps-script-gateway/index.js +1 -0
  27. package/dist/adapter/sheets/providers/apps-script-gateway/index.js.map +1 -1
  28. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts +3 -1
  29. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts.map +1 -1
  30. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js +9 -0
  31. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js.map +1 -1
  32. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts.map +1 -1
  33. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js +137 -20
  34. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js.map +1 -1
  35. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js +82 -34
  36. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js.map +1 -1
  37. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.d.ts +31 -0
  38. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.d.ts.map +1 -0
  39. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.js +567 -0
  40. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.js.map +1 -0
  41. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts +12 -17
  42. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts.map +1 -1
  43. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js +27 -213
  44. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js.map +1 -1
  45. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts.map +1 -1
  46. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js +81 -8
  47. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js.map +1 -1
  48. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts +1 -6
  49. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts.map +1 -1
  50. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js +15 -9
  51. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js.map +1 -1
  52. package/dist/application/orm/mapping/projection.js +1 -1
  53. package/dist/application/orm/mapping/projection.js.map +1 -1
  54. package/dist/application/orm/persistence/flush/flushCoordinator.d.ts.map +1 -1
  55. package/dist/application/orm/persistence/flush/flushCoordinator.js +1 -0
  56. package/dist/application/orm/persistence/flush/flushCoordinator.js.map +1 -1
  57. package/dist/application/orm/persistence/lifecycle/entityLifecycle.js +1 -1
  58. package/dist/application/orm/persistence/lifecycle/entityLifecycle.js.map +1 -1
  59. package/dist/application/sync/gateway/SyncGatewayBootstrap.d.ts +3 -1
  60. package/dist/application/sync/gateway/SyncGatewayBootstrap.d.ts.map +1 -1
  61. package/dist/application/sync/gateway/SyncGatewayBootstrap.js +3 -1
  62. package/dist/application/sync/gateway/SyncGatewayBootstrap.js.map +1 -1
  63. package/dist/application/sync/gateway/conflictProjection.d.ts +13 -0
  64. package/dist/application/sync/gateway/conflictProjection.d.ts.map +1 -0
  65. package/dist/application/sync/gateway/conflictProjection.js +58 -0
  66. package/dist/application/sync/gateway/conflictProjection.js.map +1 -0
  67. package/dist/application/sync/gateway/conflictProjectionRegistration.d.ts +11 -0
  68. package/dist/application/sync/gateway/conflictProjectionRegistration.d.ts.map +1 -0
  69. package/dist/application/sync/gateway/conflictProjectionRegistration.js +70 -0
  70. package/dist/application/sync/gateway/conflictProjectionRegistration.js.map +1 -0
  71. package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.d.ts +102 -0
  72. package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.d.ts.map +1 -0
  73. package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.js +221 -0
  74. package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.js.map +1 -0
  75. package/dist/application/sync/gateway/coordinator/asyncMutex.d.ts +51 -0
  76. package/dist/application/sync/gateway/coordinator/asyncMutex.d.ts.map +1 -0
  77. package/dist/application/sync/gateway/coordinator/asyncMutex.js +65 -0
  78. package/dist/application/sync/gateway/coordinator/asyncMutex.js.map +1 -0
  79. package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.d.ts +31 -0
  80. package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.d.ts.map +1 -0
  81. package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.js +13 -0
  82. package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.js.map +1 -0
  83. package/dist/application/sync/gateway/syncGateway.d.ts +26 -6
  84. package/dist/application/sync/gateway/syncGateway.d.ts.map +1 -1
  85. package/dist/application/sync/gateway/syncGateway.js +10 -2
  86. package/dist/application/sync/gateway/syncGateway.js.map +1 -1
  87. package/dist/application/sync/gateway/transportClassification.d.ts +62 -0
  88. package/dist/application/sync/gateway/transportClassification.d.ts.map +1 -0
  89. package/dist/application/sync/gateway/transportClassification.js +133 -0
  90. package/dist/application/sync/gateway/transportClassification.js.map +1 -0
  91. package/dist/application/sync/inbound/autoSystemConflictResolution.d.ts +26 -0
  92. package/dist/application/sync/inbound/autoSystemConflictResolution.d.ts.map +1 -0
  93. package/dist/application/sync/inbound/autoSystemConflictResolution.js +335 -0
  94. package/dist/application/sync/inbound/autoSystemConflictResolution.js.map +1 -0
  95. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts +50 -0
  96. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts.map +1 -0
  97. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js +97 -0
  98. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js.map +1 -0
  99. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts +4 -1
  100. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts.map +1 -1
  101. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js +35 -1
  102. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js.map +1 -1
  103. package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts +14 -2
  104. package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts.map +1 -1
  105. package/dist/application/sync/outbound/effects/SyncEffectWorker.js +190 -31
  106. package/dist/application/sync/outbound/effects/SyncEffectWorker.js.map +1 -1
  107. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts +25 -2
  108. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts.map +1 -1
  109. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js +25 -2
  110. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js.map +1 -1
  111. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts +14 -7
  112. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts.map +1 -1
  113. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js +118 -14
  114. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js.map +1 -1
  115. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts +30 -9
  116. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts.map +1 -1
  117. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js +102 -18
  118. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js.map +1 -1
  119. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts.map +1 -1
  120. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js +49 -14
  121. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js.map +1 -1
  122. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
  123. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +97 -17
  124. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
  125. package/dist/application/sync/service/SyncServiceBootstrap.d.ts +17 -0
  126. package/dist/application/sync/service/SyncServiceBootstrap.d.ts.map +1 -1
  127. package/dist/application/sync/service/SyncServiceBootstrap.js +125 -10
  128. package/dist/application/sync/service/SyncServiceBootstrap.js.map +1 -1
  129. package/dist/application/sync/service/contracts.d.ts +2 -0
  130. package/dist/application/sync/service/contracts.d.ts.map +1 -1
  131. package/dist/application/sync/telemetry/syncTiming.d.ts +6 -0
  132. package/dist/application/sync/telemetry/syncTiming.d.ts.map +1 -1
  133. package/dist/application/sync/telemetry/syncTiming.js +2 -0
  134. package/dist/application/sync/telemetry/syncTiming.js.map +1 -1
  135. package/dist/domain/conflict/index.d.ts +1 -1
  136. package/dist/domain/conflict/index.d.ts.map +1 -1
  137. package/dist/domain/conflict/index.js +1 -1
  138. package/dist/domain/conflict/index.js.map +1 -1
  139. package/dist/domain/conflict/transitions.d.ts +3 -0
  140. package/dist/domain/conflict/transitions.d.ts.map +1 -1
  141. package/dist/domain/conflict/transitions.js +3 -2
  142. package/dist/domain/conflict/transitions.js.map +1 -1
  143. package/dist/domain/model/constants.d.ts +1 -0
  144. package/dist/domain/model/constants.d.ts.map +1 -1
  145. package/dist/domain/model/constants.js +1 -0
  146. package/dist/domain/model/constants.js.map +1 -1
  147. package/dist/infrastructure/storage/index.d.ts +4 -2
  148. package/dist/infrastructure/storage/index.d.ts.map +1 -1
  149. package/dist/infrastructure/storage/index.js +2 -1
  150. package/dist/infrastructure/storage/index.js.map +1 -1
  151. package/dist/infrastructure/storage/sqlite/migrateSchema.d.ts.map +1 -1
  152. package/dist/infrastructure/storage/sqlite/migrateSchema.js +59 -1
  153. package/dist/infrastructure/storage/sqlite/migrateSchema.js.map +1 -1
  154. package/dist/infrastructure/storage/sqlite/schema.d.ts +12 -1
  155. package/dist/infrastructure/storage/sqlite/schema.d.ts.map +1 -1
  156. package/dist/infrastructure/storage/sqlite/schema.js +47 -3
  157. package/dist/infrastructure/storage/sqlite/schema.js.map +1 -1
  158. package/dist/infrastructure/storage/sqlite/schemaTypes.d.ts +2 -2
  159. package/dist/infrastructure/storage/sqlite/schemaTypes.d.ts.map +1 -1
  160. package/dist/infrastructure/storage/state/canonical/canonicalCommit.js +1 -1
  161. package/dist/infrastructure/storage/state/canonical/canonicalCommit.js.map +1 -1
  162. package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.d.ts +1 -0
  163. package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.d.ts.map +1 -1
  164. package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.js +1 -1
  165. package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.js.map +1 -1
  166. package/dist/infrastructure/storage/state/observation/observationAudit.js +5 -1
  167. package/dist/infrastructure/storage/state/observation/observationAudit.js.map +1 -1
  168. package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts +10 -0
  169. package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts.map +1 -1
  170. package/dist/infrastructure/storage/state/resolution/resolutionWriter.js +106 -20
  171. package/dist/infrastructure/storage/state/resolution/resolutionWriter.js.map +1 -1
  172. package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.d.ts +9 -1
  173. package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.d.ts.map +1 -1
  174. package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.js +3 -0
  175. package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.js.map +1 -1
  176. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts +11 -0
  177. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts.map +1 -1
  178. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js +35 -0
  179. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js.map +1 -1
  180. package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts +12 -4
  181. package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts.map +1 -1
  182. package/dist/infrastructure/storage/sync/outbound/effectOutbox.js +46 -15
  183. package/dist/infrastructure/storage/sync/outbound/effectOutbox.js.map +1 -1
  184. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts +24 -0
  185. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts.map +1 -1
  186. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js +1 -0
  187. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js.map +1 -1
  188. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts +9 -7
  189. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts.map +1 -1
  190. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js +44 -8
  191. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js.map +1 -1
  192. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts +3 -1
  193. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts.map +1 -1
  194. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js +35 -2
  195. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js.map +1 -1
  196. package/dist/infrastructure/storage/sync/outbound/reconciliationSql.js +1 -0
  197. package/dist/infrastructure/storage/sync/outbound/reconciliationSql.js.map +1 -1
  198. package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.d.ts +31 -0
  199. package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.d.ts.map +1 -0
  200. package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.js +92 -0
  201. package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.js.map +1 -0
  202. package/dist/infrastructure/storage/sync/shared/writerLease.js +3 -1
  203. package/dist/infrastructure/storage/sync/shared/writerLease.js.map +1 -1
  204. package/docs/advanced-sheets-gateway-concurrency-problem.md +434 -0
  205. package/docs/architecture.md +53 -11
  206. package/docs/google-sheets-sync-scaling-strategy.md +459 -0
  207. package/docs/quick-start.md +15 -1
  208. package/docs/sync-bulk-write-benchmark.md +520 -0
  209. package/docs/sync-observability.md +39 -3
  210. package/docs/write-and-synchronization-flow.md +76 -17
  211. package/package.json +1 -1
@@ -3,11 +3,17 @@ import { LOOKUP_RESULT_KINDS, presentValue } from "../../../../shared/state/inde
3
3
  import { SYNC_TIMING_OPERATION_KINDS, SYNC_TIMING_SCOPES, } from "../../telemetry/syncTiming.js";
4
4
  import { WORKER_ERROR_CODES } from "./SyncEffectWorkerConstants.js";
5
5
  import { isPresent, lookupResult, } from "./SyncEffectWorkerHelpers.js";
6
- import { completeApplied, completeFailure, } from "./SyncEffectWorkerTransitions.js";
6
+ import { completeApplied, completeFailure, recoverUnknownResults, } from "./SyncEffectWorkerTransitions.js";
7
7
  import { emitGatewayTiming, emitWorkerTiming, } from "./SyncEffectWorkerTiming.js";
8
+ import { gatewayRouteKey } from "./SyncEffectWorkerRouting.js";
9
+ import { classifyTransportOutcome, TRANSPORT_OUTCOME_KINDS, } from "../../gateway/transportClassification.js";
8
10
  /** Fails regular effects explicitly when the configured gateway is fast-only. */
9
11
  export async function rejectUnsupportedGatewayEffects(storage, fence, items, report) {
10
12
  for (const item of items) {
13
+ if (item.pending.status === "delivery_uncertain") {
14
+ await markUncertainWithoutRecovery(storage, fence, [item], report, "The configured gateway cannot probe an uncertain delivery yet.");
15
+ continue;
16
+ }
11
17
  if (!isPresent(item.gatewayEffect)) {
12
18
  await completeFailure(storage, fence, item, WORKER_ERROR_CODES.INVALID_EFFECT_PAYLOAD, item.invalidPayloadError, report);
13
19
  continue;
@@ -16,45 +22,100 @@ export async function rejectUnsupportedGatewayEffects(storage, fence, items, rep
16
22
  }
17
23
  }
18
24
  /**
19
- * Dispatches append-only system rows without remote CAS or postcondition reads.
25
+ * Handles a failed remote dispatch at the transport boundary.
20
26
  *
21
- * A lost response is returned to pending. The append-only gateway deliberately
22
- * does not keep row metadata for retry deduplication, so a retry can append a
23
- * duplicate; reconciliation remains the eventual correction path.
27
+ * A thrown batch-level dispatch error is not per-effect rejection evidence for
28
+ * an uncertain transport. Explicit structured remote failures are different:
29
+ * the Gateway has returned a verified rejection, so they close the effects in
30
+ * the terminal failure path rather than entering recovery.
31
+ */
32
+ export async function handleGatewayDispatchError(options, storage, fence, items, report, outcome, fullGateway, beforeRecovery, onUncertainWithoutRecovery) {
33
+ if (outcome.kind === TRANSPORT_OUTCOME_KINDS.EXPLICIT_REMOTE_FAILURE) {
34
+ for (const item of items) {
35
+ await completeFailure(storage, fence, item, WORKER_ERROR_CODES.GATEWAY_REMOTE_ERROR, presentValue(outcome.message), report);
36
+ }
37
+ return;
38
+ }
39
+ if (fullGateway === undefined) {
40
+ if (onUncertainWithoutRecovery !== undefined) {
41
+ await onUncertainWithoutRecovery();
42
+ return;
43
+ }
44
+ await markUncertainWithoutRecovery(storage, fence, items, report, outcome.message);
45
+ return;
46
+ }
47
+ if (beforeRecovery === undefined || await beforeRecovery()) {
48
+ await recoverUnknownResults({ ...options, gateway: fullGateway }, storage, fence, items, report);
49
+ }
50
+ }
51
+ /**
52
+ * Dispatches append-only rows through the idempotent Gateway batch operation.
53
+ * A lost response is still returned to recovery; the Gateway receipt batch lets
54
+ * the next attempt classify an already committed write without appending again.
24
55
  */
25
- export async function dispatchFastAppendGroup(options, storage, fence, group, report) {
56
+ export async function dispatchFastAppendGroup(options, storage, fence, group, report, fullGateway, beforeRecovery) {
26
57
  let response;
27
58
  const gatewayStartedAt = Date.now();
59
+ const routeKey = gatewayRouteKey(group.request);
60
+ const batchLimit = options.batchController?.beginDispatch(routeKey, gatewayStartedAt) ?? group.items.length;
28
61
  try {
29
62
  response = await options.gateway.fastAppendRows(group.request);
30
63
  }
31
- catch {
64
+ catch (error) {
65
+ const outcome = classifyTransportOutcome(error);
66
+ options.batchController?.observe(routeKey, {
67
+ durationMs: Date.now() - gatewayStartedAt,
68
+ responseSucceeded: false,
69
+ responseLoss: outcome.kind === TRANSPORT_OUTCOME_KINDS.DELIVERY_UNCERTAIN,
70
+ });
71
+ const failedDurationMs = Date.now() - gatewayStartedAt;
32
72
  emitWorkerTiming(options, {
33
73
  scope: SYNC_TIMING_SCOPES.WORKER,
34
74
  phase: "append_gateway_dispatch",
35
- durationMs: Date.now() - gatewayStartedAt,
75
+ durationMs: failedDurationMs,
36
76
  operationKinds: [SYNC_TIMING_OPERATION_KINDS.APPEND],
37
77
  operationCounts: { append: group.items.length, update: 0, delete: 0 },
78
+ routeKey,
79
+ batchLimit,
80
+ responseSucceeded: false,
38
81
  });
39
- await requeueFastAppendItems(storage, fence, group.items, report);
82
+ const resultFence = {
83
+ ...fence,
84
+ now: options.clock?.() ?? fence.now + Math.max(0, Date.now() - gatewayStartedAt),
85
+ };
86
+ await handleGatewayDispatchError(options, storage, resultFence, group.items, report, outcome, fullGateway, beforeRecovery, () => markFastAppendUncertain(storage, resultFence, group.items, report, outcome.message));
40
87
  return;
41
88
  }
89
+ const durationMs = Date.now() - gatewayStartedAt;
90
+ const resultFence = {
91
+ ...fence,
92
+ now: options.clock?.() ?? fence.now + Math.max(0, Date.now() - gatewayStartedAt),
93
+ };
94
+ options.batchController?.observe(routeKey, {
95
+ durationMs,
96
+ responseSucceeded: response.results.length === group.items.length && !response.hasMore,
97
+ responseLoss: response.results.length !== group.items.length || response.hasMore,
98
+ });
42
99
  emitGatewayTiming(options, response.timing);
43
100
  emitWorkerTiming(options, {
44
101
  scope: SYNC_TIMING_SCOPES.WORKER,
45
102
  phase: "append_gateway_dispatch",
46
- durationMs: Date.now() - gatewayStartedAt,
103
+ durationMs,
47
104
  operationKinds: [SYNC_TIMING_OPERATION_KINDS.APPEND],
48
105
  operationCounts: { append: group.items.length, update: 0, delete: 0 },
106
+ routeKey,
107
+ batchLimit,
108
+ responseSucceeded: response.results.length === group.items.length && !response.hasMore,
49
109
  });
50
110
  const resultPersistenceStartedAt = Date.now();
51
111
  const byEffectId = new Map(response.results.map((result) => [result.effectId, result]));
52
112
  const deferredEffectIds = new Set();
113
+ const recoveryItems = [];
53
114
  for (const item of group.items) {
54
115
  if (byEffectId.has(item.pending.effect_id) || !response.hasMore)
55
116
  continue;
56
117
  if (await storage.releaseUnprocessedEffect({
57
- ...fence,
118
+ ...resultFence,
58
119
  effectId: item.pending.effect_id,
59
120
  claimToken: item.claimToken,
60
121
  })) {
@@ -67,14 +128,33 @@ export async function dispatchFastAppendGroup(options, storage, fence, group, re
67
128
  continue;
68
129
  const result = lookupResult(byEffectId.get(item.pending.effect_id));
69
130
  if (result.kind === LOOKUP_RESULT_KINDS.NOT_FOUND) {
70
- await requeueFastAppendItems(storage, fence, [item], report);
131
+ await requeueFastAppendItems(storage, resultFence, [item], report);
71
132
  continue;
72
133
  }
73
134
  if (!isPresent(item.gatewayEffect)) {
74
- await requeueFastAppendItems(storage, fence, [item], report);
135
+ await requeueFastAppendItems(storage, resultFence, [item], report);
136
+ continue;
137
+ }
138
+ if (!hasReceiptBackedVisibleEvidence(result.value)) {
139
+ // A fast-append status is not enough to close a worker-owned effect. The
140
+ // append receipt must provide the remote visible revision and hash; do
141
+ // not synthesize either value from local expectations or payload data.
142
+ recoveryItems.push(item);
75
143
  continue;
76
144
  }
77
- await completeApplied(storage, fence, item, presentValue(item.pending.expected_visible_revision + 1), presentValue(item.gatewayEffect.value.payload.targetVisibleHash), report);
145
+ await completeApplied(storage, resultFence, item, presentValue(result.value.visibleRevision), presentValue(result.value.visibleHash), report);
146
+ }
147
+ if (recoveryItems.length > 0) {
148
+ const recoveryFence = {
149
+ ...resultFence,
150
+ now: options.clock?.() ?? resultFence.now,
151
+ };
152
+ if (fullGateway !== undefined && (beforeRecovery === undefined || await beforeRecovery())) {
153
+ await recoverUnknownResults({ ...options, gateway: fullGateway }, storage, recoveryFence, recoveryItems, report);
154
+ }
155
+ else {
156
+ await markFastAppendUncertain(storage, recoveryFence, recoveryItems, report, "Fast append did not return receipt-backed visible evidence.");
157
+ }
78
158
  }
79
159
  emitWorkerTiming(options, {
80
160
  scope: SYNC_TIMING_SCOPES.WORKER,
@@ -84,7 +164,31 @@ export async function dispatchFastAppendGroup(options, storage, fence, group, re
84
164
  operationCounts: { append: group.items.length, update: 0, delete: 0 },
85
165
  });
86
166
  }
167
+ function hasReceiptBackedVisibleEvidence(result) {
168
+ return typeof result.visibleRevision === "number" &&
169
+ Number.isSafeInteger(result.visibleRevision) &&
170
+ result.visibleRevision >= 1 &&
171
+ typeof result.visibleHash === "string" &&
172
+ result.visibleHash.length > 0;
173
+ }
87
174
  /** Returns a response-lost fast append to pending for reconciliation-backed retry. */
175
+ async function markFastAppendUncertain(storage, fence, items, report, message) {
176
+ await markUncertainWithoutRecovery(storage, fence, items, report, message);
177
+ }
178
+ async function markUncertainWithoutRecovery(storage, fence, items, report, message) {
179
+ for (const item of items) {
180
+ if (await storage.markDeliveryUncertain({
181
+ ...fence,
182
+ effectId: item.pending.effect_id,
183
+ claimToken: item.claimToken,
184
+ uncertainSince: item.pending.uncertain_since ?? fence.now,
185
+ nextProbeAt: fence.now + 1_000,
186
+ lastErrorCode: WORKER_ERROR_CODES.DELIVERY_UNCERTAIN_REQUIRES_PROBE,
187
+ lastErrorMessage: message,
188
+ }))
189
+ report.deferred += 1;
190
+ }
191
+ }
88
192
  export async function requeueFastAppendItems(storage, fence, items, report) {
89
193
  for (const item of items) {
90
194
  if (await storage.retryClaimedEffect({
@@ -1 +1 @@
1
- {"version":3,"file":"SyncEffectWorkerDispatch.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerDispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SyncEffectWorkerDispatch.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerDispatch.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,46 @@
1
1
  /** Effect conversion, request grouping, and routing predicates. */
2
2
  import type { EffectTargetKind } from "../../../../domain/index.js";
3
3
  import type { PendingEffect, WriterLease, FencingContext } from "../../../../infrastructure/storage/index.js";
4
- import type { ApplySyncEffectsRequest, FastAppendRowsRequest, ReadSyncEffectPostconditionsRequest, SyncGatewayEffect, SyncGatewayEffectResult, SyncProjection } from "../../gateway/syncGateway.js";
4
+ import type { ApplySyncEffectsRequest, FastAppendRowsRequest, ReadSyncEffectPostconditionsRequest, SyncGatewayAuthority, SyncGatewayEffect, SyncGatewayEffectResult, SyncProjection } from "../../gateway/syncGateway.js";
5
5
  import type { ClaimedEffect } from "./SyncEffectWorker.js";
6
6
  /** Accepts either inline read-back or a flushed-write acknowledgement. */
7
7
  export declare function isSuccessfulGatewayPostcondition(status: SyncGatewayEffectResult["postcondition"]): boolean;
8
8
  export declare function toGatewayEffect(effect: PendingEffect): SyncGatewayEffect;
9
- export declare function groupByGatewayRequest(items: readonly ClaimedEffect[]): readonly {
10
- readonly request: ApplySyncEffectsRequest;
11
- readonly items: readonly ClaimedEffect[];
12
- }[];
13
- /** Groups append-only system effects into one fast gateway request per route. */
14
- export declare function groupByFastAppendRequest(items: readonly ClaimedEffect[]): readonly {
9
+ export declare function groupByGatewayRequest(items: readonly ClaimedEffect[], authority?: SyncGatewayAuthority): readonly GatewayEffectGroup[];
10
+ /** One append-only route paired with the claimed effects it represents. */
11
+ export interface FastAppendGatewayGroup {
15
12
  readonly request: FastAppendRowsRequest;
16
13
  readonly items: readonly ClaimedEffect[];
17
- }[];
14
+ }
15
+ /** Groups append-only effects into one fast gateway request per route. */
16
+ export declare function groupByFastAppendRequest(items: readonly ClaimedEffect[], authority?: SyncGatewayAuthority): readonly FastAppendGatewayGroup[];
17
+ /** Splits append groups using the same adaptive route limit as regular effects. */
18
+ export declare function chunkFastAppendGroups(groups: readonly FastAppendGatewayGroup[], limit: number | ((group: FastAppendGatewayGroup) => number)): readonly FastAppendGatewayGroup[];
18
19
  /** Groups postcondition reads so each group performs one remote Sheet scan. */
19
- export declare function groupByGatewayPostconditionRequest(items: readonly ClaimedEffect[]): readonly {
20
+ export declare function groupByGatewayPostconditionRequest(items: readonly ClaimedEffect[], authority?: SyncGatewayAuthority): readonly {
20
21
  readonly request: ReadSyncEffectPostconditionsRequest;
21
22
  readonly items: readonly ClaimedEffect[];
22
23
  }[];
24
+ /** Builds the stable grouping key shared by all gateway operations on one route. */
25
+ export declare function gatewayRouteKey(route: SyncGatewayEffect | ApplySyncEffectsRequest | FastAppendRowsRequest): string;
26
+ /**
27
+ * Splits each physical-route group into sub-batches no larger than the Apps
28
+ * Script bounded effect batch so one `applyEffects` call returns a complete
29
+ * result set instead of a `hasMore` partial prefix.
30
+ *
31
+ * The physical-route grouping and the per-target predecessor ordering of the
32
+ * supplied items are preserved: every effect stays on its original route, and
33
+ * each sub-batch keeps the order of the ready selection. Effects in one ready
34
+ * selection target distinct logical targets (the outbox only marks the
35
+ * earliest non-applied effect per target ready), so sub-batching never
36
+ * reorders effects that depend on one another.
37
+ */
38
+ export declare function chunkGatewayEffectGroups(groups: readonly GatewayEffectGroup[], limit?: number | ((group: GatewayEffectGroup) => number)): readonly GatewayEffectGroup[];
39
+ /** One physical route's effects paired with their gateway request. */
40
+ export interface GatewayEffectGroup {
41
+ readonly request: ApplySyncEffectsRequest;
42
+ readonly items: readonly ClaimedEffect[];
43
+ }
23
44
  export declare function isSyncEffectKind(value: string): value is SyncGatewayEffect["effectKind"];
24
45
  export declare function isCandidateProtectingUserInputEffect(effect: SyncGatewayEffect): boolean;
25
46
  /** Selects only new System_State entity rows for the append-only fast path. */
@@ -1 +1 @@
1
- {"version":3,"file":"SyncEffectWorkerRouting.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerRouting.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAGnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACf,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,mCAAmC,EACnC,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACf,MAAM,8BAA8B,CAAC;AAatC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,0EAA0E;AAC1E,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,uBAAuB,CAAC,eAAe,CAAC,GAC/C,OAAO,CAGT;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAyBxE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS;IAC/E,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C,EAAE,CA8BF;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS;IAClF,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C,EAAE,CAgCF;AAED,+EAA+E;AAC/E,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS;IAC5F,QAAQ,CAAC,OAAO,EAAE,mCAAmC,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C,EAAE,CA+BF;AAaD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAOxF;AAED,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAGvF;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CASlE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAIvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAK3E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAO9E"}
1
+ {"version":3,"file":"SyncEffectWorkerRouting.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerRouting.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAMnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACf,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,mCAAmC,EACnC,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACf,MAAM,8BAA8B,CAAC;AAiBtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,0EAA0E;AAC1E,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,uBAAuB,CAAC,eAAe,CAAC,GAC/C,OAAO,CAGT;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAyBxE;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,SAAS,CAAC,EAAE,oBAAoB,GAC/B,SAAS,kBAAkB,EAAE,CA+B/B;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED,0EAA0E;AAC1E,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,SAAS,CAAC,EAAE,oBAAoB,GAC/B,SAAS,sBAAsB,EAAE,CAmCnC;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,sBAAsB,EAAE,EACzC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,sBAAsB,KAAK,MAAM,CAAC,GAC1D,SAAS,sBAAsB,EAAE,CAqBnC;AAED,+EAA+E;AAC/E,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,SAAS,CAAC,EAAE,oBAAoB,GAC/B,SAAS;IACV,QAAQ,CAAC,OAAO,EAAE,mCAAmC,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C,EAAE,CAgCF;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAC7B,KAAK,EAAE,iBAAiB,GAAG,uBAAuB,GAAG,qBAAqB,GACzE,MAAM,CAKR;AAQD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,kBAAkB,EAAE,EACrC,KAAK,GAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,kBAAkB,KAAK,MAAM,CAA8B,GACnF,SAAS,kBAAkB,EAAE,CAgB/B;AA0BD,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAOxF;AAED,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAGvF;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAgBlE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAIvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAK3E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAO9E"}
@@ -1,10 +1,10 @@
1
1
  /** Effect conversion, request grouping, and routing predicates. */
2
- import { NON_NEGATIVE_SAFE_INTEGER_MINIMUM } from "../../../../domain/index.js";
2
+ import { NON_NEGATIVE_SAFE_INTEGER_MINIMUM, POSITIVE_SAFE_INTEGER_MINIMUM, } from "../../../../domain/index.js";
3
3
  import { fromSqlNullable } from "../../../../infrastructure/storage/sqlite/sqlState.js";
4
4
  import { LOOKUP_RESULT_KINDS } from "../../../../shared/state/constants.js";
5
5
  import { parseSyncProjectionEffectPayload } from "../../gateway/syncGateway.js";
6
6
  import { SYNC_GATEWAY_POSTCONDITION_MODES, SYNC_GATEWAY_POSTCONDITION_STATUSES, SYNC_GATEWAY_PROJECTIONS, } from "../../gateway/constants.js";
7
- import { EFFECT_TARGET_KINDS, SYNC_EFFECT_KINDS } from "./SyncEffectWorkerConstants.js";
7
+ import { EFFECT_TARGET_KINDS, GATEWAY_EFFECT_BATCH_LIMIT, SYNC_EFFECT_KINDS, } from "./SyncEffectWorkerConstants.js";
8
8
  import { isPresent, lookupResult, throwWorkerError, } from "./SyncEffectWorkerHelpers.js";
9
9
  /** Accepts either inline read-back or a flushed-write acknowledgement. */
10
10
  export function isSuccessfulGatewayPostcondition(status) {
@@ -37,7 +37,7 @@ export function toGatewayEffect(effect) {
37
37
  payload: parseSyncProjectionEffectPayload(effect.payload_json),
38
38
  };
39
39
  }
40
- export function groupByGatewayRequest(items) {
40
+ export function groupByGatewayRequest(items, authority) {
41
41
  const groups = new Map();
42
42
  for (const item of items) {
43
43
  const effect = item.gatewayEffect;
@@ -49,6 +49,7 @@ export function groupByGatewayRequest(items) {
49
49
  groups.set(key, {
50
50
  request: {
51
51
  physicalSheetId: effect.value.physicalSheetId,
52
+ ...(authority === undefined ? {} : { authority }),
52
53
  sheetName: effect.value.payload.sheetName,
53
54
  registeredRange: effect.value.payload.registeredRange,
54
55
  projection: effect.value.projection,
@@ -70,8 +71,8 @@ export function groupByGatewayRequest(items) {
70
71
  }
71
72
  return [...groups.values()];
72
73
  }
73
- /** Groups append-only system effects into one fast gateway request per route. */
74
- export function groupByFastAppendRequest(items) {
74
+ /** Groups append-only effects into one fast gateway request per route. */
75
+ export function groupByFastAppendRequest(items, authority) {
75
76
  const groups = new Map();
76
77
  for (const item of items) {
77
78
  const effect = item.gatewayEffect;
@@ -80,6 +81,8 @@ export function groupByFastAppendRequest(items) {
80
81
  const key = gatewayRouteKey(effect.value);
81
82
  const row = {
82
83
  effectId: effect.value.effectId,
84
+ payloadHash: effect.value.payloadHash,
85
+ anchor: effect.value.payload.targetAnchor,
83
86
  fields: effect.value.payload.fields,
84
87
  };
85
88
  const existing = lookupResult(groups.get(key));
@@ -87,6 +90,7 @@ export function groupByFastAppendRequest(items) {
87
90
  groups.set(key, {
88
91
  request: {
89
92
  physicalSheetId: effect.value.physicalSheetId,
93
+ ...(authority === undefined ? {} : { authority }),
90
94
  sheetName: effect.value.payload.sheetName,
91
95
  registeredRange: effect.value.payload.registeredRange,
92
96
  projection: effect.value.projection,
@@ -106,8 +110,31 @@ export function groupByFastAppendRequest(items) {
106
110
  }
107
111
  return [...groups.values()];
108
112
  }
113
+ /** Splits append groups using the same adaptive route limit as regular effects. */
114
+ export function chunkFastAppendGroups(groups, limit) {
115
+ const chunked = [];
116
+ for (const group of groups) {
117
+ const groupLimit = typeof limit === "function" ? limit(group) : limit;
118
+ requireBatchLimit(groupLimit);
119
+ if (group.items.length <= groupLimit) {
120
+ chunked.push(group);
121
+ continue;
122
+ }
123
+ for (let start = 0; start < group.items.length; start += groupLimit) {
124
+ const items = group.items.slice(start, start + groupLimit);
125
+ chunked.push({
126
+ request: {
127
+ ...group.request,
128
+ rows: group.request.rows.slice(start, start + groupLimit),
129
+ },
130
+ items,
131
+ });
132
+ }
133
+ }
134
+ return chunked;
135
+ }
109
136
  /** Groups postcondition reads so each group performs one remote Sheet scan. */
110
- export function groupByGatewayPostconditionRequest(items) {
137
+ export function groupByGatewayPostconditionRequest(items, authority) {
111
138
  const groups = new Map();
112
139
  for (const item of items) {
113
140
  const effect = item.gatewayEffect;
@@ -119,6 +146,7 @@ export function groupByGatewayPostconditionRequest(items) {
119
146
  groups.set(key, {
120
147
  request: {
121
148
  physicalSheetId: effect.value.physicalSheetId,
149
+ ...(authority === undefined ? {} : { authority }),
122
150
  sheetName: effect.value.payload.sheetName,
123
151
  registeredRange: effect.value.payload.registeredRange,
124
152
  projection: effect.value.projection,
@@ -139,14 +167,66 @@ export function groupByGatewayPostconditionRequest(items) {
139
167
  return [...groups.values()];
140
168
  }
141
169
  /** Builds the stable grouping key shared by all gateway operations on one route. */
142
- function gatewayRouteKey(effect) {
143
- return [
144
- effect.physicalSheetId,
145
- effect.payload.sheetName,
146
- effect.payload.registeredRange,
147
- effect.projection,
148
- effect.payload.schemaVersion,
149
- ].join("\u0000");
170
+ export function gatewayRouteKey(route) {
171
+ const sheetName = "payload" in route ? route.payload.sheetName : route.sheetName;
172
+ const registeredRange = "payload" in route ? route.payload.registeredRange : route.registeredRange;
173
+ const schemaVersion = "payload" in route ? route.payload.schemaVersion : route.schemaVersion;
174
+ return [route.physicalSheetId, sheetName, registeredRange, route.projection, schemaVersion].join("\u0000");
175
+ }
176
+ function requireBatchLimit(value) {
177
+ if (!Number.isSafeInteger(value) || value < POSITIVE_SAFE_INTEGER_MINIMUM) {
178
+ throwWorkerError("gateway effect batch limit must be a positive safe integer");
179
+ }
180
+ }
181
+ /**
182
+ * Splits each physical-route group into sub-batches no larger than the Apps
183
+ * Script bounded effect batch so one `applyEffects` call returns a complete
184
+ * result set instead of a `hasMore` partial prefix.
185
+ *
186
+ * The physical-route grouping and the per-target predecessor ordering of the
187
+ * supplied items are preserved: every effect stays on its original route, and
188
+ * each sub-batch keeps the order of the ready selection. Effects in one ready
189
+ * selection target distinct logical targets (the outbox only marks the
190
+ * earliest non-applied effect per target ready), so sub-batching never
191
+ * reorders effects that depend on one another.
192
+ */
193
+ export function chunkGatewayEffectGroups(groups, limit = GATEWAY_EFFECT_BATCH_LIMIT) {
194
+ if (groups.length === 0)
195
+ return groups;
196
+ const chunked = [];
197
+ for (const group of groups) {
198
+ const groupLimit = typeof limit === "function" ? limit(group) : limit;
199
+ requireBatchLimit(groupLimit);
200
+ if (group.items.length <= groupLimit) {
201
+ chunked.push(group);
202
+ continue;
203
+ }
204
+ for (let start = 0; start < group.items.length; start += groupLimit) {
205
+ const batchItems = group.items.slice(start, start + groupLimit);
206
+ chunked.push({ request: sliceApplyEffectsRequest(group.request, batchItems), items: batchItems });
207
+ }
208
+ }
209
+ return chunked;
210
+ }
211
+ /** Builds a sub-batch request carrying only the supplied effect evidence. */
212
+ function sliceApplyEffectsRequest(request, items) {
213
+ const effects = [];
214
+ for (const item of items) {
215
+ if (!isPresent(item.gatewayEffect)) {
216
+ throwWorkerError("gateway effect batch item is missing its gateway effect");
217
+ }
218
+ effects.push(item.gatewayEffect.value);
219
+ }
220
+ return {
221
+ physicalSheetId: request.physicalSheetId,
222
+ ...(request.authority === undefined ? {} : { authority: request.authority }),
223
+ sheetName: request.sheetName,
224
+ registeredRange: request.registeredRange,
225
+ projection: request.projection,
226
+ schemaVersion: request.schemaVersion,
227
+ postconditionMode: request.postconditionMode ?? SYNC_GATEWAY_POSTCONDITION_MODES.DEFERRED,
228
+ effects,
229
+ };
150
230
  }
151
231
  export function isSyncEffectKind(value) {
152
232
  return value === SYNC_EFFECT_KINDS.SYSTEM_PROJECTION ||
@@ -165,12 +245,16 @@ export function isFastAppendCandidate(item) {
165
245
  if (!isPresent(item.gatewayEffect))
166
246
  return false;
167
247
  const effect = item.gatewayEffect.value;
168
- return effect.effectKind === SYNC_EFFECT_KINDS.SYSTEM_PROJECTION &&
169
- effect.projection === SYNC_GATEWAY_PROJECTIONS.SYSTEM_STATE &&
170
- effect.targetKind === EFFECT_TARGET_KINDS.ENTITY &&
171
- effect.payload.createIfMissing &&
248
+ const emptyVisibleBaseline = effect.payload.createIfMissing &&
172
249
  effect.expectedVisibleRevision === NON_NEGATIVE_SAFE_INTEGER_MINIMUM &&
173
250
  effect.expectedVisibleHash === "";
251
+ if (!emptyVisibleBaseline)
252
+ return false;
253
+ return (effect.effectKind === SYNC_EFFECT_KINDS.SYSTEM_PROJECTION &&
254
+ effect.projection === SYNC_GATEWAY_PROJECTIONS.SYSTEM_STATE &&
255
+ effect.targetKind === EFFECT_TARGET_KINDS.ENTITY) || (effect.effectKind === SYNC_EFFECT_KINDS.RESOLUTION_PROJECTION &&
256
+ effect.projection === SYNC_GATEWAY_PROJECTIONS.SYNC_CONFLICTS &&
257
+ effect.targetKind === EFFECT_TARGET_KINDS.CONFLICT);
174
258
  }
175
259
  export function isSyncProjection(value) {
176
260
  return value === SYNC_GATEWAY_PROJECTIONS.USER_INPUT ||
@@ -1 +1 @@
1
- {"version":3,"file":"SyncEffectWorkerRouting.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerRouting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SyncEffectWorkerRouting.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerRouting.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SyncEffectWorkerTransitions.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerTransitions.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAInF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAIpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAKlE,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAIL,KAAK,yBAAyB,EAC/B,MAAM,gCAAgC,CAAC;AAYxC,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAE/B,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAgEf;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,uBAAuB,EACtC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAqFf;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,EACjC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC7B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,CAAC,CAwDlB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CASf"}
1
+ {"version":3,"file":"SyncEffectWorkerTransitions.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerTransitions.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAInF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAIpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAKlE,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAIL,KAAK,yBAAyB,EAC/B,MAAM,gCAAgC,CAAC;AAYxC,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAE/B,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CA+Ef;AAID,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAwEf;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,uBAAuB,EACtC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAoGf;AAsBD,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,EACjC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC7B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,CAAC,CAkElB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CASf"}