v1.6.16
·
2311 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
- removed
visual_studio_build_tools: truefrom docs and shipped workflow examples so public
guidance only teaches the structuredplatforms.windows.visual_studio.componentsform while
keeping legacy shorthand compatibility in the parser - added structured
native_prerequisites.<name>.platforms.windows.visual_studio.components
support plus platform-scopednative_prerequisites.<name>.platforms.<os>.requires
runtime/tool/toolchain/env/check requirements, so contracts can model Windows native build
bundles through an Ota-ownedvswhereprobe, attach dependencies such as Python, and preserve
receipt provenance without embedding long raw PowerShell checks inchecks.run - made
ota --versionbuild identity explicit for source builds by including commit and dirty
markers, and addedota --version --jsonwith stable provenance fields (semver,
source_build,commit,dirty),schema_version, and additive
contract_capabilities[]entries so machines can distinguish build identity from contract
capability support - formalized
ota --version --jsonas a compatibility-locked JSON surface with a published
version.jsonschema and conformance coverage - enforce
metadata.ota.minimum_versionat contract load time across command surfaces (not only
validate), sodoctor,up, and related commands fail early with a clear minimum-version
message when the running binary is too old - centralized preview-status semantics so
doctor,ota run --dry-run, andota up --dry-run
share one verdict model forREADY/READY WITH WARNINGS/BLOCKEDand
RUNNABLE/RUNNABLE WITH WARNINGS/BLOCKED, and fixed preview JSON helpers to keep
preview_statuspresent on repo and memberota up --dry-runpayloads - minimum-version compatibility diagnostics now call out detected unsupported contract
capabilities when the contract uses a known feature newer than the running binary - minimum-version compatibility errors are now feature-first and operator-grade: they report the
contract minimum, current binary identity, detected unsupported contract feature when known, and
the next install/rebuild step withota --version --jsonas the confirmation lane - documented the product rule that
schema_versionmoves only for non-additive contract-generation
changes while additive compatibility growth extendscontract_capabilities[] - added an
ota-readinessCI guard lane (json-schema-guard) that runs
json_schema_contractsandjson_output_conformancebefore readiness execution, preventing
schema/output contract drift from reaching the main readiness lane - aligned
ota up --dry-runandota run --dry-runpreview messaging with explicit
preview_status(RUNNABLE,RUNNABLE WITH WARNINGS,BLOCKED) while keeping canonical
shared readiness verdicts insummary.verdict ota doctornow warns when.devcontainer/devcontainer.jsonadvertises a Node image that
drifts from the repo contract's declaredruntimes.noderequirement, so repo-owned
devcontainer shells do not silently lag repo readiness truthota initstarter agent boundaries now lockota.yamlintoagent.protected_pathsas an
explicit default and carry the matchingagent.exceptions.sensitive_writes: [ota.yaml]rule
whenever a starter intentionally grants contract-authoring authority with writableota.yamlota proof runtimenow treats warning-only risk findings such as
effects.external_state/effects.networkselected-path advisories as visible proof context
instead of proof-failing blockers; only error-level proof findings now collapse a successful
readiness proofota doctornow also warns when a repo-owned devcontainer bootstrap command uses a different
Node package manager than the repo contract declares, and whenagent.writable_pathsincludes
sensitive lockfile, env/config, runtime-topology, CI, or repo-contract paths beyond the
declaredagent.posture; narrow intentional exceptions can be acknowledged through
agent.exceptions.sensitive_writeswhile the legacy
agent.acknowledged_sensitive_writable_pathsalias still loads for compatibility- agent boundary validation now rejects overlapping
agent.writable_pathsand
agent.protected_pathsentries when they duplicate the same normalized path, while still
allowing protected carve-outs under broader writable roots - fixed
ota proof runtimewait-budget derivation for selected service surfaces so proof now
honors declared readiness timing policy (start_period,interval,timeout,retries)
instead of collapsing heavy startup paths down to a small timeout-only window; fresh CI Docker
builds such as Hoppscotch self-host proof now respect the contract's actual startup budget - added
execution.contexts.<name>.only_onso contracts can declare supported host OSes per
execution context;ota doctor,ota up, and task execution now fail early and explicitly
when a selected context is not supported on the current host platform - fixed contract identity counts in preview and related output so scoped execution-context and
task requirements are counted honestly instead of reporting misleading zero-runtime/zero-tool
summaries when the selected workflow is actually blocked on scoped requirements - improved native/container/remote Python runtime probing to accept versioned aliases such as
python3.12andpython3.13when they satisfyruntimes.python, preventing false
Missing runtime: pythonor mismatch findings on repos that already expose a compatible Python
interpreter through standard aliases - shipped
toolchains.pythonwithprovider: uvas a first-class managed Python runtime owner:
validator, doctor, dry-run, and run-path fulfillment now understand uv-backed Python toolchains,
fulfillment: runcan invokeuv python install <version>for installable version references,
and detector/init now prefer the shipped Python toolchain contract over fallback Python
opportunity guidance whenuv.lockand Python version signals are present - fixed selected workflow/task toolchain scoping so preview/doctor/up no longer fall back to every
declared toolchain when the selected closure does not require one, preventing false runtime/tool
blockers on unrelated workflows such as host-Docker setup paths - updated detector-led
ota initstarter agent bootstrap commands to pin the installer target to
the running Ota version viaOTA_VERSION=v<current>, so generated contracts avoid floating
latestinstall targets for both shell and PowerShell bootstrap paths - added Slack release announcements to the release gate workflow by publishing the same generated release summary text to
SLACK_RELEASE_WEBHOOK_URLwhen configured, while keeping Discord publishing unchanged. - run branch-protection-required maintainer checks on branch pushes as well as
main, and remove docs-only trigger filtering fromdocs-quality, so protected branch-first merges work without requiring a public PR flow - taught
ota doctorto short-circuit later service/check readiness probing when selected-path
preconditions already contain blocking errors, so broken setups stay bounded and diagnosis
output keeps the real blocker in front instead of spending time on unreachable surfaces - added
tasks.<name>.effects.writesas first-class task side-effect metadata, and now validate
agent-safe task writes against declaredagent.protected_pathsplusagent.writable_paths
when that writable boundary is present - expanded task side-effect metadata with
tasks.<name>.effects.networkand
tasks.<name>.effects.external_state, surfaced those effects throughota tasks --json,
ota workspace tasks --json, text task inventory, and generatedAGENTS.md, added
validation for machine-readable external-state tokens, and now surface agent-safe risk warnings
plus selected-path doctor signals when those tasks depend on network access or mutate external
systems