Skip to content
UseAgent

Zero-Loss Debugging

Work survives
restarts.

Return to the conversation, see what happened, and continue the task with its history intact.

Thread timeline
  1. 1ParentFix the flaky checkout testSaved
  2. 2ChildMigration, in its own threadSaved
  3. 3QueuedDocs update, sends nextQueued
Illustrative example

Work that carries forward

Every run is durable. Reload anytime. See the exact state, not a guess.

Durable command lane

Every run starts with an idempotent command. Server writes thread + run + command atomically. Reload. You get the exact sequence back. No re-runs, no duplicates.

SSE event stream with reconnect

Live updates stream over Server-Sent Events. Browser closed? Reconnect gets a fresh authoritative snapshot. No event IDs, no replay. Just the current state.

Restart reconciliation

Backend goes down mid-run. Sandbox keeps executing. When you reconnect, the backend re-probes the sandbox, streams the events that happened while it was down, and adopts the real result.

Child sessions that last

A run can open a child session for part of the work. The child is a real thread: durable, with its own history, and you can message it directly instead of going through the parent.

Nested live visibility

While the child runs, its progress shows inside the parent's timeline, nested under the step that opened it. The parent links to the child's own thread, so you can open it and read the full trace.

Queued follow-ups, or send now

Reply while a run is still going and the message queues behind the current turn. If it cannot wait, send now steers the running turn instead. Either way the order is recorded in the event log.

SEE IT WORK

One agent. Real tasks.

UseAgentExample workflow

Our widget service returns 500 on DELETE /widgets/:id when the widget has 3 or more linked components. Fix it.

  • Clone and search

    Cloned repo, found DELETE handler in handlers/widgets.ts. Searched error logs. Every 500 has 'permission check failed' after component count check.

  • Reproduce locally

    Set up test DB with 3 linked components, sent DELETE request, confirmed 500. Traced the stack: permission middleware runs after cascade check, causing the 500.

  • Fix the order

    Moved permission check before cascade. Added test case: DELETE with 3+ components now returns 204. Old test suite still green.

  • Open PR

    Created PR #487: 'Fix widget delete with linked components'. Added test case to prevent regression.

Questions, answered.

If my browser closes mid-run, does the agent keep working?

Yes. The sandbox and backend keep going. When you reload, you'll see the heartbeat events and the final result.

Can I pause a run and come back later?

Yes. A completed run is always resumable. Reply with a new prompt and the agent picks up with full context. Pause/checkpoint primitives for pausing mid-execution are on the roadmap.

Can I message a child session directly?

Yes. Open the child's thread from the link in the parent and reply there. It keeps its own history and engine. The parent keeps the link and shows the child's live progress nested in its timeline. A bot's delegated thread works the same way.

How bots hand off workShipped in v0.0.4

What happens if I reply while a run is still going?

The message queues behind the current turn and shows as queued in the thread. If it cannot wait, choose send now and it steers the running turn. Nothing is lost either way.

How far back does the history go?

Forever. The thread is durable. You can reload a run from weeks ago and see the exact state, terminal output, and artifacts.

Start with one task.
See what you can hand off.

Explore a completed run, or join the early-access list to hear about getting your team started.