Repository navigation
1.7.1 — 2026-10-05
Release Notes
The documentation describes Layover as it is, and the code nothing used is gone. Layovers never
backed off or expired, although the book said they did: it now says what waiting does, and when to
stop is up to the waiting agent's prompt.
Compatibility. The configuration format, the HTTP API, the MCP tools and the on-disk layout
are unchanged; a layover is still written with checks and max_checks, so a factory can go back
to 1.7.0. Two things are different in an existing factory:
- A resumed run's brief says when the work was set down, and no longer "this is check 1".
layover doctorno longer has an "expired layovers" finding. It could never appear.
Anyone using the crates as a library loses the items listed under Removed. That API is outside
the semantic-versioning promise.
Removed
- Library code nothing used, for anyone depending on the crates. None of it changes what a
factory does: the configuration, the HTTP API, the MCP tools and the on-disk layout are untouched,
which is what the semantic-versioning promise covers.layover_core::slots(Slots,Admission). It predated the dispatcher, which since 1.4.0 has
counted the runs it holds alive instead, and nothing ever used it.layover_tower::Factory::run_flight, the one-flight-at-a-time path from before 1.4.0. Nothing
but its own tests took it; they now run their flight throughdrain, asservedoes.
DispatchedgainsClone.- The itinerary's count of runs that reported no cost (
Itinerary::note_unreported_cost,
has_cost_reporting_gap,unreported_runs,metered_share). Nothing read it; that a run
measured nothing is carried by its record's cost source, which is what the dashboard, the
costs API andlayover doctorread. HelpRequest::is_same_ask_as, never wired to anything;Ledger::for_itineraryand
Summary::is_fully_measured(useconfidence().is_measured());diagram::Live::is_idle;
Factory::env_for.- Layover back-off and expiry:
Layover::set_down_again,cancel,minutes_until_due, the
ExpiredandCancelledstandings, andbook'smax_checksargument. Nothing outside their
tests ever called them, so no layover was ever expired or cancelled;layover doctorloses the
"expired layovers" finding that could therefore never appear. A layover'schecksand
max_checksare still written, as 0, because releases up to 1.7.0 need them to read it back.
Fixed
- Documentation that described Layover as it was before 1.0.
SECURITY.mdsaid the project
was pre-1.0 and that nothing spawned a process; the README said both "Status: 1.0" and "Pre-1.0:
expect breaking changes on a minor bump";AGENTS.md, the book's front page and the reference
factory's walkthrough said the Tower, its MCP endpoint or the 48-hour soak did not exist yet; the
install page pinnedv0.8.0and said releases carried no build provenance; and
docs/architecture.mddescribed a disk layout, Flight envelope, tool list and crate tree from
the original design. All now describe 1.7.0, and say plainly what is still not built: worktree
isolation foraccessandworkspace, resident agents, and Codex MCP wiring. layover run --helpsaid there was no MCP server, so agents could not hand work on. There
is, and work they hand on runs in the same drain.[layover] state_dirwas documented as where Hangars live. It is parsed and not honoured —
everything is kept in.layover/besidelayover.toml— and now says so.planner.tomland the
reference factory no longer set it orhttp_addr, neither of which does anything.SECURITY.mdadvised bounding agents withaccess, which is declared and not enforced. It
now says not to rely on it.- Layovers were documented to back off and expire, and never did. The book said each fruitless
check pushed the next one further out, from fifteen minutes to six hours, and gave up after
twelve. In every release a resumed run that finds nothing books a new layover, for whatever
wait it asks for, and nothing stops it asking again. The book anddocs/decisions.mdnow say
that, and that when to stop waiting belongs in the waiting agent's prompt; the reference
factory's follower now checks hourly, then daily, and stops after a week. A resumed run's brief
no longer says "this is check 1", which it said every time.
Install layover-cli 1.7.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/KotkaZ/layover-project/releases/download/v1.7.1/layover-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/KotkaZ/layover-project/releases/download/v1.7.1/layover-cli-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install KotkaZ/tap/layoverInstall prebuilt binaries into your npm project
npm install @layover/layover-cli@1.7.1Download layover-cli 1.7.1
| 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-projectYou 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>