Same handoff loop. Six different stuck moments.
Each chip below fires a real handoff against the backend with a distinct interruption pattern. Same ULID format, same SSE pipeline, same audit log. The visible behavior changes — the engine stays identical.
One stuck moment. Five seconds of human attention. Agent resumed.
The browser agent on the left runs against a fictional bank portal. When it hits a human-only interruption, BatonPass freezes the session, beams it to a phone, and waits for the operator to tap through. Watch the 13-state lifecycle ladder transition live as the backend pushes SSE events.
Pick the stuck moment
Each option fires a fresh handoff against the backend with a distinct interruption pattern.
FirstNorthBank demo portal
Statement center
Open statement center
Queued
Choose April statement
Queued
Verify session
Queued
Download PDF
Queued
Agent running
Targeting the latest statement
The browser agent is navigating the demo portal. Interruption due: Production deploy approval #1442.
Lifecycle ladder
13 states · backbone
Mobile PWA
/m/{handoff_id}
BatonPass
Awaiting handoff
Your agent needs help
Demo portal will request human verification.
Scan with phone
Or open in any browser to confirm the route is real.
Human assist time
Counts from frozen until the operator submits the action. Anything under 10s means the agent never lost its session.
Public audit stream
All tenant events
SSE · curl /api/v1/audit/stream
Backend trace
Every HTTP call the browser issued. Click a row to expand.Anti-fakeness checklist
Eight reasons the demo isn't animation.
Every check below maps to backend state you can verify in DevTools or with curl. If something is yellow, the related dependency is degraded — not faked.
- •
Real ULID, not demo_001
Run the demo — backend mints a real ULID.
- •
Lifecycle SSE actually firing
SSE stream waiting on handoff creation.
- •
Backend trace panel persists
Loading trace history from /api/v1/audit/trace.
- •
QR scannable from a real phone
Run the demo to mint a signed URL.
- •
Signed mobile URL is copyable
Run the demo to expose a signed URL.
- •
Audit feed survives a refresh
Audit feed empty until a handoff runs.
No "this is a recording" overlay
Everything you see is live backend state. Only chrome is the small demo-tenant pill above.
- •
Lifecycle ladder driven by SSE
If the backend dies, the ladder stops — it doesn't fake state transitions.
Public audit stream
All tenant events
SSE · curl /api/v1/audit/stream