Interlock

Results: refund agent against real Stripe (test mode)

Generated 2026-09-13 16:50 UTC by experiments/stripe_live.py. Every row made real Stripe API calls: a $100 test card payment, one approved $20 partial refund, then the fault. Invariant: exactly $20 refunded on the payment.

fault naive (today) idempotency key only gate (Stripe: key + lookup)
crash_before_ack RETRIED $40 ❌ RETRIED $20 ✅ COMMITTED_BY_RETRY $20 ✅
duplicate_submit APPLIED $40 ❌ APPLIED:already_processed $20 ✅ DUPLICATE_IGNORED $20 ✅
refund_during_outage RETRIED $40 ❌ RETRIED $40 ❌ REFUSED:stale_premise_at_recovery $20 ✅

Faults

Payments used

Each run’s PaymentIntent, for checking in the Stripe test dashboard: