Field noteNov 12, 20265 min read1 source

durable-harness 0.0.1 release adds Agent Runs tracing

In one minute

Vercel Labs’ durable-harness 0.0.1 release adds tracing that represents agent sessions as turns, model calls as steps, and tool calls beneath them, while preserving turn identity across resumed executions. For teams operating durable coding agents, this makes recovery behavior more observable without placing tracing on the agent’s result path.

What happened

Vercel Labs’ GitHub release notes date durable-harness 0.0.1 to October 23, 2026, and describe it as the project’s first release. The package provides durable harnesses for Claude Code, Codex, OpenCode, Pi, and integrations around libfx. Its central model is that an agent session is a Workflow SDK World workflow run and that the event log is the source of truth for the session.

Among the first release’s additions is Agent Runs tracing, enabled with agentRuns() from /instrumentation/otel. The integration records sessions in the schema read by @vercel/agent-runs@0.0.1: each prompt is a turn, each model call is a step, and the tool calls requested by that model call appear under the step. Claude Code, Codex, and OpenCode record each model request through the Gateway, including its prompt, reply, and usage. The release also says libfx durable agents can report turns, model calls, tool calls, and approvals through semantic hooks.

A turn can continue across invocations—for example, after a process runs out of time, crashes, wakes, or hands work to another lane. In those cases the trace keeps it as one turn, with its checkpoint retained alongside the session. Queued follow-ups retain their own turn identity. For recovered libfx work, the notes say handed-off and fenced turns remain open for recovery, while actual user interruption and cancellation finish the turn.

Tracing capture is governed by a session’s traceAudience. The public audience records inputs and outputs; other values record metadata only. The agentRuns({ capture }) option changes capture behavior by audience. When operations are restored, the current capture policy applies, so newly private content is kept out of checkpoints and exports. Recorded tool definitions exclude provider credentials, and untraced proxy requests stream without buffering.

The release notes also describe the durability machinery that the traces are intended to observe. Every model and tool call is a step in the event log; after a crash, a turn can resume from that log on another machine. A tool that is unsafe to rerun is returned to the model as interrupted rather than run twice. Claude Code and Codex run in a session-specific Vercel Sandbox by default, while OpenCode can use either a virtual workspace or that session sandbox. The notes describe tool-less defaults for several harnesses, with application tools provided explicitly and built-in tools enabled only through configuration.

Vercel Labs lists several safeguards around execution and tracing. Tracing failures cannot change agent results. Checkpoint waits are bounded without discarding final updates when a soft budget expires or a write slows down. Agent Runs is an optional peer with inlined declaration types. Tracing requires Node.js 24 and optional tracing peers; other entrypoints continue to support Node.js 22. The project is marked experimental, with patch releases only during the 0.0.x phase.

What the archive adds

New Runtime’s earlier coverage, “Making every harness durable” (October 22, 2026), argued that durable execution was becoming an adapter-layer property of coding-agent harnesses. This release is a new fact on that known story: it adds an explicit trace representation for sessions that survive recovery, rather than merely restating the durability claim.

Trend signal

This supports “Harness architecture outlives model choice”: the release focuses on the machinery around agents—session continuity, checkpoints, capture policy, sandbox boundaries, and trace structure—rather than on a new model. The evidence remains narrow: this is one release’s implementation and tracing design, not proof that all production harnesses are converging on the same architecture.

Why it matters

Durability changes the observability problem. A conventional request trace can end with one process, but an agent turn may resume elsewhere after a crash, timeout, wake, or handoff. Preserving one turn identity across those boundaries gives operators a more coherent unit for investigating what the agent attempted, which model calls it made, and which tools followed.

The capture controls matter operationally too. Teams can distinguish public inputs and outputs from metadata-only tracing and apply the current policy to recovered work, rather than treating a checkpoint as exempt from later privacy choices. The event-log model also makes retry behavior consequential: a system needs to know whether a tool call can be repeated before recovery runs it again. These capabilities do not replace an organization’s own review of what traces contain, who can access them, or which actions require approval. The release makes a capability available; it does not establish independent audit results or broad production adoption.

Limits and uncertainty

The release notes describe the data model and safeguards, but do not quantify tracing overhead, checkpoint costs, storage growth, or production reliability. They do not establish how Agent Runs displays these traces in practice, whether every supported harness exposes equally complete information, or how often recovery paths occur in deployed workloads. The package remains experimental in its 0.0.x phase. Tracing also requires Node.js 24 and optional peer dependencies, which may constrain adoption for teams whose runtime standard remains Node.js 22. The stated credential exclusion and capture behavior are release-note claims and have not been independently tested here.

Skill to build now

For a durable agent session, sketch a trace before wiring in instrumentation: identify the turn boundary, model-call steps, nested tool calls, recovery points, and capture audience. Then deliberately interrupt a run and resume it. Verify that the checkpoint and exported trace preserve the intended turn identity, that unsafe tool calls do not repeat, and that the resumed operation follows the current capture policy. This release makes those boundaries concrete enough to turn into a small integration test.

Reader takeaway

The notable change in durable-harness 0.0.1 is not simply more logs: Agent Runs tracing is shaped around a turn that can survive multiple executions. If an agent resumes after interruptions, inspect whether observability preserves that continuity and whether restored data obeys today’s capture policy.

Evidence / sources

  1. 1github.com/vercel-labs/durable-harness/releases
All Field Notes

Next reads

Read next

Open the graph
  1. 01topicClaudeExplore the claude topic hub.
  2. 02topicClaude CodeExplore the claude-code topic hub.
  3. 03topicCodexExplore the codex topic hub.
  4. 04archiveField NotesOpen the latest editorial analysis.
  5. 05sourcesSourcesSee the original sources this archive cites.
Who read this page?Machine requests, hidden until opened

Loading the privacy-safe route aggregate...

Open the JSON contract