Research

Compile Once, Govern Every Repair

Deterministic Replay for Repeated GUI Work

Reasoning through a known workflow on every run is wasteful and unsafe. It adds latency and cost, and—because a rendered “Saved” banner is not a persisted write—it can report success after a partial, duplicate, stale, or rejected business effect. OpenAdapt compiles one recorded demonstration into a deterministic program: healthy replay makes no model calls, a resolution ladder repairs targets when the interface drifts, and the runtime verifies effects against the application's own system of record rather than the screen—refusing when it cannot verify.

The headline result

We injected seven persistence faults behind a real HTTP boundary and ran each ten times. Judged by the screen—the same signal a computer-use agent or an RPA script trusts—replay silently accepted 50 of 90 wrong outcomes. When the consequential step declared a typed effect checked against the system of record, silent acceptance fell to zero.

50 / 90
fault runs silently accepted by screen-only verification (5 of 7 fault classes)
0 / 90
silently accepted once a system-of-record effect check was configured
0 model calls
on the healthy replay path; models are optional repair tiers, not the controller

What the paper reports

  • Compiled replay vs. a computer-use agent. On an already-demonstrated OpenEMR task, compiled replay completed 20/20 runs at a 39.2 s median with no model calls, versus the agent's 70.4 s and $0.55/run. On the bundled CI fixture, 100/100 at 4.9 s versus 37.5 s.
  • Repair under drift. When a theme re-render invalidated every recorded template crop, compiled replay self-healed in 9.7 s with 8 target repairs and zero model calls, while the same agent under the same drift took 87.4 s and $0.63.
  • Identity before action. Against adversarial look-alike records (O/0, l/1), the identity ladder recorded zero false accepts in every tested configuration—halting rather than clicking a confusable target.
  • One governed contract, many substrates. The same semantics drive browser, native Windows UI Automation, native macOS, and real-network RDP tasks, each with an independent effect oracle and explicit refusal controls.

Reproducibility

Every headline number in the paper is bound by a machine-check to a released raw benchmark file: the build fails if a constant in the text drifts from its artifact. The implementation, the raw run data, and the failure taxonomy are published together in the openadapt-flow repository. This is a technical report; see the paper for the exact scope of each measured result and its limitations.

← Back to openadapt.ai