v1.6.17
·
2311 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
- scoped selected task/workflow requirement resolution so non-native paths (container/remote) no
longer inherit host-globaltoolsfallback when no scoped tool requirements are declared; global
tool fallback remains for native selected paths, preventing host-only tools from leaking into
unrelated container/remote readiness surfaces - made
tasks.<name>.requirements.toolsandrequirements.any_of[].toolsself-contained tool
gates: task-path tool names no longer require duplicate top-leveltools.<name>declarations
just to validate, while toolchain-owned names still require explicit
tasks.<name>.requirements.toolchainsscoping to keep ownership deterministic - refined task network side-effect semantics with optional
tasks.<name>.effects.network_kind: dependency_hydration|broad: lockfile-backed package-manager
hydration can now be declared as a narrower network lane than generic API/remote-call execution,
validator now requireseffects.network: truewhennetwork_kindis declared, doctor/agent
advisories now render that distinction explicitly, and task/workspace JSON schemas now include
network_kind - tightened
ota run --dry-runcontext semantics so preview text now shows both
Task ContextandExecution Contextexplicitly (withContract -> Resolved Context), and
JSON now includes additiverequested_contextandselected_contextfields for machine-stable
context interpretation - extended agent-safe write-boundary validation across transitive task chains so a safe task now
fails validation when any reachable dependency/follow-on task writes a protected path or writes
outsideagent.writable_paths - expanded first-class task disjunctive requirement branches with
tasks.<name>.requirements.any_ofto support context/backend-scoped alternatives across
runtimes,tools,toolchains,native,env, andchecks, and wired selected-path
resolution into doctor/up/run requirement surfaces so mixed paths (for example local-host vs
docker-host) do not force both lanes at once - added first-class
action.kind: ensure_env_filefor deterministic env bootstrap without shell
glue: Ota can now create/seed env files and append only missing keys (literal or generated random
values) while preserving existing user-edited entries; version capability reporting and minimum
version gating now includetasks.action.ensure_env_file - added first-class
action.kind: ensure_filefor deterministic single-file bootstrap without
shell glue: Ota can now create one repo-relative file from exactly one source (template,
literalvalue, or generatedrandom) while leaving existing files untouched on repeat runs;
version capability reporting and minimum-version gating now include
tasks.action.ensure_file - added first-class
action.kind: ensure_directoryfor deterministic directory bootstrap without
shell glue: Ota can now create a repo-relative directory when missing, no-op when it already
exists as a directory, and fail clearly when the path exists as a non-directory; version
capability reporting and minimum-version gating now includetasks.action.ensure_directory - added first-class
checks[].kind: changed_filesfor git-diff-backed conditional checks using
explicit path matchers and optionalbase_ref/head_refrange control; selected-path
diagnosis now treats these checks as precondition-style gates where requested, and version
capability reporting and minimum-version gating now includechecks.changed_files - added first-class
services.<name>.readiness.kind: compose_healthfor compose-managed service
health-state readiness without host-port probing: Ota now supports direct compose container
health gating (healthy), validates compose-only readiness shape (manager.kind: composewith
no endpoint-probe fields), surfaces the capability in minimum-version gating, and extends
ota assist declare-readiness --service ... --style compose-healthplus
ota assist declare-service --style compose-healthfor service-side proposal generation - added
agent.exceptions.sensitive_writescontract advisories that flag non-sensitive or
posture-redundant exceptions so intentional boundary exceptions stay narrow and meaningful - added first-class
tasks.<name>.runtime.readiness.signal_probesso one service runtime can gate
readiness on multiple named listener probes (for example API + worker liveness) instead of only
one aggregate endpoint check; version capability reporting includes
tasks.runtime.readiness.signal_probes - expanded
tasks.<name>.runtime.readiness.signal_probesfor native service runtimes so named
same-task listener probes may usetarget.address_view: internalwith fixed listener bind
endpoints; this lets worker/internal listeners participate in runtime readiness without forcing
host endpoint projection - hardened smoke-workflow run-preview JSON assertions to validate verdict shape without
hardcoding a fixed verdict enum, reducing CI brittleness as verdict taxonomy evolves - made smoke-workflow preview checks schema-driven by validating
ota run --dry-run --jsonand
ota up --dry-run --jsonpayloads against the published contract schemas
(docs/spec/json-schemas/run-preview.json,docs/spec/json-schemas/up.json) across repo and
example lanes, keeping only minimal semantic assertions on top - kept smoke schema validation fully local/offline by resolving published schema
$refpaths
from the repository schema tree instead of fetching remote schema IDs during CI - expanded published
tasks.jsontask item shape with optionalcontextandnotesfields so
run-preview.jsonvalidation forrequested_taskremains schema-accurate on real contracts - added first-class
ota json validatesupport in the Rust CLI so CI can run command
execution, payload capture, published-schema validation, and optional assertion checks without
Python-side validator scripts - extended
ota json validatewith artifact-first input mode (--input <file|->) so CI can
validate existing JSON payloads without rerunning producer commands; input mode keeps assertion
parity (including exit-map checks via synthetic exit code0) and makes--write-payload
optional - removed deprecated
RefResolver-based schema validation paths from smoke CI by switching to
the new coreota json validatecommand surface - added workflow guard checks that fail CI if deprecated
RefResolverusage reappears in
.github/workflows - added
ota validatewarning coverage for unpinnedagent.bootstrap.ota.sh/
agent.bootstrap.ota.powershellcommands so agent bootstrap install paths keep explicit ota
version pins instead of drifting with latest installer releases - expanded workflow service summaries to include transitive task
requires_servicesin addition to
workflows.<name>.services.required, soota tasks --workflow ...reports the full service
footprint used by prepare/setup/run task closures