Skip to content

v3.2.0

Choose a tag to compare

@github-actions github-actions released this 10 Jul 14:29
2f346e7

v3.2.0

Released 2026-07-10.

A resumability and availability release. Interrupted runs continue from a
verified ledger instead of starting over, provider outages reroute along
declared fallback chains with a receipt for every decision, and certified
local endpoints join the worker pool behind a certification gate.

Durable work ledger (#2358)

An interrupted orchestration run no longer discards finished work. The
scheduler records every task transition in a Merkle-chained work ledger:

  • Every state transition of the task graph appends a redacted,
    content-addressed ledger entry whose hash links its predecessor, using the
    same canonical-JSON contract as the per-step replay journal.
  • bernstein ledger resume rebuilds scheduler state purely by replaying the
    chain and re-dispatches only tasks without a completion entry. Completed
    work is never re-run.
  • The ledger is machine-portable: clone the repository on another machine and
    resume there with zero lost completed work. Tampering or divergence
    surfaces as a hash mismatch at an exact position, never as a silent merge.
  • bernstein resume <task-id> picks up a single paused, killed, or crashed
    task from its last checkpoint and points at the ledger when the id matches
    a portable run.

Checkpointed retries (#2359)

A failed task retry no longer has to start cold. When the native agent
session recorded a checkpoint, the retry engine resumes it warm:

  • Warm resume replays the recorded session checkpoint with a templated
    corrective instruction, so in-context progress is preserved.
  • Fork branches a fresh session off the checkpoint and leaves the original
    session intact. Cold restart stays the always-safe fallback.
  • Every decision (warm, fork, or the downgrade reason that forced cold) is
    anchored in the journal and mirrored to the audit chain, so a retry replays
    identically and the decision trail survives the worktree.

Provider availability policy (#2355)

Provider outages reroute instead of failing the spawn. Roles declare a
fallback chain, and failover is a deterministic, receipted decision:

  • Per-role fallback chains list providers in preference order; health probes
    are cached with an explicit TTL so dispatch bursts do not re-probe.
  • Chain resolution is deterministic: the same policy and probe results always
    produce the same decision hash, and every failover lands a journal receipt
    mirrored to the audit chain.
  • bernstein doctor --failover-drill exercises every declared chain against
    simulated outages and reports the route each role would take, before a real
    outage forces the question.

Local-model worker tier (#2356)

OpenAI-compatible local endpoints can now serve worker roles behind a
certification gate:

  • bernstein doctor --endpoint runs the conformance suite against an
    endpoint and produces a signed certification receipt; certified endpoint
    profiles are the only ones the config gate accepts for role assignments.
  • Certification receipts are anchored to the audit chain, so an assignment
    can always be traced back to the exact probe run that admitted the
    endpoint.
  • Three verified local configurations are documented in the local-endpoints
    reference, each reproduced from its certification receipt.

Cross-adapter coordination (#2357)

Workers on different adapters now coordinate through a signed task mailbox
instead of ad-hoc files:

  • Every mailbox message is HMAC-chained and Ed25519-signed; the response to a
    post is the signed journal entry itself.
  • The claim API is dependency-gated: a task cannot be claimed until the tasks
    it depends on have verified completions, and every claim emits a claim
    receipt into the audit chain.
  • Delivery is replay-identical: replaying the same journal reproduces the
    same message order and the same claim outcomes, byte for byte.

Housekeeping

  • Resolved all open scanner alerts in the new feature code: applied the
    suggested idiom cleanups, restricted the endpoint conformance transport to
    http/https handlers only, and added containment checks for filenames
    derived from session and approval ids.
  • Dependency updates, including a pip lockfile bump past CVE-2026-8643.