Skip to content

1.14.0 — 2026-10-14

Choose a tag to compare

@github-actions github-actions released this 14 Oct 13:50

Release Notes

A run the model service ended is restarted like an interrupted one, and a chain that ends on a
failed run no longer reads as finished.

Compatibility. Additive for layover.toml: every factory that loaded under 1.13 loads unchanged,
and the one new key, a runner's provider_errors, is optional. What an existing factory will notice:

  • A Copilot run the model service ended is restarted, after a minute, where its agent's
    recovery is automatic — the default — up to max_recovery_attempts (default 2). It is on by
    default because recovery already says whether an agent's work is safe to repeat. To keep the old
    behaviour, set max_recovery_attempts = 0, recovery = "manual" on an agent, or
    provider_errors = { read = "none" } on a runner. No other failed run is restarted.
  • Chains that ended on a failed, timed-out or interrupted run show as failed, in Chains'
    needs attention, the tab's count, the page title and notifications — including ones that ended
    that way before this release, within the window shown.
  • layover run waits for a restart that is backing off rather than stopping with it queued.
  • The HTTP API: ItineraryState gains failed and ItineraryList a failed count; a run gains
    cause and request_id; a queued flight gains attempt and not_before. A client that treats
    the chain state as a closed set should expect the new value.
  • Run records in runs-*.jsonl gain cause and request_id, absent from older records.
  • Going back to 1.13 or earlier: a restart this release queued, or one alive when the Tower
    stopped, is not understood by them and would be dropped. Let it start, or cancel it, first.

Added

  • A run the model service ended is told apart from one that failed its own work. Copilot CLI's
    events are read: a failed run is a provider error when its last model call came back with a
    result other than success (http_400, transport_error, …) or a session.error of type
    query, and no tool started and no call succeeded after it. Only top-level event fields are read,
    so an agent quoting an error never counts. The run stays failed, with cause: provider_error,
    the provider's request id, and a detail saying what the service said.
  • Such a run is restarted like an interrupted one: the agent's recovery policy and
    max_recovery_attempts, counted per piece of work, a Ground Stop forbidding it, and every rail
    applying to the restart. It waits a minute before the first restart, five before the second and
    fifteen after that, and is told the model service failed and that the earlier run's tools may have
    acted. Upcoming says when it starts.
  • provider_errors on a runner: read = "copilot" for Copilot CLI under another name,
    read = "none" to turn it off, or the events that say the service failed (failed) and that the
    run carried on (carried_on), for a CLI Layover has no reader for. Claude Code and Codex have
    none yet. validate refuses a declaration that cannot decide or matches every event.
  • The failed chain state, for a chain whose last run failed, timed out or was interrupted with
    nothing queued or running after it and nobody having continued it.

Install layover-cli 1.14.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/KotkaZ/layover-project/releases/download/v1.14.0/layover-cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/KotkaZ/layover-project/releases/download/v1.14.0/layover-cli-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install KotkaZ/tap/layover

Install prebuilt binaries into your npm project

npm install @layover/layover-cli@1.14.0

Download layover-cli 1.14.0

File Platform Checksum
layover-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
layover-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
layover-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
layover-cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
layover-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo KotkaZ/layover-project

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>