{
  "schema_version": "1.1",
  "id": "s4:https://vercel.com/blog/making-every-harness-durable",
  "slug": "making-every-harness-durable-1rmx66o",
  "url": "https://feed7.dev/p/making-every-harness-durable-1rmx66o",
  "title": "Making every harness durable",
  "why_included": "Vercel’s open-source durable-harness logs model and tool steps so cloud coding agents can resume after crashes without rerunning completed calls.",
  "summary": "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.",
  "practical_implication": "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.",
  "agent_context": "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.\n\nFor 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.\n\nTool 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.",
  "source": {
    "name": "Vercel",
    "url": "https://vercel.com/blog/making-every-harness-durable",
    "published_at": "2026-10-19T13:00:00.000Z"
  },
  "source_class": "blog_post",
  "content_type": "Engineering Post",
  "layer": "agent",
  "domains": [
    "coding"
  ],
  "topics": [
    "harness-engineering",
    "agent-reliability",
    "cloud-agents"
  ],
  "verification": {
    "status": "official_source",
    "label": "Official Source",
    "method": "source_feed",
    "verified_at": null
  },
  "uncertainty": [
    "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."
  ],
  "connected_context": {
    "meaning": "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.",
    "corpus_size": 898,
    "generated_at": "2026-10-24T10:28:19.047Z",
    "connections": [
      {
        "title": "AI Agents Are Just Distributed Systems Now — Salman Munaf, TikTok",
        "source_name": "AI Engineer",
        "source_url": "https://www.youtube.com/watch?v=hD9-V56FNRI",
        "feed7_url": "https://feed7.dev/p/ai-agents-are-just-distributed-systems-now-salman-munaf-tiktok-1v4yc47",
        "reason": "Durable Harness implements the persisted-step and recovery side of the distributed-systems guidance, while its possibly-executed tool state confirms that timeout ambiguity still requires idempotency or reconciliation."
      },
      {
        "title": "Every step you take, every call you make: the reliable agent stack — Giselle van Dongen, Restate",
        "source_name": "AI Engineer",
        "source_url": "https://www.youtube.com/watch?v=cI7zfqusmFU",
        "feed7_url": "https://feed7.dev/p/every-step-you-take-every-call-you-make-the-reliable-agent-stack-giselle-1ojh38b",
        "reason": "Restate frames durable state, retries, and recovery as infrastructure concerns; Durable Harness supplies a concrete queue-and-log design for applying that pattern to existing coding harnesses."
      },
      {
        "title": "What we’ve learned building cloud agents",
        "source_name": "Cursor",
        "source_url": "https://cursor.com/blog/cloud-agent-lessons",
        "feed7_url": "https://feed7.dev/p/cloud-agent-lessons-06dh9iq",
        "reason": "Cursor’s Temporal rewrite provides reinforcing operational evidence that durable orchestration matters for cloud-agent reliability, while Durable Harness makes a related recovery pattern portable across multiple harnesses."
      },
      {
        "title": "Agent Frameworks Considered Harmful — Rémi Louf, .txt",
        "source_name": "AI Engineer",
        "source_url": "https://www.youtube.com/watch?v=KHudyx5wW3U",
        "feed7_url": "https://feed7.dev/p/agent-frameworks-considered-harmful-remi-louf-txt-1ku9s0h",
        "reason": "The append-only intents and outcomes, queue-backed turns, and replay handling closely instantiate the candidate’s call for durable events, causal traces, and replay-oriented runtime primitives."
      }
    ]
  },
  "lifecycle": "Current",
  "published_at": "2026-10-19T13:00:00.000Z",
  "modified_at": "2026-10-19T13:00:00.000Z",
  "supersedes": [],
  "expires_at": null,
  "formats": {
    "html": "https://feed7.dev/p/making-every-harness-durable-1rmx66o",
    "json": "https://feed7.dev/p/making-every-harness-durable-1rmx66o.json",
    "markdown": "https://feed7.dev/p/making-every-harness-durable-1rmx66o.md"
  }
}