@tanstack/browser-db-sqlite-persistence 0.2.30 → 0.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -124,9 +124,22 @@ the transaction to the resolved adapter for that collection.
124
124
  If a mutating RPC loses its response, Browser coordination replays it only
125
125
  while the requester still knows the same non-null leader id and term. An
126
126
  unknown initial route or any leader/term change rejects with
127
- `IndeterminateCommitError`; the application must reconcile the outcome. The
128
- coordinator does not retry that mutation against an unknown or replacement
129
- leader.
127
+ `IndeterminateCommitError`. The coordinator does not retry that mutation
128
+ against an unknown or replacement leader. Direct mutation callers must
129
+ reconcile the outcome.
130
+
131
+ For a source sync transaction, the persisted wrapper keeps its applied receipt
132
+ pending while the replacement leader checks the exact transaction ID in SQLite
133
+ under the writer lock. If the ID is present, the receipt fulfills and peers
134
+ reload any committed rows they missed. If the ID is absent and the durable row
135
+ version and reset epoch still match the pre-send snapshot, the replacement
136
+ applies that transaction once and the receipt fulfills. The Collection and its
137
+ dependent live queries stay in the same sync run. If another write, reset, or
138
+ pruning makes the outcome unsafe to certify, the receipt rejects with the
139
+ original `IndeterminateCommitError` and the source run enters error. This
140
+ reconciliation applies only when both the coordinator and adapter provide the
141
+ exact-ID operation; it does not change direct RPC behavior. Tabs running an
142
+ older protocol version do not participate in this same-run recovery contract.
130
143
 
131
144
  ### Remote subset requests
132
145