Venat v0.13.0
Status: Released
Released on 2026-08-01.
Durable execution recovery
worker.AgentWorker.ExecuteEnvelope now returns a typed
worker.ExecutionOutcome that distinguishes completion, failure, and suspension.
ExecuteContinuing follows durable retry envelopes until the task reaches a
terminal state or pauses for approval, reconciliation, or user input.
Execution checkpoints restore committed message history, cumulative token and
tool-call budgets, and monotonic tool-operation slots after a crash. Provider
streams reconnect only before assistant content has been observed, so recovery
does not replay a partial response.
Side-effect reconciliation and lease fencing
Guarded tools record canonical operation keys and exact tool results in the
action-attempt journal. Unknown outcomes must be resolved atomically before the
saved call can continue. Approval interruptions remain resumable and are not
reported as unknown side effects.
Expired lease recovery now checks the lease ID, version, and expiry before it
releases ownership. Durable store implementations must add
LeaseStore.ReleaseExpiredLease, ActionAttemptStore.ListActionAttempts, and
ActionAttemptStore.ResolveActionAttempt.
OpenAI Responses API and provider retries
An empty openai.Config.WireAPI now selects the Responses API. Applications
that use a Chat Completions-compatible endpoint must set
WireAPI: openai.WireChatCompletions explicitly. openai.ResponsesOptions
provides typed controls for output limits, storage, prompt caching, reasoning,
and text verbosity; Responses requests use store: false unless enabled.
OpenAI Responses output can be preserved in message.Message.ProviderState for
lossless tool-turn replay. Usage records now distinguish cache reads from cache
writes, and the built-in OpenAI and Anthropic drivers retry transient stream
startup failures within a bounded transport loop.
Upgrade
go get github.com/Viking602/venat@v0.13.0
go install github.com/Viking602/venat/cmd/venat@v0.13.0
go mod tidyWhat's Changed
- feat(v0.13.0): add durable execution recovery by @Viking602 in #44
Full Changelog: v0.12.1...v0.13.0