Making every harness durable
Vercel’s open-source durable-harness logs model and tool steps so cloud coding agents can resume after crashes without rerunning completed calls.
Vercel’s open-source **durable-harness** adds crash recovery to Pi, OpenCode, Codex, Claude Code, and custom harnesses. It records each model or tool-call intent and outcome, then backs the turn with a queue message.
For long-running coding agents, persist execution state outside the process. After a crash or timeout, a new function reads the log, restores harness session records, and resumes; **completed calls do not run again**, avoiding repeated model charges.
Vercel’s open-source **durable-harness** adds crash recovery to Pi, OpenCode, Codex, Claude Code, and custom harnesses. It records each model or tool-call intent and outcome, then backs the turn with a queue message. For long-running coding agents, persist execution state outside the process. After a crash or timeout, a new function reads the log, restores harness session records, and resumes; **completed calls do not run again**, avoiding repeated model charges. Tool recovery is not universally automatic. Interrupted tools marked **replay: 'safe'** run again, while other tools return as possibly executed and leave the model to decide whether to inspect before continuing.
This turns the prior durability guidance into a reusable implementation across several coding-agent harnesses. Its intent/outcome log and queue-backed turns address crash recovery and duplicate model charges, while replay labels expose the remaining hard boundary: an interrupted external tool may have executed. Recovery therefore still requires idempotent tools or post-failure inspection, not blind replay.