This release adds 2 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 summaryFixed Windows install and update overwrites, improved persistent container cleanup on interruption.
Full changelog
- made
ota init,ota init --pack ..., and repo-contract detect write flows (ota detect --write,--merge,--rewrite) automatically create or extend repo.gitignorefiles with.ota/state/so local Ota runtime state stays out of source control by default - added a first safe
ota doctor --fixpath with--dry-runpreview mode, currently scoped to deterministic repo-hygiene repair for.ota/state/gitignore protection (# Ota local runtime state+.ota/state/) with planned/applied status surfaced in text and JSON output - tightened
ota doctor --fixtruthfulness and scope: contractless repos no longer surface.ota/state/gitignore repair before Ota is onboarded, dry-run/apply summaries now report only actually plannable file changes, and no-contract--fixoutput now points operators back toota detect --dry-run/ota init --bootstrapinstead of low-value hygiene mutations - added additive named-context inheritance for execution topology:
execution.contexts.<name>.extendsnow resolves parent context shape with deterministic merge semantics (scalars override, maps merge, lists replace) while preserving both existing single-context shorthand (execution.preferred/execution.lifecycle/execution.backends) and existing named-context contracts - moved
execution.contexts.<name>.extendssemantic failures (unknown parent,cycle, unresolved backend) into validator findings, and now reject backend-family switches across inheritance (container/remote/native) with explicit errors instead of inherited cross-backend drift - made runtime context selection consume resolved named-context inheritance across execution planning and diagnosis surfaces (
ota execution plan,ota up,ota run, and doctor mode context checks) while preserving existing shorthand behavior for single-context contracts - fixed task dependency and hook execution so child tasks resolve their own declared backend/context instead of inheriting the parent task's resolved backend; host-scoped dependencies like
compose:upnow stay onhosteven when invoked from a container-context parent task - fixed reused persistent container service runs so Ota preflights fixed in-container listener binds before exec and raises an explicit field-scoped listener conflict when a stale workload process is still holding the port
- fixed interrupted persistent container service runs so Ota now cleans up the interrupted in-container service workload instead of deleting the shared persistent backend, and classifies the stop from the exec workload outcome instead of the backend container sleep loop
- finalized execution-inheritance docs/output guidance so repo docs and
ota-sitenow present three additive authoring patterns clearly (single-context shorthand, named contexts, named contexts withextends), clarify that backend-family switches acrossextendsare rejected, and keepextendspositioned as optional multi-context dedup instead of a shorthand replacement - tightened execution contract validation so repos must choose one default execution declaration mode: shorthand-only (
execution.preferred/execution.lifecycle/execution.backends) or named-context mode (execution.default_context/execution.contexts), with mixed overlap now rejected explicitly instead of allowing duplicated default execution truth - tightened streamed service-stop classification so inspected container exit evidence wins over late interrupt flags, preserving real crash/exit causes instead of rewriting them as
Interrupted - improved streamed service interrupt UX before readiness: user
Ctrl+Cduring startup is now reported as an interruption-before-readiness case (not a generic task failure), while real pre-readiness non-zero startup failures remain normal failures - finalized terminal-cause consistency across run rendering and dependency propagation: exit-code-only interrupts (
130/143) now still classify as user interruption for direct and dependency-driven runs, while late raw interrupt signals no longer overwrite real non-zero failures or clean inspected service exits in banners, summaries, and receipt status notes - made persistent container reconciliation treat Compose attachment namespaces as part of execution shape, so changing
execution.contexts.<name>.attachments.composenow recreates stale persistent backends instead of silently reusing containers bound to the old Compose network family - made streamed
ota upprovisioning progress environment-aware: the loader now shows the selected native/container/remote target and container lifecycle/image where relevant instead of a generic preparation spinner - fixed Windows release installs and
ota self-update/ota upgradeoverwrite behavior inscripts/bootstrap.ps1so existingota.exeis replaced via copy-and-cleanup semantics instead of failing with PowerShellMove-Item"file already exists" errors
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]