This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+5 more
Affected surfaces
Summary
AI summaryAdded explicit readiness timeout flag to ota proof runtime.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Adds `--ready-timeout <DURATION>` to `ota proof runtime` for bounded readiness waits. Adds `--ready-timeout <DURATION>` to `ota proof runtime` for bounded readiness waits. Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Feature | Low |
Hardens `ota proof runtime` interruption semantics to emit deterministic `INTERRUPTED` status and JSON classification. Hardens `ota proof runtime` interruption semantics to emit deterministic `INTERRUPTED` status and JSON classification. Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Feature | Low |
Adds first‑class file‑aware container isolation mounts via `attachments.isolated_paths`. Adds first‑class file‑aware container isolation mounts via `attachments.isolated_paths`. Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Feature | Low |
Sets writable default `HOME=/tmp` for non‑root container runs to avoid root‑owned cache writes. Sets writable default `HOME=/tmp` for non‑root container runs to avoid root‑owned cache writes. Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Feature | Low |
Blocks `ota run` on precondition failures (missing tools, version mismatches) before task start. Blocks `ota run` on precondition failures (missing tools, version mismatches) before task start. Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Feature | Low |
Adds `--safe` and `--unsafe` filters plus `--via native|container` to `ota tasks`. Adds `--safe` and `--unsafe` filters plus `--via native|container` to `ota tasks`. Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Feature | Low |
Introduces task execution conditions with `tasks.<name>.when.checks` for pre‑condition evaluation. Introduces task execution conditions with `tasks.<name>.when.checks` for pre‑condition evaluation. Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Feature | Low |
Adds one‑shot container dependency‑isolation recovery for EACCES install failures. Adds one‑shot container dependency‑isolation recovery for EACCES install failures. Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Bugfix | Medium |
Fixes rendering of `ota run` version‑mismatch `Next` guidance to split combined actions into separate ordered steps. Fixes rendering of `ota run` version‑mismatch `Next` guidance to split combined actions into separate ordered steps. Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Bugfix | Medium |
Fixes container‑image probe wording to consistently mention "inside the configured container image". Fixes container‑image probe wording to consistently mention "inside the configured container image". Source: llm_adapter@2026-05-30 Confidence: high |
— |
Full changelog
- added
--ready-timeout <DURATION>toota proof runtimeso runtime-proof readiness waits are
explicitly bounded in CI and local automation (for example90s,5m,1h), aligned timeout
failures to the explicitTIMEOUTruntime-proof status, and normalized timeout-only JSON
classification tofailure_class: readiness_timeout - hardened
ota proof runtimeinterruption semantics for CI and automation cancellation paths:
runtime proof now captures termination signals and emits deterministic interruption output
(INTERRUPTEDstatus in text,phase: interruptedandfailure_class: interruptedin JSON)
instead of an opaque cancellation result - added first-class file-aware container isolation mounts: file-like
attachments.isolated_pathsentries (for example.pnp.cjs) now mount through deterministic
.ota/state/isolated-file-mounts/*bind files instead of invalid volume targets, while
directory-like isolation paths continue using managed dependency-isolation volumes - kept Corepack-backed native task execution from running
corepack enablewhen the selected task
already invokescorepack ...directly, and scoped Corepack activation to each direct task instead
of the full dependency closure - changed container Corepack command wrapping to always bootstrap shims for Corepack-owned tasks,
including commands that already start withcorepack ..., so nested package-manager script
calls (for example scripts that invokepnpmrecursively) resolve reliably in container lanes - scoped container Corepack command wrapping to each direct task's own toolchain requirements,
preventing aggregate tasks from inheriting Corepack activation from already-run dependency tasks - set a writable default
HOME=/tmpfor non-root container runs launched with the host UID/GID,
preventing package managers such as Corepack from trying to write under/.cache - prepared managed dependency-isolation directory volumes for the selected host UID/GID before
container task startup, so package managers can write isolated paths such asnode_modules
without falling back to root-owned workspace artifacts - made
ota runblock on selected precondition failures before starting the task process, matching
ota run --dry-runfor container-image missing-tool blockers and runtime/tool version mismatch
blockers, and kept existing contract/env validation errors on their more specific diagnostic
paths - extended the same real-run precondition gate to version mismatch blockers, so
ota runstops
before dependency tasks when the selected path requires a different runtime or tool version - unified
ota runprecondition version-mismatch output across runtime/tool blockers with the
same structured task-first layout (task ... is blocked, plusWhere,Field, bulletized
Why, and orderedNext), including backend-aware rerun guidance for container and remote
lanes - fixed
ota runversion-mismatchNextrendering to split combined... and rerun ...
guidance into separate ordered actions (run <install>,run ota doctor,run ota run ...)
for clearer task-first remediation flow - fixed container-image probe wording so run/doctor errors consistently say "inside the configured
container image" when a required runtime or tool is missing or cannot be probed in the selected
image - tightened
ota policy reviewtext output for pure info-only success: approved version,
provisioning, and adapter-bootstrap policy surfaces now render as a compactSurfaces / Approved / Nextsummary instead of the heavier diagnostic finding layout, while warnings and
errors keep the existing detailed review path - matured detector-led contract writes from real pressure-test repos:
package.json#engines.node
plus versionedpnpm/yarnpackage-manager ownership now writes, merges, rewrites, and tracks
drift through the canonicaltoolchains.nodeCorepack shape instead of legacy split
runtimes.node+ standalone package manager tools, Docker Compose service
start/stop/healthcheckcommands are written with their service declarations, and
watch/dev/serve verifier scripts are no longer inferred as agent-safe tasks - improved Node mismatch remediation so
ota doctorprefers the provider actually found on the
probed executable path (mise,asdf,volta,nodenv, orpyenv) before falling back to
repo file hints such as.nvmrc; this keepsNext:guidance aligned with the tool the host is
really using - hardened
ota initstarter-pack ownership to match shipped toolchain contracts and avoid
generator-led drift: Node pack now seedstoolchains.node(Corepack-owned Node, default pnpm
package-manager ownership, and Corepack-prefixed pnpm/yarn task commands) instead of split
runtimes.node+ top-level package-manager tools, Rust pack now seedstoolchains.rust
(provider: rustup) instead of splitruntimes.rust+tools.cargo, and Python pack now
seedstoolchains.python(provider: uv) with uv-native setup/test commands instead of the
legacy requirements.txt starter shape - added a non-blocking contract advisory for legacy manual Node split ownership
(runtimes.node+ standalonetools.pnpm/tools.yarnwithouttoolchains.node), including
validate/doctor guidance to migrate ontotoolchains.nodeCorepack ownership - extended agent-safe
effectsadvisories (effects.network,effects.network_kind,
effects.external_state) across the full reachable task closure, so a safe task now reports
dependency-path network/external-state blast radius instead of only direct task-node effects - added
ota taskssafety and backend-lane filters:--safe,--unsafe(mutually exclusive),
and--via native|container; safety filtering uses the effective safe set
(safe_for_agent: trueplusagent.safe_tasks) - refined
ota tasks --use/ota taskstext output to keep one canonical run command per task
and add a compactModesblock only for true multi-mode tasks; mode variants now render near the
end of each task block (after notes) so the default run lane stays primary - added explicit command-reference and quickstart guidance for
ota tasksfiltering lanes
(--safe,--unsafe,--via native|container) including valid combined--useflows - added a v9.1 pressure-test gap ledger documenting closed platform gaps, remaining maturity work,
and acceptance evidence expectations for new gap intake - added first-class task execution conditions with
tasks.<name>.when.checks, soota run
now evaluates declared precondition/file/changed_files checks before dependency/service startup
and skips that task deterministically when the condition lane does not pass - surfaced task execution conditions in
ota tasksoutput asWhen Checksand updated the
publishedtasks.jsonschema withwhen_checks[]for machine-readable parity - added contract-capability/minimum-version detection for
tasks.when.checks, so older binaries
now render an explicit unsupported-feature upgrade hint instead of a generic parse failure - added first-class multi-step bootstrap orchestration with
action.kind: ensure_bundle, so one
task can execute ordered deterministic setup actions (copy_if_missing,ensure_env_file,
ensure_file,ensure_directory) without shell glue; validation, run-path idempotence, and
capability/minimum-version detection now includetasks.action.ensure_bundle - fixed Corepack-backed container task execution so ephemeral and persistent container runs
activatecorepack enableinside the real task shell instead of a throwaway preflight path;
this keeps bare repo-internalpnpm/yarncommands working aftercorepack pnpm .../
corepack yarn ...entrypoints - switched container Corepack shim activation to a user-writable install directory
(corepack enable --install-directory "$HOME/.local/bin"plus PATH export) before task
execution, avoiding/usr/local/binpermission failures in non-root container runs - defaulted Docker/Podman task containers on Unix hosts to run as the host UID:GID (
--user) for
Ota-managed container execution, reducing root-owned workspace artifact drift between container
and native lanes in mixed-mode pressure-test matrices - added one-shot container dependency-isolation recovery for permission-denied install failures:
when a container task fails with an isolatednode_modules/.pnpm-storeEACCES signature, Ota
now resets the selected context's dependency-isolation volumes and retries the task once - hardened
ota proof runtimedetached Unix service teardown by running detached proof runs in a
dedicated process group and signaling that full group on shutdown, reducing lingering native
listeners that can cause late bind conflicts across sequential proof lanes
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About ota-run/ota](https:
All releases →Related context
Related tools
Earlier breaking changes
- v1.6.16 Enforce `metadata.ota.minimum_version` at contract load time across all commands.
Beta — feedback welcome: [email protected]