Converge
A prototype that helps AI workflows finish safely after an interruption, without repeating actions that already succeeded in another system.
01 / PROBLEM
Agents can reason correctly and still leave the world wrong.
A support agent may decide to issue a refund and resolve a case, but those mutations happen in different systems. If execution dies after Stripe succeeds and before the database updates, blindly retrying the model can duplicate a side effect. Converge treats the desired business outcome—not the model's procedural trace—as the durable object.
Partial mutation
External systems can diverge after a crash, timeout, or interrupted execution.
Reasoning ≠ authority
The model chooses a target outcome; deterministic code owns allowlisted mutations.
Observe before retry
Authoritative state is re-read before deciding which action, if any, remains.
Ownership preflight
Mutation targets must belong to the authorized customer/resource set.
02 / ARCHITECTURE
The system boundary is explicit.
proposes target state
before side effects
observe drift
repair safely
Reconciliation compares the persisted Outcome against live Stripe and Supabase state. The reconciler executes only the minimal safe mutation still required to make reality match the declared target.
03 / FAILURE TRACE
Testing recovery after a simulated interruption.
The demo intentionally stops after a Stripe test-mode refund succeeds, leaving the support ticket unresolved. This simulates an interruption so the system has to check what happened and finish only the remaining work.
Refund $50 · keep both subscriptions active · resolve support case.
NO EXTERNAL MUTATION YETStripe refund succeeds. Supabase ticket update never completes.
AUTHORITATIVE SYSTEMS DIVERGERefund is already true. Ticket is still open. Subscriptions remain active.
NO BLIND REPLAYConverge resolves the ticket and leaves the successful refund untouched.
OUTCOME SATISFIED