This release adds 5 notable features for engineering teams evaluating rollout.
Published 1mo
Developer Productivity
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
cli
configuration
contracts
developer-tools
infrastructure
ota
+5 more
productivity
repo-readiness
rust
validation
workspace
Summary
AI summaryExpanded prebuilt releases cover all mainstream OS/architectures and improved installer handling.
Full changelog
- expanded prebuilt release publishing to the full mainstream target matrix: Linux
x86_64-unknown-linux-gnuandaarch64-unknown-linux-gnu, macOSx86_64-apple-darwinandaarch64-apple-darwin, and Windowsx86_64-pc-windows-msvcandaarch64-pc-windows-msvc - made release checksum manifests and installers agree on asset names, while keeping installers backward-compatible with older
dist/<asset>checksum entries during the transition - improved shell and PowerShell installer fallback messaging so unsupported or unpublished prebuilt targets are reported explicitly before cargo fallback is attempted
- added narrow monorepo cross-member service targets through
tasks.<name>.targets.<target>.service.member: repo commands can now resolve another declaredworkspace.membersproducer through its fixedaddress_view: hostendpoint, and also throughaddress_view: topology/address_view: internalwhen consumer and producer share one declared backend binding on the active plane; the shipped cross-member slice stays explicit and honest by keepingaddress_view: hostmanual-only, allowingensure_started/restart_ready/ensure_running/ensure_readyonly for shared-backendtopology/internalmember targets, and recording member/task/listener evidence separately in receipts - broadened declared runtime env-source loading beyond dotenv:
env.sources[].kindnow supports curatedpropertiesandjsonloaders with strict parsing, deterministic key normalization, explicit failure on collisions/nulls/arrays/object leaves, and unchanged runtime precedence throughota run/ env resolution - extended curated declared runtime env-source loading to
yamlandtoml, reusing the same structured-source flattening, normalization, collision, and fail-fast visibility model already used forjsonwhile keeping detect/init inference scoped to the earlier explicit standard file set - added operator visibility for declared env sources across
ota env,ota doctor, and additive JSON output: source entries now reportkind/path/label/status, resolved env values keep declared-source provenance where applicable, and doctor surfaces source-scoped missing/parse/structure/collision failures with deterministic next steps - taught
ota detectand detector-ledota initto infer curated declared env sources from standard files only:.env.local,.env,src/main/resources/application.properties,appsettings.json, andappsettings.Development.jsonnow participate in detect/init provenance, confidence, and merge/apply flows without weakening the runtime rule that source loading stays declaration-driven - added context-wide execution env defaults under
execution.contexts.<name>.env, with execution-time precedence now resolved as context env, thentasks.<name>.env, then selected mode env, while keeping ota-derived cache env as fallback only - ota now injects
OTA_WORKSPACEfor task execution and derives fallback cache wiring automatically for known attachment pairs (.m2->MAVEN_OPTS,.npm->NPM_CONFIG_CACHE,.pnpm-store->PNPM_STORE_DIR,.gradle->GRADLE_USER_HOME,.pip-cache->PIP_CACHE_DIR,.pypoetry-cache->POETRY_CACHE_DIR) when the task resolves through a compatible execution context - added cross-boundary
depends_onadvisories toota validateandota doctor, calling out context/backend/lifecycle drift and explaining that only durable external side effects survive across that dependency edge - made execution summaries and attachment guidance more explicit by surfacing effective in-container attachment paths such as
/workspace/<path>, and added warnings when a declared attachment is likely unused because an explicit tool env points somewhere else - made
ota env --task <name>inspect the effective execution env for the selected task instead of only the raw task-local env, including context env, ota-injectedOTA_WORKSPACE, and derived cache env when they are part of the resolved task execution - broadened shared-remote
activation.mode: ensure_readyfor built-in remote providers (ssh,tsh,kubectl,daytona): shared-remoteaddress_view: hostnow auto-starts against fixedproject.hostendpoints, and shared-remoteruntime.readiness.kind: httpcan now probe the remote plane foraddress_view: topology/address_view: internal - added
tasks.<name>.targets.<target>.activation.mode: ensure_startedas the shallow producer auto-start mode: ota now starts a supported producer and returns as soon as startup is handed off, keepsensure_runningfor listener reachability andensure_readyfor deeper declaredruntime.readiness, records distinctstarted_started/reused_startedactivation evidence, and continues to reject unsupported producer ownership shapes instead of guessing orchestration - added
tasks.<name>.targets.<target>.activation.mode: restart_readyas the explicit bounce-and-verify mode: ota now stops a currently reachable supported producer through its owned cleanup path, starts it again, waits for readiness, records distinctrestarted_readyactivation evidence, and keeps unsupported producer ownership shapes failing clearly instead of guessing orchestration - added
tasks.<name>.targets.<target>.activation.mode: ensure_runningas the narrower producer auto-start mode: ota now reuses or starts a producer until the declared target listener itself becomes reachable, keepsensure_readyreserved for deeper declaredruntime.readinesscontracts, records distinctstarted_running/reused_runningactivation evidence, and validates non-manual activation shapes even when the producer omitsruntime.readiness - completed backend-provider remote activation parity on the shared-remote slice: when caller and producer share one declared remote backend binding,
address_view: host,address_view: topology, andaddress_view: internalnow supportensure_started,restart_ready,ensure_running, andensure_readyfor backend-provider producer services when the matchingbackend_providerextension declaresactivation.provider_managed_cleanup: true; ota now sends provider command contexts (run,activation,activation_probe,activation_cleanup), waits honestly on the selected plane, and preserves provider-owned cleanup/restart semantics - made remote execution receipts and summaries more truthful by carrying remote
providerand optionalcwdalongside the existing remotetarget, soota run, archived receipts, and receipt history no longer flatten remote backend identity into one generic target string - added first-class
tasks.<name>.targets.<target>.urlfor explicit declared URL targets, keeping target precedence andOTA_TARGET_<TARGET>export intact without requiring fake service identity, while restricting activation to service targets only - broadened service target identity slightly:
service.listenermay now be omitted when the producer task exposes exactly one declared listener name, while multi-listener producers still require an explicit listener selector
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]