This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
+5 more
ReleasePort's take
Moderate signalThe release upgrades quick‑xml to 0.41.0, fixing RUSTSEC‑2026‑0194 and RUSTSEC‑2026‑0195.
Why it matters: Remediates two high‑severity RustSec vulnerabilities (RUSTSEC‑2026‑0194, RUSTSEC‑2026‑0195) by upgrading quick‑xml to version 0.41.0; upgrade required for affected projects.
Summary
AI summaryAligned contract schema with V11.11 workflow proof surface and fixed multiple runtime‑proof and governance issues.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Critical |
Upgraded quick-xml to 0.41.0 to remediate RUSTSEC-2026-0194 and RUSTSEC-2026-0195. Upgraded quick-xml to 0.41.0 to remediate RUSTSEC-2026-0194 and RUSTSEC-2026-0195. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Medium |
Added first-class action.kind: build_container_image for Dockerfile-backed image materialization. Added first-class action.kind: build_container_image for Dockerfile-backed image materialization. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Medium |
Added effects.network_kind: container_image_hydration for registry-backed Compose image-pull lanes. Added effects.network_kind: container_image_hydration for registry-backed Compose image-pull lanes. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Medium |
Added task‑level `only_on` host support declarations to validate platform tokens and refuse unsupported dependency closures before provisioning. Added task‑level `only_on` host support declarations to validate platform tokens and refuse unsupported dependency closures before provisioning. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Bugfix | Medium |
Fixed source-run maintainer tasks to explicitly select the `ota` binary, ensuring contract validation and release gates remain runnable after adding schema sync binaries. Fixed source-run maintainer tasks to explicitly select the `ota` binary, ensuring contract validation and release gates remain runnable after adding schema sync binaries. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Bugfix | Medium |
Fixed interrupted run rendering so observed signals remain authoritative task outcome while preserving richer diagnosis evidence. Fixed interrupted run rendering so observed signals remain authoritative task outcome while preserving richer diagnosis evidence. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Bugfix | Medium |
Fixed `ota proof runtime --container` cleanup to follow selected execution mode and remove only started workloads, preserving pre‑existing developer services. Fixed `ota proof runtime --container` cleanup to follow selected execution mode and remove only started workloads, preserving pre‑existing developer services. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Bugfix | Medium |
Fixed execution-mode admission to refuse unadvertised modes for `ota run --container` or `--remote`, aligning with task discovery rules. Fixed execution-mode admission to refuse unadvertised modes for `ota run --container` or `--remote`, aligning with task discovery rules. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Bugfix | Medium |
Fixed whitespace‑separated semver range evaluation for runtime and tool probes, allowing ranges like `>=1.26.3 <1.27` to accept valid versions. Fixed whitespace‑separated semver range evaluation for runtime and tool probes, allowing ranges like `>=1.26.3 <1.27` to accept valid versions. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Bugfix | Medium |
Fixed Compose adapter‑file preflight to resolve declared Compose files relative to the adapter `cwd`, preventing premature failures. Fixed Compose adapter‑file preflight to resolve declared Compose files relative to the adapter `cwd`, preventing premature failures. Source: llm_adapter@2026-07-17 Confidence: high |
— |
Full changelog
-
aligned the published contract schema with the shipped V11.11 workflow proof surface, including
seam observations, negative-control obligations, interventions, and expected failure classes;
canonical and public proof examples now validate against the same contract accepted by Ota -
fixed source-run maintainer tasks to select the
otabinary explicitly, so contract validation,
task discovery, doctor follow-up, and dependency-update release gates remain runnable after the
repository added schema and documentation synchronization binaries -
fixed the release gate after the 1.6.24 execution and governance widenings: backend-provider
commands retain request stdin through the signal-forwarding wrapper, container overrides are
tested only on explicitly advertised task modes, and interrupt simulations restore process-global
state deterministically -
fixed doctor governance recovery so structured CI verifier steps and multi-file command sequences
remain available for aggregate comparison, while manual runtime and task drift from governed
external sources is no longer suppressed by command-family filtering -
aligned local artifact hygiene with archived semantic snapshots by treating
.ota/contracts/
alongside.ota/state/,.ota/receipts/, and.ota/proof/, and fixed cleanup so an unavailable
stale recorded engine does not block cleanup through the currently healthy declared engine -
fixed interrupted run rendering so a signal observed in the active execution epoch remains the
authoritative task outcome, while service-only interruption evidence still retains its richer
readiness, endpoint, and container-engine diagnosis instead of being flattened prematurely -
fixed
ota proof runtimecleanup for selected Compose-managed dependency services; proof now
snapshots required-service state before startup and stops only services that were not already
running, preserving pre-existing developer services while removing proof-owned workloads -
added a canonical runtime-proof evidence example that demonstrates marker-bound dependency
exercise, same-obligation negative-control attestation, and the required distinction between
ok,proof_verdict, and retainednot_provedboundaries -
fixed
ota proof runtime --containercleanup for workflows whose default mode is native. The
proof cleanup scope now follows the selected effective mode and derives persistent ownership
from declared context truth before probing the container engine, so it can remove the runtime it
started without admitting unrelated active executions. -
completed the canonical
build_container_imageexample with a runnable Dockerfile, explicit
Docker provider and minimum-version truth, a finite image-build workflow, and smoke coverage for
the typed task preview -
fixed execution-mode admission to use the same contract-owned support rule as task discovery;
ota run <task> --containeror--remotenow refuses an unadvertised mode instead of forcing
unbranched host-owned actions, including Docker/Compose control tasks, into that runtime; also
corrected task and workspace-task JSON schemas to match the established
ensure_container_networkfrom: docker/to: <network>summary -
fixed
ota run <aggregate> --dry-run --jsongovernance truth to derive network, mutation,
external-state, and compiled sandbox posture from the selected aggregate closure instead of the
empty aggregate wrapper task; preview consumers now see the same governed execution surface Ota
will actually traverse -
added first-class
action.kind: build_container_image, so Dockerfile-backed local image
materialization can be contract-owned as typedfile,context,tag, and provider truth
instead of opaquedocker buildcommand glue; validation, task previews, capability reporting,
published contract schema, direct task execution, and doctor replacement advisories now share
the same surface -
fixed task discovery mode truth for aggregate tasks.
ota tasks --usenow advertises a
Container, Native, or Remote invocation only when every concrete task in the aggregate closure
supports that execution backend, instead of hiding a runnable aggregate mode because the
aggregate task has no command body of its own. -
fixed doctor requirement probing for repo-owned command paths. Relative or absolute command and
launch executables such as./bin/serverare no longer treated as host-PATH tools to version
probe before their producing task has materialized them. -
widened typed
uvdependency hydration with contract-owned source posture.default_index,
orderedindexes[], andofflinenow project into the executed uv command through
cross-version compatible uv index flags and flow through
task previews plus receipthydration_provenance; when neither index surface is declared, Ota
records source resolution as unavailable instead of treating ambient uv/pip configuration as
replayable repo truth. -
fixed published contract-schema parity for existing V11.10 task fields:
replay_inputsand
witnessed_observations.query_tracesnow validate as documented instead of being rejected by a
stale generated schema. -
fixed V11.11 proof-runtime schema drift. The published
ota proof runtime --jsonschema now
covers dependency evidence, marker-bound seam observations, canonical negative controls, and
the causal-depthnot_provedboundaries that the runner already emits. -
fixed replay trust for typed hydration provenance. A
.NET restoresource that remains
resolution: unavailableis now narrowing evidence rather than an acquitting dependency input,
so ambient feed selection cannot promote a receipt-to-baseline replay to hermetic. -
fixed the first V11.12 hydration-provenance carrier. Successful
ota up --jsonnow records
selected structured hydration source posture in
typedreceipt.evaluated_inputs[]hydration_provenancerecord, preserving the contract-declared
.NET restoresource configuration separately from runner-resolved NuGet feed identities or an
explicit unavailable resolution. This captures feed truth before execution and prevents a later
config-file read from silently rewriting the receipt. -
fixed Unix signal forwarding for native commands and persistent services. Ota now terminates
only the child tree it owns during interruption and runtime-proof teardown, instead of
signalling the inherited process group and potentially cancelling the surrounding CLI or CI
shell. -
fixed agent-safe dependency-hydration warning fan-out for structured sequence-backed setup
lanes. First-classprepare.kind: sequencetasks that include a typed
dependency_hydrationstep now suppress per-task agent-safe hydration warnings the same way as
direct hydration tasks, while preserving the single honest selected-path informational finding. -
fixed replay-baseline scope and staleness classification.
ota up --replay-baseline ...now
treats a baseline from a different workflow/backend/provider/remote-target/lifecycle as
replay_unavailablewith
baseline_scope_mismatch, while backend-scoped informational findings remain visible without
staling an otherwise reproduced witness on the same execution boundary. Replay JSON now carries
the archived baselinescopebeside the selected current replay scope. -
fixed two execution-evidence classification regressions:
ota cleannow preserves a configured
engine-unavailable failure when dependency-isolation volume discovery cannot reach that engine,
even if a separate cleanup query succeeded; and a late raw interrupt signal can no longer
overwrite an already-established non-interrupt task or service failure. Explicit runner
interruption evidence and a signal after clean completion still renderinterrupted. -
tightened runtime-proof negative controls. Canonical control records now publish
contract-declared intervention identity and runner-derived failure mode; only a transaction-bound
expected_obligation_failed/expected_missing_effectattestation can promote evidence to
fault_tested. Unclassified non-zero exits remain invalid and retain the causality boundary;
fault-tested seams now retaindependency_output_shaping_not_proved, so seam causality cannot
be read as broader application-output proof. -
tightened marker-bound seam proof boundaries. Every exercised or fault-tested seam now emits
dependency_output_shaping_not_proved; its absence is reserved for a future explicit
output-proof carrier. Nested dependency-level negative-control projections now self-identify as
evidence_class: derived, and proof-runtime JSON documents thatokis execution success only:
consumers must readproof_verdictwithnot_provedbefore interpreting proof breadth. -
Added workflow proof seam observations.
ota proof runtimecan now issue a per-proof marker to
a declared workflow producer, run a finite observer before teardown, and emit attested
exerciseddependency evidence only after Ota verifies a transaction-bound observer attestation
that recovered the marker through the declared seam. The observer never receives the marker;
receipts retain only transaction and attestation digests. Runner-ownedOTA_PROOF_*values now
override task and env-file resolution so active proof values cannot be replaced by contract
environment defaults. -
ota proof runtimetext output now renders the same runner-derivedDependency Evidenceas
JSON before proof boundaries. It preserves the evidence level, observation origin, and authority
class, soreachableand caller-side-only interaction attempts cannot be over-read from a green
runtime proof. -
fixed user-initiated interruption classification for long-running tasks. When Ota observes an
interrupt, it now returns the stable interrupt exit code (130) and renders aninterrupted
receipt/summary even if the child application exits with its own non-zero shutdown code. -
native
launch.kind: commandservice tasks now use the same contract-owned readiness and
endpoint-publication path as native shell and container service tasks. A declared attached
surface can therefore publish its resolved external/internal endpoint once its readiness gate
passes instead of leaving native structured launches silent. -
ota validateandota doctornow flag a host-projected runtime readiness listener that is
not attached toruntime.surfaces. The advisory directs authors to promote the listener to a
named top-level surface so endpoint publication, readiness, and runtime projection share one
canonical contract owner. -
added transaction-bound workflow runtime-proof negative controls. Declare a separate finite
task underworkflows.<name>.proof.negative_controlswith one observed seamobligationand
typedexpected_failure, then run
ota proof runtime --workflow <name> --negative-control <id>. A generic non-zero exit is now
invalid; only a matching control failure attestation for the same proof transaction can become
validatedand promote that exact seam evidence tofault_tested. -
fixed
ota proof runtimeadmission for warning-only readiness. A detached runtime process exit
no longer suppresses a declared seam observer whenota upis ready and Doctor reports no
errors; advisory warnings remain evidence, not proof blockers. -
fixed runtime-proof seam callbacks under
ota up --detach. The active-execution registry now
recognizes proof callbacks and the selected runtime as coordinated children of the same
orchestrator, while unrelated executions retain normal write, service, and environment conflict
protection. -
ota proof runtime --jsonnow distinguishes caller-side dependency attempts from proved seam
reachability.dependency_evidence[]can publish additiveinteraction_attempted: truewith
observation.origin: caller_sidewhen proof-derived failure evidence shows the selected lane
reached for a declared dependency without independent dependency-side or round-trip proof; the
paireddependency_exercise_not_provedboundary now tightens to
reason: caller_side_only_evidenceinstead of generic missing evidence -
ota proof runtime --jsonnow carries additivedependency_evidence[]for selected declared
service seams when Ota can honestly prove only reachability, not exercised interaction. The
first shipped carrier publishes runner-derivedreachableevidence from structured service
readiness on the selected workflow-owned required-service path and leaves stronger seam
exercise innot_proved -
ota proof runtimenow emits explicitreasonvalues onnot_provedentries and mirrors them
in text output, so qualified proof boundaries distinguish missing independent seam evidence,
adjacent external paths not selected, and broader proof-scope exclusions instead of publishing
only boundary kinds -
hidden-input replay failures now publish an ordered
hidden_input_candidatesset in JSON and
mirror it inota up --replay-baseline ...text output, so hidden-input suspicion points
operators toward the next promotion order instead of staying one generic failure bucket:
dependency resolution, runtime or machine, execution presentation, ambient environment, then
live external state -
ota proof runtimetext output now carries qualified proof boundaries inline: when
proof_verdictispassed_with_unproven_boundaries, the human render lists the concrete
not_provedentries before artifacts, so a green runtime-proof lane cannot silently swallow
unproved external or broader-scope boundaries -
replay hermeticity is now stricter: a same-contract rerun no longer reads as
hermetic
unless replay also matched at least one material runtime, dependency, or presentation anchor;
pure contract/source/policy/env-source matches now fall toambient_fresh_derivation, while
Bedrock-style lanes with narrowing replay artifacts remainpartly_ambient -
ota up --replay-baseline ...text output now surfaces replay evidence groups directly:
matchedacquitting,narrowing, andpointer_onlyartifacts are rendered before changed
inputs, so operators can see which artifacts actually cleared a class and which only narrowed
the remaining search without digging into JSON output -
ota receiptandota up --replay-baseline ... --jsonnow distinguish generic task replay
files from declaredpresentation_profileandcomparator_profilereplay inputs. Matching
presentation profiles acquit only the named execution-presentation class for the selected lane,
while matching comparator profiles remain narrowing evidence for comparator drift rather than a
full hermetic replay claim. -
replay-capable receipts now capture clean git HEAD as
source:git_headwhen the selected repo
worktree is clean. Receipt comparison treats a matching source identity asacquittingonly
for the namedsource_identityclass; dirty or non-git worktrees stay outside the claim. -
ota up --replay-baseline ... --jsonnow classifies replay misses with machine-readable
failure_kind, separating baseline unavailability, semantic contract drift, named replay-input
drift, hidden-input suspicion, and plain witness mismatch. -
replay baseline metadata now includes
last_known_good, so a promoted witness is distinguished
explicitly betweenreplay_verified,stale_witness, andunavailableinstead of all green
archives reading as equally current. -
active org policy packs are now captured as replay-grade
policy_ruleset_identityreceipt
inputs, so execution-governance drift can fail replay as named input drift instead of falling
through as generic hidden-input suspicion. -
selected declared env source files are now captured as replay-grade
env_source_identity
receipt inputs when the lane actually resolves from them, so env-source drift becomes named
input drift without leaking resolved values into replay evidence. -
added first-class replay execution for repo
ota up:ota up --replay-baseline <latest|promoted|archive>
now resolves an archived baseline witness before execution, runs the selected workflow lane,
and emits machine-readablereplay_verified,replay_failed, orreplay_unavailableposture
from the execution-authored receipt instead of reconstructing replay from a later compare step;
archivedota receipt --workflow ... --archivebaselines now also carry declared
replay_inputsand witnessed query-trace observations so replay compares named inputs honestly -
fixed native shell task execution after source-managed tool fulfillment: release-asset and
other managed tool PATH exports now reach the task shell itself, so a fulfilled contract-owned
tool remains callable for the task that required it instead of only for Ota's fulfillment probe -
added task-level
only_onhost support declarations. Ota validates the same platform tokens
used by tool, runtime, and execution-context scope; task planning and execution now refuse an
unsupported selected dependency closure before provisioning or side effects.ota doctornow
honors unavailable selected closures before probing their requirements, whileota tasks --use
marks unavailable mode commands instead of advertising a runnable host path -
widened
ota proof runtime --jsonnot-proved boundaries with contract-derived service seams:
eachrequires_servicesdependency in the selected workflow closure now emits
dependency_exercise_not_provedwith itsservice:<name>identity and declaring tasks until Ota
records independent seam evidence. Runtime proof no longer lets declared availability imply
exercised dependency interaction. -
added task-scoped
witnessed_observations.query_tracesfor JSONL query identity evidence from
prior or external runs. Ota captures the declared source before the selected closure begins and
emits its full attested trace under receiptwitnessed_observations, separately from
evaluated_inputs; stable repeated queries retain one identity across runs, while divergent
subjects name observed query-shape variation without claiming model causality or treating
historical output as a current-run decision input -
added task-scoped
replay_inputsfor static files consumed by deterministic verification lanes;
Ota validates repo-relative non-overlapping declarations, captures their SHA-256 identities before
ota runorota upbegins the selected closure, persists them in receipts, and renders them as
runner-derived narrowingdeclared_replay_inputevidence -
added contract-owned generated artifact lineage:
artifacts.<name>now declares a generated
source artifact's producer task, output paths, and derivation inputs, while consumer tasks use
requires_artifacts; Ota validates explicit producer dependencies and rejects execution when a
producer did not materialize its declared output -
widened typed
node_package_managerdependency hydration withprepare.source.filterfor
pnpm workspace slices; Ota renders the selector beforeinstalland rejects unsupported
package-manager ownership instead of requiring rawpnpm --filter ... installshell -
upgraded
quick-xmlto0.41.0to remediateRUSTSEC-2026-0194andRUSTSEC-2026-0195;
the NuGet feed-provenance parser now uses the current XML 1.0 attribute-normalization API -
added
effects.network_kind: container_image_hydrationfor registry-backed Compose image-pull
lanes. Structuredprepare.medium: container_imagesnow requires that explicit effect instead
of misclassifying image acquisition as package dependency hydration; doctor and policy packs can
govern the lane independently, including the matching--effect-overrideselector, while
immutable image receipt evidence remains a separate claim -
fixed whitespace-separated semver range evaluation for runtime and tool probes, so valid ranges
such as>=1.26.3 <1.27acceptgo1.26.3without weakening Ota's existing shorthand-version
behavior -
fixed Compose adapter-file preflight to resolve declared Compose files relative to the same
adaptercwdused by execution, so validcwd-relative contracts no longer fail before Docker
can run them -
fixed repo-hygiene diagnosis and
ota doctor --fixso archived semantic snapshots under
.ota/contracts/are protected alongside Ota state, receipt, and runtime-proof artifacts -
added receipt-authored immutable Compose image evidence for explicitly selected services in
explicitly declared Compose files: a literal@sha256:image is captured as
selected_runtime_artifact, and receipt comparison reports a matching digest as
acquittingonly for that named runtime artifact; mutable tags, interpolation, and inferred
Compose files remain outside the evidence; selected Compose services now include their declared
depends_onclosure so receipt evidence follows the actual selected runtime path without
pulling unrelated stack services into the claim -
added receipt-authored selected Node runtime-version evidence for the same typed lockfile-strict
hydration lanes: receipt comparison now reports a matchingnode --versionas runner-derived
narrowingevidence forselected_runtime_version, never as a binary/image digest or broader
runtime acquittal -
added receipt-authored immutable dependency input identity for typed lockfile-strict Node
hydration: selected task and workflow receipts now capturepnpm-lock.yamlfor frozen pnpm and
package-lock.jsonor authoritativenpm-shrinkwrap.jsonfornpm cias an
evaluated_inputs[]SHA-256 record at authoring time, and receipt comparison reports a matching
or changed lockfile as runner-derivedacquittingevidence only for the named
declared_dependency_resolutioninput class -
added terminal runtime-proof qualification:
ota proof runtime --jsonnow emits
proof_verdictaspassed,passed_with_unproven_boundaries, orfailed, and the text
surface renders the same decision so a narrow green proof is not over-read as broader repo
completion -
added runner-derived artifact trust to receipt comparison: matching archived semantic contract
snapshots are nowacquittingfor the namedcontract_truthinput class only, never for
dependency, environment, runtime, or external-world inputs that receipts did not capture. The
broaderacquitting/narrowing/pointer_onlymodel was sharpened through discovery
feedback from Vinicius Pereira. -
redesigned task discovery text around closure-aware execution truth:
ota tasksand
ota tasks --usenow render groupedHuman Run,Agent Run, andAgent Policysections;
agent commands appear only when the full task closure is callable in agent mode, while blocked
lanes name the review-required dependency closure instead of makingsafe_for_agent: truelook
executable by itself; Human and Agent mode lists now keep stableContainer,Native, then
Remotedisplay order and mark the selected lane as(Default), while explicitly marking
unavailable Container or Native task planes instead of silently omitting them -
widened
ota tasks --jsonwith canonicaluse.modes[]task-mode truth: each Container,
Native, and advertised Remote mode now publishes selected/default status, contract support,
and separate human/agent callable commands or explicit refusal/unavailability reasons, while
preservinguse.humananduse.agentas compatibility projections of the selected mode -
hardened first-class
.NETrestore provenance:ota up --jsonandota run --dry-run --json
now distinguish declareddotnet_restoresource posture from resolved execution evidence;
config-backed restores parse activeNuGet.Configpackage sources into stable feed name/URL
identities; unreadable, invalid, environment-dependent, or undeclared ambient source selection
publishesresolution: unavailablewith an honest error instead of repeating declared config as
resolved truth -
fixed ephemeral container-backed .NET hydration across task boundaries: contexts that declare
attachments.isolated_paths: [.nuget/packages]now receive one Ota-managed package-cache volume
plusNUGET_PACKAGES=/workspace/.nuget/packages, so typeddotnet restorecan truthfully feed
laterdotnet build --no-restoreanddotnet test --no-restoretasks without repo-local cache
glue -
Tightened runtime-proof boundaries:
ota proof runtime --jsonnow identifies adjacent declared
external integration workflows asexternal_network_path_not_proved, while keeping generic
broader-repo exclusion explicitly derived from the selected proof scope. -
tightened CI verification drift for narrow contract slices: workflow verification recovery now
rejects incompatible command-family and scope evidence before surfacing governance or aggregate
drift, and GitHub Actions.NETverifier inference now recognizesdotnet build/dotnet testdirectly so narrow.NETrepo lanes do not get overruled by broader Node, docs-only, or
mismatched-project workflow signals -
widened first-class
.NEThydration truth with additive source provenance:prepare.source.kind: dotnet_restorenow accepts optionalconfig_fileand repeatedsources[], the runner and
command preview project those exact restore inputs, andota up --jsonnow carries structured
plan.dependency_steps[].prepare.{declared_hydration_provenance,resolved_hydration_provenance}
so setup-only dependency lanes expose replay-relevant restore source posture on the canonical
machine-readable carrier instead of leaving feed selection implicit -
tightened merge-facing governance with the same narrow mechanism tripwire:
ota doctor --json
merge-gate summaries and per-lane records now publish additivedecision_inputs[]with stable
decision_owner:<stable-id>identity plus cited merge inputs, and now reconcile that emitted
verdict throughreplay, so downstream consumers can link and re-check the doctor-side merge
verdict without inventing a second merge governance model -
hardened that same merge-facing replay lane so cited-input class drift now counts there too:
merge-gate replay now rejects records when canonical merge inputs are emitted with weaker
pinned/witnessedposture than the trust model expects -
added the first machine-readable proof-boundary carrier to
ota proof runtime --json:
runtime proof now emits canonicalproof_scopeand anchorednot_proved[]entries so narrow
proof posture travels with the artifact instead of living only in prose -
tightened V11.9 governance replay with a narrow mechanism tripwire: the canonical
governance.evaluation.*.decision_inputs[]lane now carries additive
decision_owner:<stable-id>cited inputs for preflight and post-execution records, and replay
reconciliation verifies that stable decision-owner identity on the same canonical governance
surface instead of leaving hook/branch linkage as prose-only trust -
turned cited governance inputs into an actual replay lane: task preview, workflow preview, and
ota up --jsongovernance records now publish additivepreflight.replay/
post_execution.replaystatus, cite the extra replay-critical inputs they really depend on
(such as doctor verdict or evidence expectations), and marksatisfied,mismatch, or
unavailabledirectly on the canonical machine-readable governance surface instead of leaving
decision_inputs[]as a passive list -
hardened that same replay lane so cited-input class drift now counts too: replay now rejects
governance records when canonical decision inputs that should staypinned,witnessed, or
trust-sensitiveattestedare emitted with weaker classes -
tightened field-level provenance on doctor merge-gate governance: projected required lanes,
merge-gate summaries, and per-lane merge posture now also publish additiveevidence_classes
so downstream consumers can distinguish authoritative derived merge truth from future asserted
or attested fields instead of over-trusting flat JSON -
widened doctor merge-gate governance with additive
decision_basis[]on both
governance.merge_gateandgovernance.merge_gate.lanes[], so projected-vs-drifted CI merge
posture now cites stable lane and drift basis instead of publishing a flatter merge verdict -
widened machine-readable governance again so post-execution evidence no longer stops at flat
state/not_run_reason/crossing_record_state:ota run --dry-run --json,
ota up --json --dry-run, and executedota up --jsonnow also publish additive
governance.evaluation.post_execution.decision_basis[], citing the stable non-run, evidence,
and crossing-record basis behind the selected evidence posture -
fixed preview governance phase reconciliation for agent refusal. A preflight refusal now remains
explicitly present inpost_executionasrefusal_occurred: truewith the same refusal record
and cited reason, whilestate: not_runtruthfully preserves that execution never began. -
added canonical
runtime_boundaryownership on repo execution, workflow, and task lanes, so
contracts can declare compiled filesystem posture plus explicit outbound target truth for
harness-facing sandbox export instead of relying only on derivedagent.*_pathsand broad
effect-owned network posture; destination-constrained outbound lanes can now declare the
narrower effective destination truth, source posture, enforcement posture, and optional shared
pin freshness instead of tagging a host assend_host/relay_hostwithout the real
downstream boundary;ota run --dry-run --jsonandota up --json --dry-rungovernance output
now carry the same compiledsandbox_policyso execution-facing preview consumers do not need a
second task/workflow query to recover the selected lane's filesystem and outbound boundary
posture -
widened workflow-instance ownership with bounded generated instance families under
workflows.<name>.instances.generated, so one explicit default instance can now coexist with a
finite repeated selector family likews1..ws8; generated templates stay on the existing
instance boundary, support${OTA_WORKFLOW_INSTANCE}/
${OTA_WORKFLOW_INSTANCE_INDEX}string interpolation, and can derive repeated surface/runtime
host ports withport_stride/strideinstead of duplicating explicit per-instance overlays -
widened task and workflow discovery output so
ota tasks --use,ota tasks --safe --use,
and workflow summaries now publish explicitHumansandAgentscommands instead of a single
ambiguousUseline, and task/workflow JSON now carries the same canonicaluseobject with
agent callability and reason state -
added
launch.runtime_projectionfor supported long-running command adapters, so explicit
runtime.listeners.<name>bind truth can projectuvicornorrailshost/port argv into
launch.kind: commandwithout duplicating bind flags inlaunch.args -
widened
launch.runtime_projectionwith anextjsadapter for direct structurednext dev
launches, so Node application runtime listeners can own--hostnameand--portinstead of
duplicating those flags in package-script wrappers -
fixed task and workflow dry-run input ordering when a dependency closure declares
ensure_env_file: a clean checkout now treats that env artifact as planned setup output rather
than rejecting the dependent preview before setup can materialize it -
tightened native run-path fulfillment around repo-local Python setup lanes: backend/runtime
requirement probing now waits untildepends_onmaterializes repo-local executables like
.venv/bin/python, and native Python runtime candidate probing now prefers satisfying
version-specific executables before falling back to mismatched generic binaries -
widened Python setup ownership in two connected ways:
prepare.kind: dependency_hydration
withsource.kind: uvnow supportsmode: pip_requirementsplus
source.requirements_filefor structuraluv pip install -r ..., and
action.kind: ensure_virtualenvnow owns deterministic repo-local virtualenv materialization
such as.venvwithout shell glue -
widened dependency-hydration governance so raw
uv syncand raw
uv pip install -r requirements.txtlanes now produce replaceable-ownership advisories instead
of hiding a first-class Ota setup surface behind shell or command bodies -
widened harness-facing capability JSON with the first compiled sandbox target,
sandbox_policy.target: "codex_local", onota tasks --jsonand
ota workflows --json; task and workflow capability entries can now publish
derived filesystem compilation state from declaredagent.writable_paths/
agent.protected_pathsplus the current broad network posture compiled from
lane effect truth, without inventing host or destination allowlists that the
contract does not yet own
Security Fixes
- Upgraded `quick-xml` to 0.41.0 to remediate RUSTSEC‑2026‑0194 and RUSTSEC‑2026‑0195.
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]