Ota v1.6.18 Now available
v1.6.18 bounds runtime proof, hardens container execution, and makes task conditions, Corepack lanes, and agent-safe effects more explicit.

Idea
v1.6.18 is a determinism release.
Pressure-testing across real repositories exposed a familiar pattern: contracts were becoming more expressive, but the real execution path still needed tighter guarantees. Runtime proof needed an explicit wait budget. Container runs needed cleaner file mounts, non-root behavior, and package-manager cache ownership. Corepack-backed package managers needed different activation behavior on native and container lanes. Task execution needed a first-class way to say: only run this task when these conditions are true.
That kind of uncertainty matters. A repo can look ready while a proof run waits forever. A container can pass once and still leave root-owned artifacts behind. A task can look runnable in preview and then miss the same precondition gate during the real run. Agents and CI systems need more than "try it and see"; they need bounded, inspectable, repeatable execution behavior.
The goal for this release was simple: bound runtime proof, make container execution cleaner, make bootstrap more declarative, and keep task execution conditions explicit.
Feature
v1.6.18 ships a focused set of execution-governance improvements:
- Bounded runtime proof readiness:
ota proof runtime --ready-timeout <DURATION>now gives CI and local automation an explicit wait budget, with timeout failures classified asTIMEOUTandfailure_class: readiness_timeout. - Deterministic interruption handling: cancelled runtime-proof runs now emit
INTERRUPTEDin text andphase: interrupted/failure_class: interruptedin JSON instead of opaque cancellation output. - File-aware container isolation mounts: file-like
attachments.isolated_pathsentries now mount through managed bind files, while directory-like paths keep using managed dependency-isolation volumes. - Cleaner Corepack behavior across lanes: native tasks avoid unnecessary
corepack enablewhen the task already invokes Corepack directly, while container tasks bootstrap Corepack shims inside the real task shell. - More reliable non-root container execution: Ota now defaults container task
HOMEto/tmp, prepares isolation volumes for the selected host UID/GID, and reduces root-owned workspace artifact drift. - Stronger real-run precondition gates:
ota runnow blocks before task startup on selected precondition failures, including missing container-image tools and runtime/tool version mismatches. - Clearer version-mismatch diagnostics: runtime and tool blockers now use a task-first layout with explicit
Where,Field,Why, and orderedNextguidance. - Modern detector and starter ownership: Node, Rust, and Python init/detect paths now align with shipped toolchain contracts such as
toolchains.node,toolchains.rust, andtoolchains.python. - Expanded agent-safe effects advisories: network and external-state effects now propagate across the reachable task chain, giving agents a clearer view of the real automation blast radius.
- Task inventory filters:
ota tasksnow supports--safe,--unsafe, and--via native|container, making task safety and backend-lane inspection easier. - First-class task execution conditions:
tasks.<name>.when.checkslets Ota evaluate precondition, file, and changed-file checks before dependency or service startup and skip tasks deterministically when the condition lane does not pass. - Multi-step bootstrap orchestration:
action.kind: ensure_bundlelets one task run ordered deterministic setup actions such ascopy_if_missing,ensure_env_file,ensure_file, andensure_directorywithout shell glue. - More resilient container dependency isolation: permission-denied install failures on isolated dependency paths can trigger one selected-volume reset and retry.
- Cleaner proof teardown: detached Unix proof runs now use a dedicated process group and signal the full group on shutdown, reducing lingering listeners and late bind conflicts.
This release is about removing execution ambiguity. Proof runs are bounded. Setup is more declarative. Container behavior is less fragile. Task conditions are explicit. And Ota keeps moving repo execution away from hidden shell assumptions toward structured, verifiable execution governance.
Docs
If you want to adopt these capabilities directly, use the live docs:
- Get Started: Install Ota and run
ota doctorfirst in your repo. - Contract reference: Contract (
requirements,any_of,effects,services,agent). - Command reference: Commands (
ota proof runtime,ota run,ota up,ota doctor,ota tasks). - Workflow modeling: Workflows for readiness and execution intent.
Release
v1.6.18 is live here: https://ota.run/releases/v1.6.18
If you already use Ota, upgrade and verify:
ota --versionota validateota doctorota run <task> --dry-run --jsonIf you are evaluating Ota for the first time, this is a strong version to start with: the execution path is clearer, bootstrap is more deterministic, and the agent boundary model is stricter where it matters most.
Take action