pub fn reconcile(
repo: &Path,
source_records: &[MigrationRecord],
) -> Result<ReconcileReport, String>Expand description
Reconcile a source’s extracted records against the store. The store-side key is read from each
tick’s HASHED payload — its round_id if present, else the first round/#N token in observe —
so the join is durable (NOT dependent on the non-hashed events log). A source key with no store
match is a SOURCE-ONLY gap (the capture gap to surface); a store key with no source match is
STORE-ONLY; a store tick with no derivable key is counted separately as un-keyable.