Problem
If confirmation fails after capture (crash between webhook receipt and slot flip), the payment is SUCCEEDED but its slots stay isTentative=true — they permanently block rebooking of those times and the customer has no confirmed appointment. No scanner exists for this orphan class (handlers.ts:264, checkout.ts:692).
Fix shape
A reconcile sweep (same shape as sweep-orphaned-topup-captures): SUCCEEDED payment + tentative slots older than N minutes → re-drive confirmation.
Problem
If confirmation fails after capture (crash between webhook receipt and slot flip), the payment is SUCCEEDED but its slots stay
isTentative=true— they permanently block rebooking of those times and the customer has no confirmed appointment. No scanner exists for this orphan class (handlers.ts:264,checkout.ts:692).Fix shape
A reconcile sweep (same shape as sweep-orphaned-topup-captures): SUCCEEDED payment + tentative slots older than N minutes → re-drive confirmation.